修改 Lenovo Y510 BIOS
导读
最近非常的想在自己的笔记本上装 Mac OS X 10.5.6 Leopard,也看了很多资料,好不容易,终于下载了2个光盘镜像回来,结果昨天折腾了一晚上,没有成功,很是郁闷。弄到1点多的时候,使用 -v cpus=1 的参数,竟然能用光盘启动了。没有使用这个参数之前,iPC OS X 10.5.6 总是不停的重启。但是 cpus=1 还是很不爽的,于是乎就上网查,发现,还要改 BIOS 里面 ACPI 里面的 DSDT,很是不爽!但是,为了能尽可能完美的使用 Leopard,那就改吧。
本文用到的工具
- MMTOOL V3.22 BKMOD,用来修改 AMI BIOS 的东西。下载地址
- WinHex,用来提取,编辑和合并 DSDT 的东西。下载地址
- Intel ASL Compiler,用来反编译 DSDT.aml 文件,并编译修改后的 DSDT.dsl。下载地址
参考文献
- Modified BIOS to get all cores working
- MMtool + iasl解决cpus=1(仅限AMI的BIOS)
- Advanced Configuration and Power Interface
友情提示
刷新 BIOS 有风险,操作不当,有可能导致无法正常开机。
如因个人操作失误,导致计算机无法启动,本人概不负责。
开始修改 BIOS
1. 取得要修改的 BIOS
访问如下地址,获得最新版的 Lenovo Y510 BIOS:
http://consumersupport.lenovo.com/en/DriversDownloads/drivers_show_1044.html
2. 提取 Single Link Arch BIOS
打开 MMTOOL,点击 Browse 按钮,打开刚才下载的 BIOS 文件,如图1
选择上面 Tab 里面的 Extract,然后点选下面 ID 为 1B 的模块,点击 Browse 按钮指定一个输出文件名,我这里设置的文件名为 SingleLink.bin。另外,Extract Module 选项一定要选择 In uncompressed form,参考图2:
最后点击 Extract 按钮,得到 SingleLink.bin 文件。
3. 提取 DSDT.aml 文件
用 WinHex 工具打开刚才得到的 SingleLink.bin 文件,按 Ctrl + F 搜索“DSDT”,忽略第一个搜索到的结果,然后按 F3,继续搜索,第二个 DSDT 就是我们要找的 DSDT 开始的位置。
在此位置,按鼠标右键,选择 Beginning of block,将此处设置为 block 的起始点,如图3所示:
然后搜索“WAKh”,应该有三个记录,在最后一个记录处停下。这里跟网上大多数说的 “WAKh.”(注意,这个是多一个点的) 不大一样。实际上 Lenovo Y510 的 DSDT 后面多了一个 OEM 信息。在最后一个 WAKh 之后,还要多加 21 字节,才是完整的 DSDT。在 DSDT 的末尾(注意,是在字母 h 上)按鼠标右键,并设置为 End of block,如图4:
设置好以后,已经选择的区域会高亮显示。选择文件菜单上的 Edit -> Copy Block -> Into New File,将选择的区域保存为新的文件,并命名为 DSDT.aml,如图5,6:
至此,伟大的 DSDT.aml 文件,终于诞生了!~(≧▽≦)/~
4. 修改 DSDT
得到 DSDT.aml 文件以后,我们请出 Intel ASL Compiler,打开一个 DOS 窗口(别问我怎么做……),运行如下命令反编译 DSDT.aml,并得到 DSDT.dsl 文件(图7):
iasl.exe -d DSDT.aml
用任何你喜欢的文本编辑器打开 DSDT.dsl,找到如下的代码片段:
Scope (_PR)
{
Processor (P001, 0x01, 0x00000810, 0x06) {}
Alias (P001, CPU1)
}
Scope (_PR)
{
Processor (P002, 0x02, 0x00000810, 0x06) {}
Alias (P002, CPU2)
}
修改为:
Scope (_PR)
{
Processor (P001, 0x01, 0x00000810, 0x06) {}
}
Scope (_PR)
{
Processor (P002, 0x02, 0x00000810, 0x06) {}
}
也就是说,删除所有的 Alias(别名)。
然后,用查找替换功能,将所有的 CPU1 替换为 P001,CPU2 替换为 P002,保存文件。
接着,我们再用 Interl ASL Compiler 重新编译刚刚修改过的 DSDT.dsl 文件,并得到一个全新的 DSDT.aml,如图8:
如果编译以后不是 0 Errors 的话,就需要检查一下是不是哪里写错了。新生成的 DSDT.aml 比原来的文件要小一点。到这里,我们已经得到了我们需要的 DSDT 文件。
5. 将 DSDT 重新插入 SingleLink.bin 中
当我们完成了上述的工作后,重新切换到 WinHex,这时,WinHex 会提示文件已经被改动,是否重新加载,确认并重新加载,如图9:
选择 DSDT.aml 文件,然后按键盘的 Ctrl + A 选择整个文件,然后按 Ctrl + C 复制所有的内容。然后选择 SingleLink.bin 文件,回到刚才步骤3中所找到的 DSDT 的起始位置,如图10所示:
选择菜单 Edit -> Clipboard Data -> Write 将 DSDT.aml 文件的内容覆盖原来 SingleLink.bin 中 DSDT 的内容(图11)。
插入完成后,我们将光标移动到 DSDT 的尾部,可以看到新的 DSDT 比原来的小了一些。网上的教程都是说在 h 后面补上一个点(2E),后面的数据都写0,不过我个人觉得其实改不改都行。图12中红色的部分为冗余的内容。
修改后,保存 SingleLink.bin 文件,此步骤完成。
6. 将 SingleLink.bin 重新插入 BIOS ROM 文件
终于到最后一个步骤了,跟第1个步骤一样,还是 MMTOOL。不过这次选择 Replace 而不是 Extract 了,基本的设置跟步骤1类似,设置好后,按 Replace 按钮即可用 SingleLink.bin 替换原 BIOS ROM 中的 1B 模块。参考图13:
替换完成以后,可能会有些略微的不一样,将修改好的 BIOS 文件,另存一份,如图14:
哒哒~~~ BIOS ROM 修改完毕。
7. 刷新 BIOS
将修改好的 BIOS 放到 C 盘根目录,或者你喜欢的地方,重启电脑,按 F2 进入设置模式。
选择 Start easy flash,找到 ROM 文件,刷~~~~
后记
终于写完了,累死了……
其实,在我写完本教程以后,我还没有刷 BIOS 呢,O(∩_∩)O哈哈~
晚上更新了自己修改后的 BIOS,iPC OS X 10.5.6 不用加任何参数可以直接启动。用原版的 Mac OS X 10.5.6 Leopard 的安装盘也可以安装了。~(≧▽≦)/~
附上修改后的 BIOS 文件,解压密码为 tommy.net.cn :06CN33WW_Tommy.ROM














David
Thanks, I did that and everything fine in Benq X31.
Tommy
You’re welcome. ^^
suannai
谢谢你,我的是Y510刷了你的BIOS成功安装了,但是关机不断电,从起正常,我安装的是iDeneb_v1.4_10.5.6,
打和不打关机补丁都试过了,还是不行,请问该怎木办?
PS:我的3945无线网卡和BCM5906M以太网卡可以驱动吗?
Tommy
我安装的是 iPC OS X 10.5.6
之前一直想安装原版的,后来实在是懒得折腾了,就装了 iPC 的
我有段时间没有用了,所以不记得能不能关机了,不过印象中好像是可以的
要装一个 ACPI 的补丁,另外还要安装电源补丁
我现在也是 3945 的网卡,估计已经无解了,BCM5906我不太确定,可能可以
因为我现在没有换无线网卡,所以,最近没有怎么折腾
如果你有什么好消息,也告诉我一下。呵呵。:)
David
按你的方法我刷了BIOS,成功进入安装界面,重启后不停地重启,Tommy,你可以帮我吗?
Tommy
1)你用的什么版本的系统?我只用过 10.5.6
2)你有没有外接 USB 键盘和鼠标?Mac 是不支持 PS/2 键盘和鼠标的。