@chenyaofo
2018-03-03T12:07:08.000000Z
字数 1618
阅读 1581
下载iasl编译器
到这里下载编译器iasl.zip,并复制iasl可执行文件到/usr/bin/下面。
wget https://bitbucket.org/RehabMan/acpica/downloads/iasl.zipunzip iasl.zip && sudo cp iasl /usr/bin
下载MaciASL IDE
到这里下载MaciASL最新版本,并安装到app文件夹中。
添加补丁源
打开MAciASL IDE,在Preferences -> Souces中添加源http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master
提取原始的DSDT和SSDT文件
创建一个名为origin的文件夹放置所有DSDT和SSDT文件,删除SSDT文件名中带有x的文件,并将refs.txt放入origin文件夹中。
refs.txt的内容如下:
External(MDBG, MethodObj, 1)External(_GPE.MMTB, MethodObj, 0)External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)External(_GPE.VHOV, MethodObj, 3)External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)
反编译aml文件
iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml
上述命令执行完之后会得到DSDT.dsl和一系列的SSDT*.dsl文件,将这些文件移动到新文件夹patched中。
DSDT通用补丁
Rename _DSM methods to XDSMFix _WAK Arg0 v2HPET FixSMBUS FixIRQ FixRTC FixOS Check Fix (Windows 8)Fix Mutex with non-zero SyncLevelAdd IMEIRename GFX0 to IGPUFix _WAK IAOERename B0D3 to HDAUFix ADBG ErrorFix PARSEOP_ZERO Error
SSDT通用补丁
为每个SSDT都要打下列补丁
Rename _DSM methods to XDSMRename GFX0 to IGPURename B0D3 to HDAUCleanup/Fix Errors (SSDT)Remove _PSS placeholders
屏蔽独显
查找所有包含_INI和_OFF的SSDT文件
grep -l Method.*_INI *.dslgrep -l Method*._OFF *.dsl
下面假设在SSDT-8.dsl中查找到上述两个标识。
为SSDT-8.dsl打上补丁Disable from _INI(SSDT),并将补丁内容中的PEG0改为RP05。
编译dsl文件
利用MaciASL IDE的另存为功能即可。
复制文件到EFI分区的对应位置
在命令行中执行diskutil mount EFI即可挂载EFI分区。复制所有patched aml文件到EFI/EFI/CLOVER/ACPI/patched。
更改config.plist,为Acpi -> SSDT -> Drop OEM打上勾。