@chenyaofo
2018-03-03T12:07:08.000000Z
字数 1618
阅读 1422
下载iasl编译器
到这里下载编译器iasl.zip,并复制iasl可执行文件到/usr/bin/下面。
wget https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip
unzip 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 XDSM
Fix _WAK Arg0 v2
HPET Fix
SMBUS Fix
IRQ Fix
RTC Fix
OS Check Fix (Windows 8)
Fix Mutex with non-zero SyncLevel
Add IMEI
Rename GFX0 to IGPU
Fix _WAK IAOE
Rename B0D3 to HDAU
Fix ADBG Error
Fix PARSEOP_ZERO Error
SSDT通用补丁
为每个SSDT都要打下列补丁
Rename _DSM methods to XDSM
Rename GFX0 to IGPU
Rename B0D3 to HDAU
Cleanup/Fix Errors (SSDT)
Remove _PSS placeholders
屏蔽独显
查找所有包含_INI
和_OFF
的SSDT文件
grep -l Method.*_INI *.dsl
grep -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
打上勾。