高级配置与电源接口(Advanced Configuration and Power Interface),是 1997 年由英特尔、微软、东芝共同提出、制定的操作系统电源管理、硬件配置接口,ACPI 定义了系统固件 BIOS 或 UEFI 和操作系统之间的硬件抽象接口。
它帮助操作系统合理控制和分配计算机硬件设备的电量,有 了 ACPI ,操作系统可以根据设备实际情况,根据需要把不同的硬件设备关闭。
它主要涵盖的功能包括:
- System power management(系统电源管理)
- Device power management(设备电源管理)
- Processor power management(处理器电源管理)
- Device and processor performance management(设备及处理器性能管理)
- Configuration / Plug and Play(配置/即插即用)
- System Events(系统事件)
- Battery management(电池管理)
- Thermal management(温度管理)
- Embedded Controller(嵌入式控制器)
- SMBus Controller(SMBus控制器)
在计算机应用平台,ACPI 越来越重要。ACPI 由很多表组成,包括:RSDP,SDTH,RSDT,FADT,FACS,DSDT,SSDT,MADT,SBST,XSDT,ECDT,SLIT,SRAT。其中 DSDT 就是它的一个重要的描述表。
正如上面所说,DSDT 和 SSDT 是 ACPI 规范的一部分,概述了硬件设备,如 USB 控制器、CPU 线程、嵌入式控制器、系统时钟等。
DSDT(差分系统描述表)可以被视为包含大部分信息的主体
SSDT(辅助系统描述表)传递的信息较少
可以将 DSDT 视为建筑蓝图,其中 SSDT 是概述项目额外细节的便签
macOS 可能对 DSDT 中存在的设备非常挑剔,因此我们需要纠正它。macOS 正常工作需要修正的主要设备:
-
EC
- 嵌入式控制器
- 非苹果的机型都在其 DSDT 中公开了一个 EC,但是通常与 macOS 不兼容,可能会导致恐慌,因此需要对 macOS 隐藏。
- 对于笔记本电脑,实际的嵌入式控制器仍然需要启用电池和热键才能工作,并且重命名 EC 还会导致 Windows 出现问题,因此最好在不禁用真正的嵌入式控制器的情况下创建假 EC。
-
Plugin type
- 插件类型
- 允许使用 XCPM 在 Intel Haswell 以及更新架构的 CPU上提供本地 CPU 电源管理,这个不适合 AMD
-
AWAC system clock
- AWAC 系统时钟
- 因为 macOS 无法与 AWAC 时钟通信,因此这要求我们要么强制使用传统 RTC 时钟,要么在不可用的情况下为 macOS 创建一个假的时钟来玩
-
NVRAM SSDT
- 真正的 300 系列主板(非 Z370)不会在 ACPI 中将 FW 芯片声明为 MMIO,因此内核会忽略 UEFI 内存映射声明的 MMIO 区域。这个 SSDT 带回了 NVRAM 支持
-
Backlight SSDT
- 用于修复笔记本电脑上的背光控制支持
-
GPIO SSDT
- 用于允许 VoodooI2C 连接,仅适用于笔记本电脑
-
XOSI SSDT
- 用于将 OSI 调用重新路由到此 SSDT,主要用于诱使我们的硬件认为其启动 Windows,以便我们获得更好的触控板支持
-
IRQ SSDT and ACPI patches
- 用于修复 DSDT 中的 IRQ 冲突,主要用于笔记本电脑。SSDT Time 独占
- 注意 Skylake 和较新的 CPU 很少有 IRQ 冲突,这主要在 Broadwell 和较旧的系统上使用
ACPI 可以自己手动编译,也可以下载别人编译好的,虽然自己编译是最完美的,但是需要一定的学习门槛,所以小白用户还是建议下载编译好的 SSDT 文件即可。
下面可以根据自己的机型,参考下文,下载属于自己的 ACPI 文件即可。
-
Penryn、Younah、Conroe
-
Lynnfield、Clarkdale
-
SandyBridge、Ivy Bridge
- CPU-PM.aml
- 电源管理使用
- 需要自己脚本生成,比较老了,可以参考 Sandy and Ivy Bridge Power Management
- 生成后需要配合 ACPI 补丁:Delete CpuPm、Delete Cpu0Ist
- SSDT-EC-DESKTOP.aml
- SSDT-IMEI.aml
- 修复 Ivy Bridge CPU 与 6 系列主板混合的问题
- 修复 Sandy Bridge CPU 与 7 系列主板混合的问题
- CPU-PM.aml
-
Hasewell、Broadwell
-
Skylake
-
Kaby Lake
-
Coffee Lake
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-DESKTOP.aml
- SSDT-AWAC.aml
- 修复较新硬件上的系统时钟
- 支持以下主板:
- B360、B365、H310、H370
- Z370(具有较新 BIOS 版本的 Gigabyte 和 AsRock 主板)
- Z390
- B460、Z490
- 400系列 (Comet Lake)
- 495系列 (Ice lake)
-
Comet Lake
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-DESKTOP.aml
- SSDT-AWAC.aml
- 修复较新硬件上的系统时钟
- 支持以下主板:
- B360、B365、H310、H370
- Z370(具有较新 BIOS 版本的 Gigabyte 和 AsRock 主板)
- Z390
- B460、Z490
- 400系列 (Comet Lake)
- 495系列 (Ice lake)
- SSDT-RHUB.aml
- 修复某些 OEM主板的问题,需要关闭 RHUB 设备并强制 macOS 手动重建端口
- 华硕 Z490 需要这个 SSDT
- 微星主板有待测试
- 技嘉和华擎主板工作很好,不需要这个 SSDT
-
Clarksfield、Arrandale
- SSDT-EC-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- SSDT-PNLF.aml
- 修复笔记本亮度控制,NUC 不需要这个
-
Sany Bridge、Ivy Bridge
- CPU-PM.aml
- 电源管理使用
- 需要自己脚本生成,比较老了,可以参考 Sandy and Ivy Bridge Power Management
- 生成后需要配合 ACPI 补丁:Delete CpuPm、Delete Cpu0Ist
- SSDT-EC-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- SSDT-PNLF.aml
- 修复笔记本亮度控制,NUC 不需要这个
- SSDT-IMEI.aml
- 修复 Ivy Bridge CPU 与 6 系列主板混合的问题
- 修复 Sandy Bridge CPU 与 7 系列主板混合的问题
- CPU-PM.aml
-
Haswell、Broadwell
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- 如果这个不成功的话,可手动使用 MaciASL 编译 SSDT-GPI0.dsl.zip 来替代 XOSI
- SSDT-PNLF.aml
- 修复笔记本亮度控制,NUC 不需要这个
-
Skylake、Kaby Lake
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- 如果这个不成功的话,可手动使用 MaciASL 编译 SSDT-GPI0.dsl.zip 来替代 XOSI
- SSDT-PNLF.aml
- 修复笔记本亮度控制,NUC 不需要这个
-
Coffee Lake、Whiskey Lake
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- 如果这个不成功的话,可手动使用 MaciASL 编译 SSDT-GPI0.dsl.zip 来替代 XOSI
- SSDT-PNLF-CFL.aml
- SSDT-AWAC.aml
- 修复较新硬件上的系统时钟
- 支持以下主板:
- B360、B365、H310、H370
- Z370(具有较新 BIOS 版本的 Gigabyte 和 AsRock 主板)
- Z390
- B460、Z490
- 400系列 (Comet Lake)
- 495系列 (Ice lake)
-
Coffee Lake Plus、Comet Lake
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-LAPTOP.aml
- SSDT-XOSI.aml
- 触控板连接修复
- 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
- NUC 不需要这个
- 如果这个不成功的话,可手动使用 MaciASL 编译 SSDT-GPI0.dsl.zip 来替代 XOSI
- SSDT-PNLF-CFL.aml
- SSDT-AWAC.aml
- 修复较新硬件上的系统时钟
- 支持以下主板:
- B360、B365、H310、H370
- Z370(具有较新 BIOS 版本的 Gigabyte 和 AsRock 主板)
- Z390
- B460、Z490
- 400系列 (Comet Lake)
- 495系列 (Ice lake)
- SSDT-PMC.aml
- 用来支持适配 NVRAM
- 300 系列主板都需要此 SSDT(Z370除外)
- 支持以下主板:
- B360、B365
- H310、H370(HM370 应该不需要这个)
- Z390
- Nehalem、Westmere
- Sandy Bridge-E、Ivy Bridge-E
- SSDT-EC-DESKTOP.aml
- SSDT-UNC.aml
- 禁用 ACPI 中未使用的设备,确保 IOPCIFamily 不会出现内核恐慌
- 所有的 X99 主板和大多数 X79 主板需要这个 SSDT
- 此外还有一些 C602、C612 主板也需要这个 SSDT
- Haswell-E、Broadwell-E
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-DESKTOP.aml
- SSDT-RTC0-RANGE-HEDT.aml
- Big Sur 需要确保 RTC 设备的兼容
- SSDT-UNC.aml
- 禁用 ACPI 中未使用的设备,确保 IOPCIFamily 不会出现内核恐慌
- 所有的 X99 主板和大多数 X79 主板需要这个 SSDT
- 此外还有一些 C602、C612 主板也需要这个 SSDT
- Skylake-X/W、Cascade Lake-X/W
- SSDT-PLUG-DRTNIA.aml
- SSDT-EC-USBX-DESKTOP.aml
- SSDT-RTC0-RANGE-HEDT.aml
- Big Sur 需要确保 RTC 设备的兼容
- Bulldozer(15h)、Jaguar(16h)
- Ryzen、Threadripper(17h and 19h)
- SSDT-EC-USBX-DESKTOP.aml
- SSDT-CPUR.aml
- 用于 B550 和 A520 主板修复 CPU 定义,其他主板可以不使用
- X570 和较旧的主板不需要此 SSDT
由于 ACPI 太多了,国光我不可能都列的很全,而且有些 SSDT 作用网上没有权威解释,所以下面的解释说明也会有误差,仅做参考使用,如果内容方面有所遗漏或者发现严重错误的话,欢迎 Github 提交 PR 补充:
序号 | SSDT 文件名 | 解释说明 |
---|---|---|
1 | FixShutdown-USB-SSDT.aml | 修复 USB 控制器,解决睡眠或者关机自动重启 |
2 | Spoof-SSDT.aml | 禁用 GPU |
3 | SSDT-ALS0.aml | 添加虚拟的环境光传感器以在重启后保存之前亮度设置 |
4 | SSDT-ARTC.aml | 修复在较新的硬件上找到的系统时钟。OCC 自带的 |
5 | SSDT-AWAC.aml | 300 系列主板使用, |
6 | SSDT-BAT.aml | ThinkPad 等型号的电池补丁 |
7 | SSDT-BKey.aml | 早期的亮度调节使用 |
8 | SSDT-BRG0.aml | BIOS 没有 Serial(COM) Port 串口或者找不到禁用 Super IO 的话可能需要 |
9 | SSDT-CPUR.aml | 能源管理,针对 AMD B550 和 A520 主板,X570 等较旧的主板不要使用 |
10 | SSDT-EC-DESKTOP.aml | 老的桌面平台使用,用于修复嵌入式控制器 |
11 | SSDT-EC-LAPTOP.aml | 老的笔记本平台使用,用于修复嵌入式控制器 |
12 | SSDT-EC-USBX-DESKTOP.aml | 新的桌面平台使用,用于修复嵌入式控制器 |
13 | SSDT-EC-USBX-LAPTOP.aml | 新的笔记本平台使用,用于修复嵌入式控制器 |
14 | SSDT-EHCx_OFF.aml | USB 兼容性表,禁用EHC1和EHC2。OCC 自带的 |
15 | SSDT-EHCx-DISABLE.aml | 不清楚具体作用 在其他人的 EFI 里面看到过 |
16 | SSDT-GPI0.aml | 触控板连接修复。OCC 也自带的 |
17 | SSDT-GPRW.aml | 修复睡眠自动唤醒补丁 |
18 | SSDT-HPET.aml | 主要用于 X79、X99 和笔记本电脑用户的 IRQ 补丁 |
19 | SSDT-HV-CPU.aml | 对 macOS 的 Hyper-V 集成支持 |
20 | SSDT-HV-PLUG.aml | 对 macOS 的 Hyper-V 集成支持 |
21 | SSDT-HV-VMBUS.aml | 对 macOS 的 Hyper-V 集成支持 |
22 | SSDT-IMEI-S.aml | 当 DSDT 中没有 IMEI 设备需要通过设备属性设置定义设备 ID 的时候才需要 |
23 | SSDT-IMEI.aml | 当 DSDT 中没有 IMEI 设备需要通过设备属性设置定义设备 ID 的时候才需要 |
24 | SSDT-IRQ.aml | 修复 IRQ 冲突 |
25 | SSDT-LANC.aml | 修复睡眠自动唤醒补丁 |
26 | SSDT-LIDpatch.aml | 合盖睡眠 |
27 | SSDT-NDGP.aml | 屏蔽独显 |
28 | SSDT-OLARILA.aml | 作用不详 来自于 Olaria.com 的特殊 SSDT |
29 | SSDT-OPT.aml | 不清楚具体作用 在其他人的 EFI 里面看到过 |
30 | SSDT-PLUG_FX.aml | 可能是 AMD FX 系列专用的 CPU 能源管理 |
31 | SSDT-PLUG_RYZEN.aml | 可能是 AMD Ryzen 系列专用的 CPU 能源管理 |
32 | SSDT-PLUG-DRTNIA.aml | 用于 Hasewell 和更新 CPU 的能源管理 |
33 | SSDT-PMC.aml | 300 系列主板原生的 NVRAM 补丁 |
34 | SSDT-PNLF-CFL.aml | Coffee Lake 和更新平台的笔记本背光修复补丁 |
35 | SSDT-PNLF.aml | 大多数主板的背光修复补丁 |
36 | SSDT-PTSWAK.aml | 修复关机、睡眠问题 |
37 | SSDT-RHUB.aml | 修复某些 400 系列主板的问题,需要关闭 RHUB 设备并强制 macOS 手动重建端口 |
38 | SSDT-RTC0-RANGE-HEDT.aml | 高端桌面平台专用,因为Big Sur 需要确保 RTC 设备的兼容 |
39 | SSDT-SBUS-MCHC.aml | 修复 SMBus 支持,解决 温度、风扇、电压等读数问题 |
40 | SSDT-SHC0.aml | 不清楚具体作用 在其他人的 EFI 里面看到过 |
41 | SSDT-ThinkPad_ClickPad | ThinkPad 的 ClickPad 专用 |
42 | SSDT-UNC.aml | 禁用 ACPI 中未使用的设备,确保 IOPCIFamily 不会出现内核恐慌 |
43 | SSDT-UPRW.aml | 修复睡眠自动唤醒补丁 |
44 | SSDT-USB-Reset.aml | 可能和 SSDT-RHUB 作用相同 |
45 | SSDT-USBX.aml | 不清楚具体作用 在其他人的 EFI 里面看到过 |
46 | SSDT-XHC2.aml | 自动注入 XHC 属性? |
47 | SSDT-XOSI.aml | 触控板连接修复,模拟 Windows 版本的 Darwin,需要配合补丁 |