跳转至

准备 ACPI

基本概念

APCI

高级配置与电源接口(Advanced Configuration and Power Interface),是 1997 年由英特尔、微软、东芝共同提出、制定的操作系统电源管理、硬件配置接口,ACPI 定义了系统固件 BIOS 或 UEFI 和操作系统之间的硬件抽象接口。

它帮助操作系统合理控制和分配计算机硬件设备的电量,有 了 ACPI ,操作系统可以根据设备实际情况,根据需要把不同的硬件设备关闭。

它主要涵盖的功能包括:

  1. System power management(系统电源管理)
  2. Device power management(设备电源管理)
  3. Processor power management(处理器电源管理)
  4. Device and processor performance management(设备及处理器性能管理)
  5. Configuration / Plug and Play(配置/即插即用)
  6. System Events(系统事件)
  7. Battery management(电池管理)
  8. Thermal management(温度管理)
  9. Embedded Controller(嵌入式控制器)
  10. SMBus Controller(SMBus控制器)

在计算机应用平台,ACPI 越来越重要。ACPI 由很多表组成,包括:RSDP,SDTH,RSDT,FADT,FACS,DSDTSSDT,MADT,SBST,XSDT,ECDT,SLIT,SRAT。其中 DSDT 就是它的一个重要的描述表。

DSDT 、SSDT

正如上面所说,DSDT 和 SSDT 是 ACPI 规范的一部分,概述了硬件设备,如 USB 控制器、CPU 线程、嵌入式控制器、系统时钟等。

DSDT(差分系统描述表)可以被视为包含大部分信息的主体

SSDT(辅助系统描述表)传递的信息较少

可以将 DSDT 视为建筑蓝图,其中 SSDT 是概述项目额外细节的便签。

黑苹果下一般是先提取 DSDT,然后根据 DSDT 内容来编写对应的 SSDT 来修正 DSDT,当然不使用 SSDT 直接在提起的 DSDT 基础上修改也可以的,就是得进行 DSDT 排错以及代码调整,工程量还是比较大的,不如使用 SSDT 修正起来简约方便。

Why?为什么要知道这些

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 组合

ACPI 可以自己手动编译,也可以下载别人编译好的,虽然自己编译是最完美的,但是需要一定的学习门槛,所以小白用户还是建议下载编译好的 SSDT 文件即可。

下面可以根据自己的机型,参考下文,下载属于自己的 ACPI 文件即可。

下载不了的话是因为 Github 被国内墙掉的缘故,下面是几个解决方法思路

  1. 使用电信网络访问下载
  2. 挂代理去下载
  3. 使用 Github 镜像站点下载
  4. 使用别人已配置好的 EFI 文件夹里面的文件,直接拿来使用
  5. 办法总比困难多,不要遇到一点点小挫折就放弃

Intel 桌面

Penryn、Younah、Conroe

Lynnfield、Clarkdale

SandyBridgeIvy Bridge

Coffee 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

Rocket Lake

可以模仿 Comet Lake 10代 CPU 的来

Alder Lake

  • SSDT-PLUG-ALT.aml
    • 12 代 CPU 大小核调度,独有的 SSDT
  • 其他可以模仿 Comet Lake 10代 CPU 的来

Intel 笔记本

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
  • SSDT-EC-LAPTOP.aml
  • SSDT-XOSI.aml
    • 触控板连接修复,默认工作在轮询模式
    • 需要配合 ACPI 补丁:Change _OSI to XOSI 来使用
    • NUC 等没有触控板的设备不需要这个
  • SSDT-PNLF.aml
    • 修复笔记本亮度控制,NUC 不需要这个 -[X] SSDT-IMEI.aml
    • 修复 Ivy Bridge CPU 与 6 系列主板混合的问题
    • 修复 Sandy Bridge CPU 与 7 系列主板混合的问题

Haswell、Broadwell

Skylake、Kaby Lake

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.aml
    • 修复笔记本亮度控制,NUC 不需要这个
  • 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.aml
    • 修复笔记本亮度控制,NUC 不需要这个
  • 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

Ice 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 不需要这个
  • SSDT-AWAC.aml
    • 修复较新硬件上的系统时钟
    • 支持以下主板:
      • B360、B365、H310、H370
      • Z370(具有较新 BIOS 版本的 Gigabyte 和 AsRock 主板)
      • Z390
      • B460、Z490
      • 400系列 (Comet Lake)
      • 495系列 (Ice lake)
  • SSDT-RHUB.aml
    • 修复许多 Icelake 笔记本电脑上的根设备错误

Intel 高端桌面

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

Skylake-X/W、Cascade Lake-X/W

AMD 桌面

Bulldozer(15h)、Jaguar(16h)

Ryzen、Threadripper(17h and 19h)

黑苹果 ACPI 大全?

由于 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-NoHybGfx.aml 屏蔽独显
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-GPU-SPOOF.aml AMD R9 系列仿冒使用,详细可参考 OC 教程
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-GPU-R9-370.aml AMD R9 370 的仿冒,实际替换成自己的实际路径使用
41 SSDT-ThinkPad_ClickPad ThinkPad 的 ClickPad 专用
42 SSDT-UNC.aml 禁用 ACPI 中未使用的设备,确保 IOPCIFamily 不会出现内核恐慌
43 SSDT-UPRW.aml 修复睡眠自动唤醒补丁
44 SSDT-USB3-1-XHC2.aml ASMedia ASM1142 USB 3.1 Type-A 和 Type-C 一体的 USB 专用
45 SSDT-SSCN.aml 某些 I2C 触控板轮询失败的情况下可以考虑使用看看
46 SSDT-XHC2.aml 自动注入 XHC 属性?
47 SSDT-XOSI.aml 触控板连接修复,模拟 Windows 版本的 Darwin,需要配合补丁
48 SSDT-RP.PXSX-disbale.aml 屏蔽 NVME 硬盘补丁示例,记得替换自己电脑的实际硬盘路径
49 SSDT-PLUG-ALT.aml 12 代 CPU 大小核调度

最后更新: 2022-09-19