config.plist 详解
你实际要编辑的文件
整个项目只有一个配置文件需要你关注:EFI/config.plist。它的结构兼容 OCAT(OpenCore Auxiliary Tools),基于标准的 OpenCore 0.9+ 示例配置模板。以下是仓库中提供的默认值,以及它们在 Dell Precision 7740 上的具体含义。
ACPI → Add(SSDT 补丁表)
EFI/ACPI/ 目录中共有 32 个 .aml 文件(ACPI 机器语言,编译后的 SSDT),其中 12 个在 config.plist 中被默认加载。其余文件作为被禁用的备选项保留在文件夹中——如果你的具体硬件改版需要它们,只需要把对应条目的 Enabled 改为 true 即可启用。
| 状态 | 文件名 | 用途解释 |
|---|---|---|
| YES | SSDT-00-XOSI.aml | 向 macOS 提供 XOSI 方法。macOS 在启动时会调用 ACPI 表中的 _OSI 方法来询问"我运行在什么操作系统上?"——Dell 的 DSDT 会回答"Windows",从而解锁一整套 Coffee Lake-H 平台的电源管理路径和硬件功能。这个 SSDT 配合 ACPI Patch 中的 _OSI→XOSI 重命名补丁一起工作 |
| YES | SSDT-01-HPET_RTC_TIMR-fix.aml | 修复高精度事件定时器(HPET)、实时时钟(RTC)和定时器(TIMR)三个设备之间的 IRQ 中断路由冲突。这些冲突在 Dell 的固件中非常常见,不修复会导致启动时随机卡死或内核崩溃 |
| YES | SSDT-03-EC.aml | 创建一个虚拟的嵌入式控制器(Embedded Controller)设备。macOS 在启动早期会探测 EC 设备——如果找不到 EC,整个启动流程会无限卡住。Dell 7740 的 EC 在 ACPI 表中的路径和 macOS 期望的不同,所以需要一个假的 EC 来"骗过"macOS 的探测 |
| YES | SSDT-04-USBX_ALS0_MCHC.aml | 三合一补丁:USB 电源属性(让 macOS 知道每个 USB 口能提供多少电)+ 环境光传感器占位设备(没有这个的话系统设置里亮度调节滑块可能出 bug)+ 内存控制器集线器设备声明 |
| YES | SSDT-05-PLUG-_SB.PR00.aml | 在每个 CPU 线程上注入 _PR0(完全上电)和 _PR3(完全断电)两种电源状态。这是 XCPM(XNU CPU Power Management,macOS 的 CPU 电源管理框架)正常工作的前提。没有这个 SSDT,你的 CPU 会一直跑在最高频率上,既不省电,风扇也狂转 |
| YES | SSDT-06-PNLF-CFL.aml | Coffee Lake-H 平台集成显卡(Intel UHD 630)的屏幕背光亮度控制。没有它,你只能使用最高亮度,无法用 Fn 键调节,也无法在系统设置中拖动亮度滑块 |
| YES | SSDT-07-SBUS.aml | 声明 SMBus 系统管理总线设备。I2C 触摸板需要通过 SMBus 来被系统枚举识别——没有 SBUS 设备声明,VoodooI2C 驱动无法找到触摸板硬件 |
| YES | SSDT-12-PMCR.aml | 电源管理控制器(Power Management Controller Register)资源声明。macOS 的电源管理框架依赖这个设备来执行一些底层的电源状态切换 |
| YES | SSDT-17-GPRW.aml | 修补 GPE(General Purpose Event,通用事件)的唤醒方法路径。Dell 固件中的 GPRW 方法在合盖/开盖事件的处理上和 macOS 的预期不兼容——不修补的话,合上盖子再打开时系统不会正常唤醒,屏幕保持黑屏 |
| YES | SSDT-DNVMe.aml | 为 NVMe 固态硬盘注入 APFS(Apple File System)兼容的设备属性,包括 class-code 和 built-in 属性。没有它,系统信息中 NVMe 硬盘会显示为外置设备而非内置硬盘 |
| YES | SSDT-dGPU-iGPU-WX7130.aml | Dell Precision 7740 上最关键的一个 SSDT。它处理 AMD Radeon Pro WX 7130 独立显卡和 Intel UHD 630 集成显卡之间的电源路由和上电序列。WX 7130 是一款移动工作站级别的专业显卡,苹果从来没有在任何 MacBook Pro 上使用过它——它需要一个定制化的上电序列才能被 macOS 正确识别。这个 SSDT 设置了 PEGP→GFX0 的设备路径映射、电源状态注入、以及 PCI 配置空间的初始值 |
被禁用的 SSDT 参考库(如果你的具体硬件子型号需要它们,只需把对应条目的 Enabled 改为 true):SSDT-02-I2C.aml、SSDT-02-OCGPI0-GPHD.aml、SSDT-08-DMAC.aml、SSDT-10-MEM2.aml、SSDT-11-PPMC.aml、SSDT-13-PTSWAK.aml、SSDT-14-LIDpatch.aml、SSDT-15-OCWork-dell.aml、SSDT-16-RMCF-OnOff-Trackpad.aml、SSDT-16-RMCF-PS2Map.aml、SSDT-IPIC.aml、SSDT-PMC.aml、SSDT-RHUB.aml、SSDT-TB3-JHL7540.aml、SSDT-TB3.aml、SSDT-XSPI.aml、SSDT-GPRW.aml、SSDT-PTSWAK.aml。共 18 个备用 SSDT,覆盖了不同批次 7740 可能需要的各种额外补丁——包括 Thunderbolt 3 转接器(JHL7540 控制器)、I2C 触摸板备选路径、XSPI 闪存控制器、以及各种 Dell 专有的睡眠/唤醒路径修补。
ACPI → Patch(ACPI 二进制补丁)
发布的配置中只启用了一个二进制补丁:
# _OSI 重命名为 XOSI —— 需要 SSDT-XOSI.aml 配合使用
Comment: "_OSI to XOSI rename - requires SSDT-XOSI.aml"
Enabled: true
Find: X09TSQ== ("_OSI" 的 base64 编码)
Replace: WE9TSQ== ("XOSI" 的 base64 编码)
这个补丁在 DSDT 的二进制码中搜索字符串 _OSI(base64: X09TSQ==),将其替换为 XOSI(base64: WE9TSQ==)。配合已启用的 SSDT-00-XOSI.aml(其中定义了 XOSI 方法的实现),Dell DSDT 中对 _OSI 的所有调用都会被重定向到 XOSI 方法。XOSI 方法会向 macOS 返回"这是一台 Windows 机器"的结果,从而解锁 Coffee Lake-H 在 Windows 下才有的完整硬件功能。
另有五个二进制补丁存在于配置中但被禁用,它们分别是:OSID→XSID(操作系统 ID 重命名)、TPD1 _CRS→XCRS(触摸板当前资源设置重命名)、GPRW→XPRW(通用唤醒事件重命名)、ECDV→EC(嵌入式控制器设备名重命名)、PNLF→XNLF(背光设备名重命名)。只在你有明确证据表明你的 DSDT 需要这些补丁时才逐一启用——盲目开启不需要的 ACPI 补丁可能导致系统不稳定。
DeviceProperties(设备属性注入)
# iGPU —— Intel UHD 630(Coffee Lake-H 平台集成显卡)
PciRoot(0x0)/Pci(0x2,0x0):
AAPL,ig-platform-id = 0x9B3E0000 # 必需!CFL 平台的帧缓冲 ID
device-id = 0x9B3E0000 # 伪装设备 ID:WhateverGreen 会将其
# 内部转换为 0x3E9B(macOS 原生支持的值)
framebuffer-patch-enable = 0x01000000 # 启用帧缓冲补丁
framebuffer-stolenmem = 0x00013001 # 19 MB 被盗内存(BIOS 从系统内存中
# 划给 iGPU 用的那一块,19MB 是 UHD 630 的最小值)
enable-backlight-registers-fix = 0x01000000 # 修复背光寄存器读写路径
model = "Intel CoffeeLake-H GT2 [UHD Graphics 630]"
# dGPU —— AMD Radeon Pro WX 7130(Ellesmere 核心)
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0):
model = "Ellesmere [Radeon Pro WX 7130 Mobile]"
force-online = 0x00000000 # 不强制在线(由 WhateverGreen 自动管理)
hda-gfx = "onboard-2" # HDMI/DP 音频输出绑定到独立显卡
# HDA 音频 —— Realtek ALC289
PciRoot(0x0)/Pci(0x1F,0x3):
layout-id = 87 # 首选 layout-id,备选值:7, 11, 15, 23, 87, 93, 99
model = "Realtek ALC289 Audio Codec"
# HDMI 音频 —— 从 dGPU 输出的数字音频
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1):
model = "Ellesmere HDMI Audio"
# 读卡器 —— Realtek RTS5260
PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0):
model = "RTS5260 PCI Express Card Reader"
Kernel → Quirks(内核怪异行为补丁)
AppleXcpmCfgLock = true # Coffee Lake-H 需要解锁 MSR 配置寄存器
DisableIoMapper = true # 禁用 IOMMU/VT-d 映射(大多数 CFL 笔记本无硬件 IOMMU)
DisableIoMapperMapping = true # 同上,更强力的禁用方式
DisableLinkeditJettison = true # macOS 11+ 需要此补丁(防止 kext 链接编辑器内存泄漏)
DisableRtcChecksum = true # 避免每次启动后 BIOS CMOS 设置被重置
PanicNoKextDump = true # 发生内核崩溃时不打印 kext 列表(缩短崩溃日志)
PowerTimeoutKernelPanic = true # 防止电源管理看门狗导致的无限重启循环
CustomSMBIOSGuid = true # 使用 SMBIOS 的 UUID 替代硬件 UUID(iMessage 必需)
UEFI → Quirks(UEFI 固件怪异行为补丁)
ReleaseUsbOwnership = true # 修复部分 Dell 固件版本上的 USB 控制器所有权问题
RequestBootVarRouting = true # OpenRuntime 需要写入 Boot#### NVRAM 变量
EnableVectorAcceleration = true # 在支持的 CPU 上启用 AVX2 向量指令加速
Misc(杂项配置)
Boot:
ShowPicker = true # 显示图形化启动选择界面
Timeout = 5 # 5 秒后自动选择默认启动项
PickerMode = External # 使用外部主题(不从 OpenCore 内置资源生成界面)
PickerVariant = Acidanthera/GoldenGate # 使用 GoldenGate 主题(深蓝色)
HideAuxiliary = true # 默认隐藏辅助条目(按空格键显示全部)
Debug:
Target = 67 # 0x43 = 同时输出到屏幕控制台和日志文件
AppleDebug = true # 启用 Apple 调试协议
ApplePanic = true # 崩溃时将 macOS 的 panic 日志存入 NVRAM
DisplayLevel = 2147483650 # 日志显示级别
Security:
Vault = Optional # 可选的安全存储(对日常使用无影响)
SecureBootModel = Default # 默认安全启动模型
BlacklistAppleUpdate = true # 屏蔽 macOS 固件更新(黑苹果用不上)
ExposeSensitiveData = 6 # 暴露敏感数据级别
ScanPolicy = 0 # 扫描所有可用启动设备,不做任何过滤
NVRAM → boot-args(你最常调整的启动参数)
boot-args = "-igfxblr igfxonln=1 swd_panic=1 debug=0x100 keepsyms=1 hbfx-patch-pci=all igfxagdc=0"
| 参数 | 作用 |
|---|---|
-igfxblr | 禁用 Intel 核显的背光寄存器恢复功能——防止睡眠唤醒后屏幕黑屏(这是 7740 上最常见的问题之一) |
igfxonln=1 | 强制 iGPU 帧缓冲保持在线状态 |
swd_panic=1 | 发生内核崩溃时将 panic 日志写入 NVRAM——下次启动时可以通过 SysReport 读取崩溃记录 |
debug=0x100 | 生成内核崩溃日志时禁用 kext 签名校验(否则已签名的 kext 在崩溃时不会被正确记录) |
keepsyms=1 | 保留内核符号表——崩溃时你能看到完整的函数名调用栈,而不是一串无意义的内存地址 |
hbfx-patch-pci=all | AppleHDA 的 HDMI 音频补丁——让 AMD Ellesmere 核心显卡的 HDMI/DP 数字音频输出正常工作 |
igfxagdc=0 | 禁用 iGPU 的 AGDC(Auto Gfx Dynamic Change)功能——这是 Intel 显卡的屏幕自刷新省电功能。Dell eDP 接口的某些固件版本和 AGDC 不兼容,开启后会导致间歇性黑屏或画面撕裂 |
csr-active-config = e7 03 00 00 → SIP 值 0x3e7(部分禁用:禁用了 kext 签名校验 + 文件系统保护 + 调试限制,但保留了 NVRAM 和密封系统卷的保护)。SIP 总共 32 位标志:0x3e7 = 0000 0000 0000 0000 0000 0011 1110 0111。如果你不需要加载未签名的 kext,可以改为 00 00 00 00(完全启用 SIP)来获得更安全的系统环境。
UI 主题
仓库中附带了三个 Acidanthera 主题,位于 EFI/Resources/Image/Acidanthera/ 目录下:Chardonnay(浅金色)、GoldenGate(深蓝色,当前默认启用)、Syrah(紫红色)。要切换主题,修改 Misc → Boot → PickerVariant 的值:
Misc → Boot → PickerVariant = Acidanthera/Syrah