使用ACPI_Patcher制作DSDT补丁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

威廉第三的MAC系列教程(一)——使用ACPI Patcher制作DSDT补丁
很早就开始接触Hacintosh了,也经常出没在各个hacintosh论坛,因此也积累了不少知识,但是很多东西都是英文的,却没有人引进到国内,导致很多人都不了解Hacintosh社区最新
的进展,或者知其然不知其所以然,因此我在这里抛砖引玉,把自己知道的一些知识写出来和大家分享,也是想引出更多高手来。

第一篇我想给大家介绍如何使用ACPI Patcher制作DSDT补丁。

很多人都知道使用DSDT补丁可以开双核,但DSDT的功能不仅仅如此,除了开双核,还可以可以修复ACPI缺陷(不需要Disabler.kext,原版cpupowermanagement正常使用),RTC,HPET缺陷(原版kext正常工作),显卡(代替efistring),声卡(只是代替了HDAEnabler.kext),网卡(包括TimeMachine问题),此外还可以解决其他很多奇奇怪怪的问题,因此建议尽可能使用DSDT补丁。

但是DSDT到底是什么东西,怎么这么神奇呢?这个要从ACPI说起了,ACPI是Intel(i386,x86_64,IA64)平台的标准固件规范,绝大部分OS需要从BIOS得到的信息都可以从ACPI得到,并且现在的趋势是未来的任何新的特性相关的信息都只能从ACPI得到。

ACPI的信息包括:
配置信息,这些信息从legacyPNP设备的配置,到多处理器,到NUMA,比如现在的MultipleCore的信息就只能从ACPI得到。

Linux启动很多代码就是处理这些配置信息,比如APIC,IOAPIC设置等。

ACPI相关设备,主要是笔记本电脑相关的设备,包括电源按钮,电池,外接电源,风扇,热键等。

底层硬件,比如PCI中断路由,chipset(主要是南桥PCI-to-LPCbridge)操作等。

电源管理,ACPI定义的电源管理包括CPU的电源管理(调频率P-state,idleC-state,throtting
T-state),设备电源管理(D-state),系统电源管理(Suspend-to-Ram,Suspend-to-Disk, power off)等。

设备热插拔,ACPI用一种统一的方式来描述设备的热插拔,这样的设备从单一的PCI设备,到笔记本电脑的DockingStation,到整个PCI hierarchy,CPU,Memory,甚至整个NUMA 节点。

可以说要理解现代PC平台必须了解ACPI。

ACPI主要是由很多表(Table)组成,而DSDT(Differentiated System Description Table)是其中一个最主要的ACPI表之一,它的定义如下
DSDT is an acronym for DifferentiatedSystem Description Table. Thistable contains the Differentiated Definition Block, which supplies theinformation and configuration information about the base system.
简单说就是包含了所有和基本系统(basesystem)不同的设备的信息,basesystem每台机器都是一样的,这个是在acpispec里指定的,但是每台机器都是不相同的,所以不相同的设备大都是由DSDT表来描述。

它包含了很多AML代码。

大多数BIOS是针对windows 开发的,而windows自己也不完全遵循acpi规范,所以因为BIOS的bug,这些代码本身可能有错,导致其他的系统,如linux,mac os出错。

我们可以手动修复这些bug使之兼容MAC系统。

DSDT在bios里是以编译后的aml文件存在,需要把它解出来,反编译成aml 代码形式(dsl文件,文本文件),代码修改完毕再重新编译,替换掉bios里原来的dsdt表。

不过PC-EFI,Chameleon的出现,使得我们不再需要冒险刷bios,只要把制作好的DSDT.aml文件放在根目录或者/Extra文件夹里,启动的时候就会自动使用这个DSDT.aml,从而达到修复ACPI系统bug的作用。

但是DSDT补丁怎么制作,却很少有人能详细的介绍,mac上的软件基本上只能制作解决双核,acpi问题的dsdt.aml,要想解决更多的问题,就必须回到windows,使用insanelymac
论坛里的一款软件ACPIPatcher,这个软件相对比较复杂,今天我们就来了解一下这个软件
的用法。

软件界面如上图,左上可以指定bios和制作补丁,右上是具体选择补丁选项的地方,左下
是输出信息,右下可以看到进度。

先来看左上部分各个标签的具体作用。

BIOSPatch:选择一个bios制作dsdt.aml,选择bios文件和指定输出dsdt.aml目录之后,选中GenerateDSDT.aml,然后按下Patch Bios按钮即可,输出目录不可以是bios目录,否则会出错
DSDTPatch:对一个已有的DSDT.aml进行acpi修复,选择DSDT.aml,指定输出目录,按下PatchAML即可
ImportDSDT:用已有的DSDT.dsl对bios打补丁,选择输入dsl文件和bios,按下PatchBios 即可
ExportDSDT:从bios里解出DSDT.dsl文件,选择bios文件和输出目录,按下Exact即可
D/CDSDT:DSL编译成AML文件,或者AML文件反编译成DSL文件,取决于选中Compile 还是Decomplie,选中Compile的时候如果同时选中Patchbefore compile,可以在把DSL
编译成AML文件的时候打上ACPI补丁。

看完了左上的标签我们来看最重要的部分,右上bugfix的详细信息,
General:
这里有三个最重要的修复,HPETPatch,RTCPatch和AliasesPatch,前两个可以解决一些时钟方面的问题,很多机器里如果有AppleIntelCPUPowerManagement.kext就会四国,或者不能正常使用,需要Disabler.kext,如果你选了前两项,从此可以扔掉Disabler.kext,因为AppleIntelCPUPowerManagement.kext可以正常工作了,第三个选项也许更加重要,AliasesPatch直接对应是否能开双核,对asus,msi的主板来说,这个选项是非常重要的,技嘉没有这个问题,选不选都无所谓。

点击Fixes…可以看到一个新窗口
这里都是一些针对编译时出现error或者warning的fix,作者的意见是当出现这些error或者warning的时候可以选择,我的意见时全部选择,防止出现error或者warning,如果还
有问题,就需要去网上搜索解决方案,自己动手修改代码然后再编译了。

Network:
这里相对比较复杂,你需要知道硬件位置,这个可以用ioRegistryExplorer来看,Lan0应该是百兆网卡而GIGE是千兆网卡,FixGP9指增加一个GPIO9的控制项,UseTime Machine Fix修复Time Machine找不到内置网卡的问题,下面是针对技嘉P43 P45 Realtek 8111c 千兆网卡的设置图,它的硬件位置在PEX 5
Graphics:
这里合理设置后完全可以代替efi-string,natit,nvinject,nvdarwin,nvkush等,首先在model那里选择显卡型号和显存大小,下面绿色的选项针对N卡,红色的针对A卡,N卡需要设置nvcap值,A卡需要设置Framebuffer和DevID,Hardwarelocation需要用ioRegistryExplorer看下,PEGP和Use DSDT GFX都要选中。

这里以硬件地址PCI 0为例,分别给出nVidia8800 GT 512MB和ATI HD3870 512MB显卡的示例。

nVidia 8800 GT512MB
ATI HD3870 512MB
Audio:
通过设置audio可以代替HDAEnabler.kext,设置很简单,AudioChipset里预置了三种,Realtek ALC888-0,Realtek ALC888-2,RealtekALC889a,ALC888分别对应address 0和address 2,技嘉P43, P45板载的ALC888选RealtekALC888-0,ALC889选Realtek ALC889a,此外还要选中Use HDEF Audio,下面以889为例
看完bug fix来看看左下角的两个编译选项,ForceDSDT Compilation表示强制编译,即便出现错误,Stop on compilation Warning表示出现warning时停止编译,追求完美的人可以选择此项,因为0error,0warning的dsdt表示没有任何语法错误。

右边还有一个选项是bios类型选择,根据你的bios类型选择Award还是AMI,技嘉的bios 是Award
下面我们以技嘉GIGA EP43-UD3L为例,实际操作一次,显卡是nVidiaGeforce 9800 GTX 512MB,声卡是ALC888。

设置输入输出路径,BIOS类型,Stopon warning,General设置
补丁详细设置
然后按下Patch Bios,运行完毕可以看到成功编译,而且可以看到编译过程中出现0Errors, 0 Warnings, 0 Remarks, 660 Optimizations。

此时到输出目录里可以看到dsdt.aml,此外,bios文件下面还会生成patch过的以new结尾的bios文件,如ep43ud3l.f4.new,如果你确认dsdt.aml可以使用,那么这个bios也是可以使用的,有需要的话可以自行刷bios,不过刷机有风险,还请慎重。

dsdt.aml的使用非常简单,首先确保你安装了支持dsdt的引导,如PC-EFIV9,Chameleon1.0.12或者Chameleon 2 RC1,推荐最新的Chameleon2 RC1,然后把dsdt.aml
放在系统盘的根目录或者Extra文件夹里,如果是efi分区启动,放在efi分区的Extra文件夹里就可以了。

到此,本次讲座就算是结束了。

全文完整的doc档和acpi patcher可以在附件下载到。

一点小更新,如果你用acpi patcher得不到DSDT,比如ASUS,MSI的部分主板,你可以在linux下通过在终端里运行cat /proc/acpi/dsdt > dsdt.aml
得到,然后用acpi patcher把它反编译得到dsdt.dsl就可以修改了
如果你可以进入mac,那么用附件里的getdsdt脚本也可以得到dsdt.dat,重命名为dsdt.aml 即可
还可以参考yanjin的帖子
此外yanjin另外一个帖子给手动修改的朋友提供了很多示例
一点小更新,如果你用acpi patcher得不到DSDT,比如ASUS,MSI的部分主板,你可以在linux 下通过在终端里运行
cat /proc/acpi/dsdt > dsdt.aml
得到,然后用acpi patcher把它反编译得到dsdt.dsl就可以修改了
如果你可以进入mac,那么用附件里的getdsdt脚本也可以得到dsdt.dat,重命名为dsdt.aml 即可
还可以参考yanjin的帖子/space.php?uid=46240&do=blog&id=1602
此外yanjin另外一个帖子给手动修改的朋友提供了很多示例/thread-486183-1-1.html
修改n7as主板的AMI BIOS解决安装leopard问题
1、使用MMTool提取:
做过给AMI BIOS添加SLIC以激活VISTA的用户对MMTool应该很熟悉,我们这次的目的和添加SLIC类似,都是要修改ACPI,n7as的dsdt表与其他主板不同,不在1B模块,而是在10模块名称叫"acpi aml",独立存在。

因此提取10模块取名叫10.dat。

同样提取10的时候要选中“In uncompressed form”。

用winhex打开10.dat模块文件,看文件是否是dsdt开头,wakh结尾。

是,另存为dsdt.aml
2.修改DSDT
这时我们需要intel的一个工具――iasl,下载地址为:
/download/iasl-win-20080729.zip
我们只需要里面的iasl.exe。

首先反编译DSDT,在命令行下输入:
iasl -d DSDT.aml
得到一个 DSDT.dsl,这是个文本文件,打开找到代码的最前面,把Scope (_PR)后面的大括号里Alias开头的那四行删掉,保存。

然后重新编译:
iasl DSDT.dsl
生成新的DSDT.aml
3.用新的DSDT替换原DSDT
同样是用winhex来编辑刚才的10模块。

替换的时候有个问题,ACPI里面每个表都对应一个偏移量,在替换的时候如果不想带来其它改动,就要保证这个偏移量不变。

如果DSDT
表的大小变了,就会影响后面的表的偏移量,这是我们要避免的。

由于新的DSDT比老的要小,所以并在结尾补上一些0,保证结束地址不变。

另外还要把新的DSDT紧挨着最后一个“WAKh”右面的一个字节改成2E。

修改方式如下(参考):
用winhex 打开 10.dat,打开新的dsdt.aml
1) 全部选中10模块中,将其全部置为0;
2) 从dsdt.aml文件中全部选中,复制,
3) 粘贴到10模块中;
4) 将新粘入的内容后面的第一个0改成2E。

其他仍然保持为0。

保存退出。

最后用MMTool把新的10模块替换到BIOS文件中,刷入。

重启,祈祷……
整个过程必须慎之又慎,因为是手动替换DSDT表,如果出错后果自不必说。

当然真刷坏了也不是啥大不了的事,只要有备份,找个修电脑的再刷回去就行。

手动修改的例子:
听说苹果新的mac 和macbook 都是用的mcp79的平台加扣肉。

为了追求完美的mac 我入了一个昂达的 n7as 主板,配合我原有的
扣肉6300 ,开始了我的mac历程。

一开始,哇,不要说原版leopard 10.5.6 就是ipc 10.5.6 , ideb1.4 *** 10.5.6 没有一个能正常安装。

ideb1.4,可以安装但是不能启动,还不如我原先的七彩虹975x 主板。

怎么办。

问google .通过一番搜索,明白了这是著名的CPUS=1问题是bios 中acpi dsdt 不兼容导致的。

我阅读了如下帖子。

/bbs/thread-44327-1-1.html
/index.php?showtopic=90505
里面讲述了如何修改dsdt 解决cpus=1 的问题,但是我照着做时,发现无法走通,经过研究发现,我的bios 与文中的不同,我的dsdt是
独立的表,而文中是和acpi放在一起。

所以我改变了方法。

如下:
/space.php?uid=46240&do=blog&id=1602
刷了修改的bios 后我直接安装了原版。

用变色龙引导安装。

安装后,无显卡驱动,网卡驱动,声卡驱动。

首先解决的是显卡:
我首先使用ox86tools使用EFI string ,结果是有分辨率了。

但是无qe/ci
后来我下载了nvkush 安装,显卡正常。

/DHF/
网卡:
/html/56/t-372156.html
声卡:
我头痛死了。

装了几个驱动都不行。

后来我在ipc中提取了alc883add0 alc883add1
发现了alc883add1 中的hdaenabler 有用。

我有根据/html/03/t-366603.html
的办法制作了applehda applehdacontrol 仿冒驱动,解决了这个问题。

不过后来我发现了更好的驱动。

支持10.5.7的仿冒驱动在/forum/index.php?showtopic=143697
现在好了,完美了
不,我不要将这些驱动放在系统中,我想将所有的破解驱动,外来驱动都放到,变色龙的Extra/Extensions 中。

保持系统干净。

说了就做。

将我所用到的所有破解驱动都放到了变色龙的Extra/Extensions 同时在驱动的infolist
后面都添加了OSBundleRequired=Root
发现声卡,网卡可以加载,显卡不能启动qe/ci
经过几次测试确认nvkush 在/S/L/E 下可以打开qe/ci 在变色龙的Extra/Extensions 只能改分辨率。

最后我只能孤零零的将nvkush 扔在/S/L/E 下
后来见到了,威廉三世的帖子,/thread-484842-1-1.html
我也起了修改dsdt 支持显卡的想法、但是威廉三世提供的acpipatch 不支持我的显卡,也不能识别我的bios ,
但是我在insanelymac 找到了asus p5n7a-vm(mcp7a)的dsdt.aml
/forum/index.php?showtopic=148416&st=200&p=1082035&#entr y1082035
New Updated DSDT :
HPET Fixed, So you can have AppleIntelCPUPowerManagement.kext installed w/o a Disabler.
GPU Injection, No need to have NVKush (or any other gpu injector) installed.
All thanks go to Signal64 for all the help.
The 2 core version .aml : DSDT.aml.zip ( 16.44K ) Number of downloads: 241
The .dsl if you want to edit for 4 core detection : dsdt.dsl.zip ( 30.15K ) Number of downloads: 82
-D-
我将他的dsdt.aml 放到变色龙的Extra/Extensions 删除/S/L/E 下的nvkush 启动
果然我的先看正常驱动了开了qe/ci
但是不能像他所说使用原版AppleIntelCPUPowerManagement.kext ,也不能替代hdaenabler 的作用,没有关系毕竟p5n7a-vm
与我的n7as 硬件有所不同。

我决定按他的办法自己修改自己的dsdt.aml
/forum/index.php?showtopic=148416&st=340 第355楼开始的帖子。

首先用mmtools 提取dsdt.aml 根据你的bios 情况使用
/space.php?uid=46240&do=blog&id=1602
或者
/bbs/thread-44327-1-1.html
然后用
iasl -d dsdt.aml 反编译成dsdt.dsl
dsdt.dsl 是一个文本文件。

打开
1. 修改解决cpus=1
搜素Scope (_PR)
去掉alias 开头的语句。

改成如下样子
原有的语句
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Alias (P001, CPU1)
Processor (P002, 0x02, 0x00000000, 0x00) {}
Alias (P002, CPU2)
Processor (P003, 0x03, 0x00000000, 0x00) {}
Alias (P003, CPU3)
Processor (P004, 0x04, 0x00000000, 0x00) {}
Alias (P004, CPU4)
}
修改后的样子
Scope (_PR)
{
Processor (CPU1, 0x01, 0x00004010, 0x06) {}
Processor (CPU2, 0x02, 0x00000000, 0x00) {}
Processor (CPU3, 0x03, 0x00000000, 0x00) {}
Processor (CPU4, 0x04, 0x00000000, 0x00) {} }
2. hpet 修改
搜索 If (_OSI ("Windows 2006")) 修改:
原有语句
If (_OSI ("Windows 2006")) {
Store (0x15, Local0)
}
改为:
If (_OSI ("Windows 2006"))
{
Store (0x15, Local0)
}
If (_OSI ("Darwin"))
{
Store (0x15, Local0)
}
3. RTC modified -去除红色代码
搜素Device (RTC0)
原有:
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00"))
Name (CRS0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags () <-- Remove
{8} <-- Remove
})
4. Search and Replace _T_ with T_
5. Search and Replace Acquire (MUTE, 0x03E8) with Acquire (MUTE, 0xFFFF)
6. Search and Replace Acquire (MUTE, 0x0FFF) with Acquire (MUTE, 0xFFFF)
7. Compile with iasl
--- 注意到这里就可以可以将dsdt.dsl 编译成dsdt.aml 正常启动了这前面的修改是通用的,相当于威廉三世提供的acpipatcher
程序中 cpufix ,hpetfix ,rtcfix 三个的功能。

下面就是专用的了。

----
1. HDEF
a. Search and Replace HDAC with HDEF
2. USB
a. Search and Replace USB0 with OHC1
b. Search and Replace US15 with OHC2
c. Search and Replace USB2 with EHC1
d. Search and Replace US12 with EHC2
目的好像是让leopard 将cpu识别成内置usb集线器,解决识别成外部usb的唤醒问题
3. SATA
a. Search and Replace ATA0 with SATA
b. Will need to add dev id to AppleAHCIPort.kext - MCP79AHCI - IOPrimaryPCIMatch
<string>0x0ab810de</string>
让leopard 识别mcp7a的ahci 为mcp79
4. SBUS
a. Search and Replace SMB0 with SBUS
5. TRIM
a. Search and Replace TRM0 with TRIM
6. P4MI, NVPM
These don't have a matching entry in the default DSDT
We add stubs so they are recognized.
Place the following above Device (OHC1)
Device (P4MI)
{
Name (_ADR, 0x00030003)
}
Device (NVPM)
{
Name (_ADR, 0x00030005)
}
7. GIGE
a. Search and Replace NMAC with GIGE
这是p5n7a 的设备,我的n7as 中没有,用于解决nvidia 网卡的问题。

8. RP04
a. Search and Replace P0P6 with RP04
(that's P zero P6 and RP zero 4)
9. LPC
a. Search and Replace SBRG with LPCB
b. Will need to add dev id to AppleLPC.kext
<string>pci10de,aac</string>
10. LPC Devices
a. Search and Replace DMAD with DMAC
b. Search and Replace RTC0 with RTC
c. Search and Replace OMSC with LDRC
d. Search and Replace COPR with MATH
e. Search and Replace (PIC) with (IPIC)
f. Search and Replace TMR with TIMR
11. MCH
a. add the following above RP04 section
Device (MCH2)
{
Name (_ADR, 0x00000001)
}
Device (MCHC)
{
Name (_ADR, Zero)
}
12. DTDG
a. add above Scope (_SB) section
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B }))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
Store (Buffer (0x01)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (0x01)
{
0x00
}, Arg4)
Return (Zero)
}
下面就是显卡的inject 了,如果你不是我的mcp7a/9300显卡,你也可以改为自己显卡的参数,参数从你能够正常使用的EFIsring info文件来
13. 添加显卡injection
a. Find Scope (_SB.PCI0.IXVE.IGPU)
b. 下滑到 method Method (_DSM, 4, NotSerialized) 结尾。

c. 并列Return (Zero) at the end of the _DSM method with:
原有代码
method Method (_DSM, 4, NotSerialized)
{ 。

return(0)
"将下面红色代码加到这儿。


}}
Store (Package (0x16)
"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},
"model",
Buffer (0x15)
{
"NVIDIA GeForce 9300M" // 根据自己显卡修改},
"rom-revision",
Buffer (0x06)
{
"OSX86"
},
"NVCAP",
Buffer (0x14)
{
/* 0000 */ 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* 0010 */ 0x00, 0x00, 0x00, 0x00
}, // 根据自己显卡修改"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@0,fboffset",
Buffer (0x04)
{
0x00, 0x00, 0x01, 0x00
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
14. 添加声卡injection
a. Find Device (HDEF)
b. Add the folowing at the end after Method (_PRW...} :
CODE
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x06)
{
"layout-id",
Buffer (0x04)
{
0x78, 0x03, 0x00, 0x00 // the hex layout ID (reverse order )// 根据自己可用的hdaenabler 中
//info.plist 填写
// 0x40, 0x00, 0x00, 0x00 // the hex layout ID (reverse order)
// al883 应该是0x73, 0x03, 0x00, 0x00
},
"model",
Buffer (0x10) // the hex count + 1 for null terminated ascii string
{
"Realtek ALC1200" // the string identifier
},
"PinConfigurations",
Buffer (0x34) // the actual hex count
{
// the PinConfigurations data as it appears.
/* 0000 */ 0x10, 0x40, 0x11, 0x01, 0x20, 0x10, 0x01, 0x01,
/* 0008 */ 0x30, 0x60, 0x01, 0x01, 0x40, 0x20, 0x01, 0x01,
/* 0010 */ 0x80, 0x90, 0xa1, 0x01, 0x90, 0x30, 0x81, 0x01,
/* 0018 */ 0x50, 0x40, 0x21, 0x02, 0xa0, 0x90, 0xa1, 0x02,
/* 0020 */ 0x60, 0x61, 0x45, 0x01, 0x70, 0x11, 0x43, 0x19,
/* 0028 */ 0xf0, 0x11, 0x33, 0x19, 0xf0, 0x01, 0xff, 0x50,
/* 0030 */ 0xf0, 0x01, 0xc0, 0x50
})
// 根据自己可用的hdaenabler 中
//info.plist 填写
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
好了dsdt.dsl 修改完毕,iasl dsdt.dsl 编译成dsdt.aml 放到变色龙的extra 目录下。

启动leopard
我的mac 不需要任何显卡破解,声卡不使用hdaenabler 了
现在剩下的问题是;
原版leopard 实现speedstep
原版leopard 睡眠和唤醒。

相关文档
最新文档