使用ACPI_Patcher制作DSDT补丁

合集下载

【安装黑苹果】Mac OS X10.7(正式版)

【安装黑苹果】Mac OS X10.7(正式版)

【安装黑苹果】Mac OS X10.7(正式版)☞[本教程已经全部完成!]经过N久的辛苦整理,现在软件集聚合在zip压缩包里,陆续更新到对应位置!№1》安装Mac OS X Lion正式版需要的软件与文件01.Java虚拟机(用来支持后续软件的运行)02.hfsexplorer.0.21(过滤镜像)03.Leopard hd installhelper v0.3(硬盘安装助手,写入HFS+磁盘格式)04.macdrive_8.0.7.38_en_setup(打开黑苹果盘)05.TransMac-9.1(建空白的.dmg格式文件)06.OSInstall(安装必须替换的文件)07.Chameleon(引导工具)08.辅助工具(如果无法引导,请安装NetFx20SP2_x86)(装在WIN7会报错,但装后能引导装PC没问题的)09.Mac OS X Lion.dmg(狮子10.7正式版)【点击这里下载苹果系统】10.TonPE(设置活动分区的工具,在1楼有下载)№2》安装MAC OSX 10.7 Lion的系统需求01. 主板:BIOS开启AHCI (最好在安装Lion之前把主板的AHCI功能驱动做好)因为有些电脑开起AHCI功能后就进不了原来的系统了,如果真进不了不用怕,再进BIOS改回IDE就行了02.CPU:Intel I 系列一般能直接安装,AMD的需要破解内核。

№3》开始制作MAC OSX 10.7 Lion的安装硬盘(所有操作都在Win7下进行)(XP用DiskGenius或其他硬盘工具分区)(Win7_x64 SP1 好像与MacDrive8不兼容就是MacDrive8在Win7x64下看不到mac分区)原理:在Win 7透过BaseSystem.dmg取得Mac磁盘工具恢复正确的安装盘。

操作步骤一建立3个分区,5G、9G、1G(全都不要格式化)。

将透过 9G + 1G 制作 5G 的Lion完整安装硬盘,安装10G 硬盘空间(9G + 1G合并)。

黑苹果安装指南

黑苹果安装指南

黑苹果(HACKINTOSH)安装指南什么是黑苹果引用自经常谬误的百度百科:“从苹果采用intel的处理器之后,Mac os被黑客破解之后可以安装在PC上,从而出现了一大批未购买苹果机而使用苹果操作系统的机器,这种就被称为黑苹果(Hackintosh),在mac苹果机上面安装原版mac系统的被称为白苹果(Macintosh),与黑苹果相对。

”为什么要黑苹果?Mac OSX的特性:轻快、专业、超强性能、超炫图形穷装机癖装13党 or 一经使用再难放弃事儿逼爱折腾,老子便是要逆天一个屌丝的自我修养一个视频,MAC OSX得天独厚的优势其实它就是一个KEYNOTE曾几何时,我们这样区分几种青年制作一台黑苹果的常用网站PCBETA远景论坛远景论坛成立于2005年7月,是一家提供IT资讯、计算机技术、资源、服务的讨论平台;也已成为国内首屈一指的操作系统应用技术交流平台,经过了近七载春秋的不懈努力,从一个仅仅讨论Vista系统及美化的小论坛发展成为了全国为数不多的专注于系统使用及其相关领域的信息平台。

国内MAC类网站相关版面(Feng、MacX、麦芽地、ChinaMac、Cocoachina等)国外论坛或网站(、、kakewalk.se、atkos.me、)(现在的:)黑苹果系统的演化、沿革Mac OS X 10.4 "Tiger"Mac OS X 10.5 "Leopard"Mac OS X 10.6"Snow Leopard" Mac OS X 10.7 "Lion"OS X 10.8 "Mountain Lion"OS X 10.9 "Mavericks"OS X 10.10 “Yosemite"这个时代,因为Dawin和XDawin,开始出现黑苹果Mac系统开始支持intel处理器,狂喜乱舞破解大范围出现趋于成熟,甚至AMD与ATI硬件都找到解决方案延续,发展似乎未结束当前黑苹果最常见的安装方式正常的解决方式:硬盘工具划分分区——找个MacOSx,镜像还原至U盘写入引导——制作启动光盘安装到目标分区——漫长的kext启动调试——逐步完善驱动(必要时修改dsdt或硬改)简化版方式: Win下通过相关软件划分分区 ——通过镜像或备份将系统文件导入此分区——启动调试——驱动完善以下情况不太建议安装黑苹果CPU低于酷睿2双核或内存低于2GAMD类型的CPUATI类型的显卡无耐心,人品差黑苹果软体一般获得方式拼人品,网上寻找同系列机械机型成功案例找懒人版镜像自己整合原版镜像和硬件驱动进行修改爱好者同盟的镜像包(如iatkos)买装好了的组装机或淘宝套装常见黑苹果神器——一台苹果可在Mac下制作安装U盘,需要Mac OSX下的“磁盘工具”将镜像还原到U盘常见黑苹果神器-PARAGON PARTITION MANAGER SERVER这款软件,让你即使在Windows下新建HFS分区也丝毫不麻烦类似软件:HFS for Windows 9.0、HFS-Explorer、 硬盘安装助手、MacDrive、常见黑苹果神器-变色龙 CHAMELEON类似软件:easybcd、Bootlink、其作用是驳接PC的bios,模拟Mac的bios常见黑苹果神器-幸运草CLOVER相当于变色龙加强版,但是菜单更丰富可视化操作更强~常见黑苹果神器——启动选项-V/-X/-S/-F-v——啰嗦模式,可以查看问题代码-f——忽略kext缓存开机,强制加载驱动-s——单机模式,尽少加载驱动-x——进入安全模式常见黑苹果神器-MULTIBEAST堪称业界良心,黑苹果界的驱动精灵(安装遵循需要与精炼原则)常见黑苹果神器-KEXT UNITY类似软件:Kext Wizard;作用在于调试kext以后运行以修复磁盘权限常见黑苹果神器-VOODOO驱动当你没有合适的声卡、笔记本电源、CPU电源管理驱动时,它们是最棒的黑苹果必须遇到的问题——KEXT驱动解决方法主要有:在PCBETA和 上找已有方案使用Mac版驱动MultiBeast修改dsdt+修改Kernel中的硬件ID号Voodoo家族好帮手KEXT出了问题,你就会遇到它们kext中的FakeSMC.kext、显卡、声卡、网卡驱动尤其重要原教旨主义懒人的救星——IATKOS 它是如此的优秀与高度集成,并且历史悠久黑苹果高阶神器-修改DSDT“DSDT补丁可以开双核,还可以修复ACPI缺陷(不需要Disabler.kext,原版cpupowermanagement正常使用),RTC,HPET缺陷(原版kext正常工作),显卡(代替efistring),声卡(只是代替了HDAEnabler.kext),网卡(包括TimeMachine问题),此外还可以解决其他很多奇奇怪怪的问题,因此建议尽可能使用DSDT补丁。

黑苹果引导工具 Clover 配置详解

黑苹果引导工具 Clover 配置详解

1. 可引导mac os 10.4-10.8,win efi,linuxefi2. 可引导传统操作系统(WindowsXP,Linux,DOS)的启动扇区(mbr)3. EFI bootloader 提供RuntimeServices与OS 运行,不可用于传统的引导器4. 默认侦测并设置硬件的大部份的属性,并且用户可以在config 中自己设置5. 可在在启动面板中重启进入其他操作系统6. 通过oem名称自动侦测配置config7. 写入config 的uuid和os的一样8. 自动补丁功能9. smbios更新为standard 2.610. 更新ACPI 至standard 4.0 版本. 支持从开机分区或EFI 文件夹加载定制的DSDT11. MADT表更新,解决在某些硬件NMI 的问题加载APCI表单(SSDT-xx, APIC, BOOT, SLIC, SLIT, SRAT, UEFI)12. 正确设置电源属性为笔记本,台式,服务器13. 可选重启修复功能⁃支持睡眠唤醒功能14. 可用PCIRootUID设备属性注入功能,为那些无法编辑dsdt的人准备的15. 显卡属性注入,为大多数A 卡和N 卡16. 可选EDID 注入17. usb3.0修复(LegacyOff,Ownership, Builtin, clock-id)18. HDA 注入, HDMI 修复19. 网卡内建20. cpu睿频21. 自动生成P-State 及C-State 的功能22. cpu变频档位和电压控制23. 自动给内核打补丁为那些不支持的CPU 像Atom and Ivy Bridge (amd那是不可能的)24. 自动为不支持的硬件给kext打补丁25. 第三方kext加载26. 支持火线下的安全模式27. 支持默认分区引导28. 界面可自选,主题,图标,字体29. 按F1获得详情,未来可能提供更多语言和字体支持.30. 按F2储存GUI 的开机纪录preboot.log 自动保存在EFI/clover/misc文件夹31. 按F4获取原始的ACPI表单,自动保存在EFI/clover/ACPI/origin 文件夹32. 按F5测试dsdt path功能33. 按F6可获取显卡rom,自动保存在EFI/clover/misc文件夹34. 按F10截取开机引导界面图,自动保存在EFI/clover/misc文件夹35. 按F12推出CD/DVD 并更新引导菜单当放入CD后主要介绍内容∙Clover 的编译∙Clover 的安装∙fixes dsdt的功能∙显卡注入功能∙EDID 注入与定制∙ATI 显卡接口参数修正∙任意kext打补丁(kexts to patch)∙隐藏引导界面不需要的菜单和卷标∙加载额外的驱动忽略缓存你∙P- and C-states 功能介绍∙config.plist简介∙······等更编译Clover所用工具:Clovergrower,可在这里下载:前往或者用CloverGrowerPro,可在这里下载:前往当然命令行工具Common tool line 是必须的,可在终端直接输入otool Mac 会自动下载安装,或者自行搜索。

防止 重置bios的补丁给还不会做dsdt的朋友

防止 重置bios的补丁给还不会做dsdt的朋友

防止重置BIOS的补丁——给还不会做DSDT的朋友
2. 没钱的捧个顶场:下载地址pb54
/view/151-cmos_reset_fix_(via_kext). html
3. 想研究的去这个地方:和原作者讨论
https:///repositories/browse/legacyrtc/t runk?rev=1//EDIT:我得来个使用说明补丁:1、这是个64位Kext补丁程序,用来防止每次重起SL时你的BIOS不被重置。

如果你愿意每次BIOS被重置后进BIOS重新设置,不在这个话题里讨论。

2、Kext文件在SL里用kexthelper安装就可以了。

当然你也可以装到/Extra/Extensions里。

必要的话重建缓存。

具体的可以看看论坛安装SL贴。

3、PS:23楼:真诚欢迎你加入MAC,我接受你的批评。

4、当然我还是建议用DSDT。

那得等你学会用后,就可以
去掉这个补丁了。

这个补丁是给还不会用DSDT或者还没搞好DSDT但又想用SL的权宜手段而已。

5、其它的应用就不在这里说了。

6、由于来这里本人都是用业余时间。

补充晚了请大家原谅。

找半天,没注意被老大置顶了。

额一个。

希望有更多的反馈。

linux-acpi

linux-acpi
系统不能启动
试试 kernel 参数”acpi=off”,如果此参数没有带来任何改变,那么这不是一个 ACPI bug。 反之,则这很可能是一个 ACPI bug。 确定了是一个 ACPI bug 后,我们还有其他一些参数来 更进一步的区分到底是 ACPI 哪个部分的 bug。
acpi=ht
这个参数和"acpi=off"几乎一样,它禁止了除多处理器配置相关的内容以外的所有 ACPI 功 能。如果 acpi=off 正常,但 acpi=ht 不正常, 则解析 ACPI 表或者 Linux SMP 的代码有 bug.
pci=noacpi
禁止使用 ACPI 来处理任何 PCI 相关的内容,包括 PCI root bus 的枚举和 PCI 设备中断路由。
acpi=noirq
禁止使用 ACPI 来处理 PCI 设备中断路由,和 pci=noacpi 的区别是它允许使用 ACPI 来枚举 PCI root bus.
pnpacpi=off
• AML 代码,一种类 C 的代码。由 BIOS 提供,OS 的 AML 解释器(在 Linux 中叫 ACPI CA) 解释执行这些代码。这是 ACPI 抽象层的关键,下面会详细介绍。
• 配置信息,ACPI 包含的配置信息很多,比如多处理器配置信息(MADT)、NUMA 配置信 息(SRAT、SLIT)、高精度定时器(HPET)等。
Method (_DIS, 0, NotSerialized) {
Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA) } }
比如我们想禁止 LNKA 设备,ACPI 规范定义了 OS 必须执行此设备的_DIS 函数。从硬件的角度 来讲,禁止 LNKA 设备需要将某个 PCI 设备的配置空间的寄存器 0×60 的最高位置上。OS 不 需要知道硬件的细节,它解释执行_DIS 函数即可。上面的代码就是 AML 代码,由 BIOS 提供, 语句‘Or (\_SB.PCI0.LPC.PIRA, 0×80, \_SB.PCI0.LPC.PIRA)’实际上就是给寄存器 \_SB.PCI0.LPC.PIRA 置上最高位, 而 PIRA 就是 PCI 设备 LPC 的配置空间的寄存器 0×60。 从此段代码我们可以明显的看出 BIOS 以 AML 代码的形式隐藏(抽象)了硬件的细节,从而使 得 OS 看到的是一个平台无关的硬件。

linux下patch命令使用详解---linux打补丁命令

linux下patch命令使用详解---linux打补丁命令

linux下patch命令使⽤详解---linux打补丁命令语 法:patch [-bceEfNRstTuvZ][-B <备份字⾸字符串>][-d <⼯作⽬录>][-D <标⽰符号>][-F <监别列数>][-g <控制数值>][-i <修补⽂件>][-o <输出⽂件>][-p <剥离层级>][-r <拒绝⽂件>][-V <备份⽅式>][-Y <备份字⾸字符串>][-z <备份字尾字符串>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始⽂件 <修补⽂件>] 或 path [-p <剥离层级>] < [修补⽂件]补充说明:patch指令让⽤户利⽤设置修补⽂件的⽅式,修改,更新原始⽂件。

倘若⼀次仅修改⼀个⽂件,可直接在指令列中下达指令依序执⾏。

如果配合修补⽂件的⽅式则能⼀次修补⼤批⽂件,这也是系统核⼼的升级⽅法之⼀。

参 数: -b或--backup 备份每⼀个原始⽂件。

 -B<备份字⾸字符串>或--prefix=<备份字⾸字符串> 设置⽂件备份时,附加在⽂件名称前⾯的字⾸字符串,该字符串可以是路径名称。

 -c或--contt 把修补数据解译成关联性的差异。

 -d<⼯作⽬录>或--directory=<⼯作⽬录> 设置⼯作⽬录。

 -D<标⽰符号>或--ifdef=<标⽰符号> ⽤指定的符号把改变的地⽅标⽰出来。

 -e或-- 把修补数据解译成ed指令可⽤的叙述⽂件。

 -E或--remove-empty-s 若修补过后输出的⽂件其内容是⼀⽚空⽩,则移除该⽂件。

OpenCore入门配置构建引导详细使用说明OC引导完整教程

EF– SSDT-SBUS-MCHC.dsl ~ 添加⼀个SMbus设备并修复_DSM在DSDT表中找到的DeviceProperties注⼊。

⼤多数⼈可以忽略。

– SSDT-ALS0.dsl ~– SSDT-PMC.dsl ~–|–EFI–OC–Drivers–XX.efiOpencore v0.5.7后版本⼀些补丁更名FWRuntimeService.efi 更名为 OpenRuntime.efi、AppleUsbKbDxe.efi 更名为 OpenUsbKbDxe.efi、BootLiquor.efi 更名为 OpenCanopy.efi,请⼤家⼀定要注意,如果以前使⽤更本做引导,务必将.efi驱动更新为更名之后的驱动,请注意,OpenCore 不⽀持⽀持列表以外的 UEFI 驱动程序,对于⼤多数系统,您只需要前3个.efi驱动程序即可启动并运⾏– ApfsDriverLoader.efi ~ 查看APFS卷所需、APFS格式⽀持【必备】– VboxHfs.efi或 HfsPlus.efi ~ 查看HFS卷所需、HFS格式⽀持、在安装MAC或者更新时建议使⽤此补丁,此补丁的效率显然⾼于官⽅的vboxhfs.efi【必备】– FwRuntimeServices.efi ~ 可替换为AptioMemoryFix.efi,⽤于修补boot.efi以获得NVRAM修复和更好的内存管理。

与OpenRuntime.efi等同【必备】– AppleGenericInput.efi ~ ⽤于Apple Hot键和FileVault⽀持的某些固件在引导时可能未注册所有键,因此可以⽤UsbKbDxe.efi代替【可选】– VirtualSmc.efi ~ ⽤于适当的FileVault⽀持,不能与FakeSMC⼀起使⽤【可选】– MemoryAllocation.efi ~ 帮助主板空出第⼀个512MB内存,为后⾯的内存注⼊做铺垫,若要使⽤hibernation功能请不要使⽤它【可选】– OpenRuntime.efi ~ 内存地址补丁与FwRuntimeServices.efi、AptioMemoryFix.efi等同【可选】– OpenUsbKbDxe.efi ~ 键盘组合键的使⽤,等同AppleUsbKbDxe.efi 【可选】– OpenCanopy.efi ~ 使⽤第三⽅主题使⽤【可选】– AppleUsbKbDxe.efi ~ 这个驱动是给使⽤模拟 UEFI 的⽼主板在 OpenCore 界⾯正常输⼊⽤的, 请勿在 Ivy Bridge (3 代酷睿)及以上的主板上使⽤,与OpenUsbKbDxe.efi 等同【可选】– NvmExpressDxe.efi ~ ⽤于在 Haswell (4 代酷睿) 或更⽼的主板上⽀持 NVMe 硬盘, 新主板不需要【可选】– XhciDxe.efi ~ ⽤于给 Sandy Bridge (2 代酷睿) 或更⽼的主板上⽀持 XHCI, 新主板不需要【可选】– HiiDatabase.efi ~ ⽤于给 Ivy Bridge (3 代酷睿) 或更⽼代主板上⽀持 UEFI 字体渲染, UEFI Shell 中⽂字渲染异常时使⽤, 新主板不需要【可选】–|–EFI–OC–Tools–XX.efiTools⽂件夹下的.efi如果不是必须的,建议不要使⽤。

opencore-legacy-patcher用法

opencore-legacy-patcher用法
以下是一个示例的opencore-legacy-patcher用法:
1. 下载并解压opencore-legacy-patcher软件包。

2. 打开终端或命令提示符窗口,进入解压后的目录。

3. 运行以下命令以创建一个备份文件:
```
patcher backup
```
4. 运行以下命令以应用补丁:
```
patcher apply
```
5. 如果需要还原到原始版本,运行以下命令:
```
patcher restore
```
6. 如果需要删除补丁,运行以下命令:
```
patcher remove
```
7. 完成操作后,可以运行以下命令以清理临时文件:
```
patcher clean
```
请注意,这只是一个简单的示例,具体的使用方式可能因版本或操作系统而有所不同。

建议查阅opencore-legacy-patcher的官方文档或相关资源以获取更详细的信息。

Mac OS X Lion 10.7 正式版(原版),Windows 7下安装教程

Mac OS X Lion 10.7 正式版(原版),Windows 7下安装教程 这个教程是整理其他教程而成的,半原创,我只是整理一下再加上自已一些文件和图片。

第一次写教程,不好的请指出。

这里用硬盘安装,HJMac引导的方法一、安装Mac OS X Lion正式版需要的软件与文件01.Java虚拟机02.hfsexplorer.0.21(过滤镜像)03.Leopard hd installhelper v0.3(硬盘安装助手, Made in China) 04.macdrive_8.0.7.38_en_setup(打开黑苹果盘)05.TransMac-9.1(建空白.dmg)06.OSInstall(替换文件)07.HJMac(引导)09.Mac OS X Lion.dmg(狮子10.7正式版)10.TonPE(设置活动分区)二、安装MAC OSX 10.7 Lion的系统需求01. 主板:BIOS开启AHCI (最好在安装Lion之前把主板的AHCI功能驱动做好)因为有些电脑还起AHCI功能后就进不了原来的系统了,如果真进不了不用怕,再进BIOS改回IDE就行了02.CUP:Intel I 系列一般能直接安装,AMD的需要破解内核,但目前制作破解内核的作者暂时隐退。

三、开始制作MAC OSX 10.7 Lion的安装硬盘(所有操作都在Win7下进行)(XP用DiskGenius或其他硬盘工具分区)原理:在Win 7透过BaseSystem.dmg取得Mac磁盘工具 恢复正确的安装盘。

操作步骤一建立3个分区,5G、9G、1G(全都不要格式化)。

将透过 9G + 1G 制作 5G 的Lion完整安装硬盘,安装10G 硬盘空间(9G + 1G合并)。

9G可按个人需求改,19·29·39……。

因为提取的BaseSystem.dmg,硬盘安装助手写入硬盘后,只有 1.6x GB可用空间,无法存放 2.75 GB的/Packages文件夹,故本文将透过写入9G分区硬盘后,取得Mac磁盘工具 恢复大小 5.0 GB的Lion正确安装盘,并可存放2.75GB的/Packages 文件夹。

clover使用教程

clover使用教程Clover能干什么Clover是一个操作系统启动加载器(boot loader),能够同时运行于支持EFI方式启动的新式电脑和不支持它的老式电脑上。

一些操作系统可以支持以EFI方式启动,比如OS X, Windows 7/8/10 64-bit, Linux;也有不支持的,比如Windows XP,它只能通过传统的BIOS 方式来启动,也就是通过启动扇区来启动。

EFI不仅存在于操作系统的启动过程中,它还会创建操作系统可访问的表和服务(tables and services),操作系统的运行依赖于EFI正确的提供功能。

从内建的UEFI来启动OS X是不可能的,用原始的DUET 来启动OS X也不可能。

CloverEFI和CloverGUI做了大量的工作来修正内部表,让运行OS X成为可能。

译注:DUET(Developer's UEFIEmulation),开发者的UEFI模拟Clover的两种启动方式启动方式A: 基于BIOS的电脑(老式主板)BIOS->MBR->PBR->boot->CLOVERX64.efi->OSLoader启动方式B: 基于UEFI的电脑(新式主板)UEFI->CLOVERX64.efi->OSLoaderClover兼EFI的目录结构EFIClover驱动程序详解BIOS启动过程中(启动方式A)要用到drivers32或drivers64目录,UEFI启动过程中(启动方式B)则使用drivers64UEFI 目录。

它们的内容会根据配置和BIOS版本而有所不同。

必须要提的一点是这些驱动程序只在bootloader运行时有效,不会影响最终启动的操作系统。

至于到底要使用哪些驱动程序由用户来决定。

Drivers64UEFI目录几必备的驱动程序:驱动程序详解apfs.efi 苹果新推出的文件系统,macOS 10.13必备FSInject.efi 控制文件系统注入kext到系统的可能性。

  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,throttingT-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 5Graphics:这里合理设置后完全可以代替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 GT512MBATI HD3870 512MBAudio:通过设置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",独立存在。

相关文档
最新文档