ACPI
本文档会把 config 的项目分开来,内容繁琐,请仔细阅读相关配置项。配置
config.plist强制要求在 Windows 环境下使用 Propertree 来编辑,其他任何软件都不建议使用。
ACPI(Advanced Configuration and Power Interface,高级配置和电源接口)是发现和配置计算机硬件的开放标准。这里先把 Root 下面的几条 #WARNING 删除,这几条没有实际意义。
Add
添加的 ACPI 表存放在./OC/ACPI/目录中。
这部分主要添加不同硬件需要用的 DSDT 以及 SSDT 文件。
| CPU硬件 | CPU | EC | AWAC | NVRAM | USB |
| Skylake(七代) | SSDT-PLUG | SSDT-EC-USBX | / | / | / |
| Kaby Lake(八代) | / | / | / | ||
| Coffee Lake(九代) | SSDT-AWAC | SSDT-PMC | / | ||
| Comet Lake(十代) | / | SSDT-RHUB |
Delete
从 ACPI 栈中删除选定的表。
All如果设置为
true,则所有符合条件的 ACPI 表都会被删除。否则只删除第一个匹配到的。Comment注释。
Enabled设置为
true将删除匹配到的 ACPI 表。即此条目生效。OemTableId将表的 OEM ID 作为匹配值。
TableLength设置匹配的大小,填写
0不设置匹配大小,将匹配到任意大小。TableSignature设置表的签名作为匹配值。
注
当需要匹配多处时即 All 的值为 true 时,不要设置表的签名 TableSignature 的值。尤其是在不同类型的重命名操作的时候。
Patch
添加或删除的 ACPI 的二进制热补丁。
Base为重命名补丁指定一个 ACPI 路径,让 OC 通过取得该路径的偏移量来查找(或替换)重命名补丁。留空时忽略。
只支持正确的绝对路径(例如:
\_SB.PCI0.LPCB.HPET)。目前支持的类型有:Device、Field、Method。BaseSkipOC 查找和替换之前跳过找到
Base的数。设置为0不跳过。Comment注释
Count应用此补丁的数量,设置为
0应用到所有找到的匹配Base的数量。Enabled设置为
true应用此条 ACPI 补丁Find找到的 Data,如果设置长度必须和
Replace相等。注
如果留空那么当指定
Base时,查询到Base会立即生效。Limit要查询的最大字节数,如果设置值为
0那么将会查询整个 ACPI 表Mask查询比较期间使用的数据(按位掩码)。通过忽略未屏蔽位进行模糊查询(设置为
0),如果设置,此值的长度必须和Replace相等。OemTableId将表的 OEM ID 作为匹配值。
Replace替换数据。
ReplaceMask替换数据期间使用的数据(按位掩码)。通过忽略未屏蔽位进行模糊查询(设置为
0),如果设置,此值的长度必须和Replace相等。Skip在应用替换之前要跳过的找到的数量。设置为
0不跳过任何事件。TableLength将表的大小匹配为此处所设置的值。
TableSignature将表的签名匹配为此处所设置的值。
Quirks
此目录下有以下配置项,初始配置与解释如下:
FadtEnableReset: False
- 在 FADT 表中提供寄存器复位标志,用于修复旧硬件的重启和关机。除非不启用就无法关机和重启,否则不建议启用。
NormalizeHeaders: False
- 清理 ACPI 表头字段以解决 macOS ACPI 实现错误导致的引导崩溃。一些主板的 ACPI 表需要打开这个修复 macOS 10.13 系统的启动。
RebaseRegions: True
- 尝试试探性地重新定位 ACPI 内存区域,使用自定义 DSDT 则必须开启。
ResetHwSig: False
- 启用这一选项可以解决固件无法在重新启动过程中保持硬件签名导致的休眠唤醒问题。
ResetLogoStatus: False
- 无法在有 BGRT 表的系统上显示 OEM Windows 标志的硬件需要开启。
SyncTableIds: False
- 解决当用 Opencore 引导 windows 7 及更早的系统时,因缺少 SLIC 表而无法激活 windows 的问题。