2024年4月24日发(作者:银代蓝)
威廉第三的MAC系列教程(一) ——使用ACPI Patcher制作DSDT补丁
很早就开始接触Hacintosh了,也经常出没在各个hacintosh论坛,因此也积累了不
少知识,但是很多东西都是英文的,却没有人引进到国内,导致很多人都不了解Hacintosh
社区最新的进展,或者知其然不知其所以然,因此我在这里抛砖引玉,把自己知道的一些
知识写出来和大家分享,也是想引出更多高手来。
第一篇我想给大家介绍如何使用ACPI Patcher制作DSDT补丁。
很多人都知道使用DSDT补丁可以开双核,但DSDT的功能不仅仅如此,除了开双
核,还可以可以修复ACPI缺陷(不需要,原版cpupowermanagement
正常使用),RTC,HPET缺陷(原版kext正常工作),显卡(代替efistring),声卡(只是
代替了),网卡(包括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.
简单说就是DSDT包含了所有和基本系统(basesystem)不同的设备的信息,
basesystem每台机器都是一样的,这个是在acpispec里指定的,但是每台机器都是不相
同的,所以不相同的设备大都是由DSDT表来描述。它包含了很多AML代码。大多数BIOS
是针对windows开发的,而windows自己也不完全遵循acpi规范,所以因为BIOS的
2024年4月24日发(作者:银代蓝)
威廉第三的MAC系列教程(一) ——使用ACPI Patcher制作DSDT补丁
很早就开始接触Hacintosh了,也经常出没在各个hacintosh论坛,因此也积累了不
少知识,但是很多东西都是英文的,却没有人引进到国内,导致很多人都不了解Hacintosh
社区最新的进展,或者知其然不知其所以然,因此我在这里抛砖引玉,把自己知道的一些
知识写出来和大家分享,也是想引出更多高手来。
第一篇我想给大家介绍如何使用ACPI Patcher制作DSDT补丁。
很多人都知道使用DSDT补丁可以开双核,但DSDT的功能不仅仅如此,除了开双
核,还可以可以修复ACPI缺陷(不需要,原版cpupowermanagement
正常使用),RTC,HPET缺陷(原版kext正常工作),显卡(代替efistring),声卡(只是
代替了),网卡(包括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.
简单说就是DSDT包含了所有和基本系统(basesystem)不同的设备的信息,
basesystem每台机器都是一样的,这个是在acpispec里指定的,但是每台机器都是不相
同的,所以不相同的设备大都是由DSDT表来描述。它包含了很多AML代码。大多数BIOS
是针对windows开发的,而windows自己也不完全遵循acpi规范,所以因为BIOS的