扩展阅读:
http://bbs.pcbeta.com/viewthread-1571455-1-1.html
概述
为了能让OS X的特性能够在普通PC上正常工作,就需要修改(可以利用补丁)DSDT和SSDT。本 教程的目的,就是介绍如何利用现有补丁,修改你电脑的原始OEM DSDT/SSDT。
虽然你可以用其它型号的电脑的DSDT,但这样的后果是会造成更多问题。你不能保证用别的型号电脑 的DSDT是没问题的。如果你用了别的电脑的ACPI文件,即便是硬件配置非常相似,也可能会造成 系统 不稳定 和 一些奇葩的问题。
使用补丁修改DSDT/SSDT包含了以下步骤: -提取原始ACPI文件 -反编译原始文件 -分析并筛选这 些原始文件 -使用补丁修改 -编译并保存,再放到引导特定的目录
在Clover启动界面按F4提取
在Clover启动界面,你可以按 “F4”键,Clover会把原始ACPI文件提取到 EFI/Clover/ACPI/origin 目录。再进入系统,就可以在那个目录看到提取到的原始文件了。之后,就可以 开始反编译、修改了。注意,有的BIOS可能按F4键没用,而需要Fn+F4,所以,如果不确定的话,F4 和 Fn+F4 都按一次。提取的时候,你不会看到任何是否完成的提示,只是会因为正在写文件而出现一 点延迟现象。如果是用Clover的USB设备(U盘、硬盘)启动的,文件会被提取到USB设备,这样会感 到比较明显的延迟。
有时候,Clover提取的SSDT可能会重复。重复的文件,会影响到反编译。如果你反编译的时候看到了 这样的提示信息(duplicate definitions),就需要仔细检查重复的是哪个了(例如,看大小)。由于存 在这样的问题,所以在Linux提取比较好。因为我还没有⻅过在Linux提取的出现重复的情况。
当然CLOVER提取是普遍的简单方法,如果有条件可以使用Linux系统提取
【在Linux提取(推荐,还可以顺便提取声卡codec) 在Linux系统里,可以直接在系统分区里找到原始 ACPI文件。你可以在 /sys/firmware/acpi/tables 和 /sys/firmware/acpi/tables/dynamic 看到。可以简单 地用命令进行拷⻉。
Linux系统不需要安装,做一个启动U盘就可以了:
http://www.ubuntu.com/download/desktop/create- a-usb-stick-on-windows
打开Linux的终端输入: sudo cp -R /sys/firmware/acpi/tables DEST 注意: 用FAT32格式的USB设备 (U盘、硬盘)的挂载点的路径,替换命令里的 DEST
反编译ACPI文件
这里是Rehabman的修改版编译器:
https://bitbucket.org/RehabMan/acpica/downloads
。把iasl编译器拷⻉到/usr/bin目录,会让调用iasl更方便。
终端的反编译命令: cd “你存放DSDT和SSDT的文件夹名” iasl -da -dl *.aml
反编译介绍:
http://bbs.pcbeta.com/viewthread-1475332-1-1.html
当然这边我用图片,提供我自己习惯的编译方法。
1.我先把origin文件夹,拷⻉到了桌面
修复错误
即使同时反编译所有文件(使用iasl的-da参数),还是难免存在错误。反编译后的文件之所以 还会有错误,是因为一直以来iasl编译器的版本都在更新、iasl的实现细节变化了、不同的电脑与系统环 境。存在这些错误的原因可能是(Rehabman认为),里面调用到的一些方法,实际上是Windows内部 实现的(例如 MMTB方法和MDBG方法)。实际也有这样的情况,ACPI文件的代码原本就存在缺陷或 者某些代码本来就是无效的(很难说得清楚)。
打开编译出来的DSDT.dsl文件(用MaciASL软件:
,这是Rehabman的修改版)
https://github.com/RehabMan/OS-X-MaciASL-patc hmatic
最后步骤
将你的DSDT.aml文件拷⻉到,EFI/CLOVER/ACPI/Patch下,重启,看看能不能正常进系统,如果可 以,那就代表这个DSDT以后你可以直接用了。