故障排查

睡眠唤醒后黑屏

启动参数(boot-args)中已经专门为这个问题加入了 -igfxblr 参数。如果睡眠后屏幕背光仍然无法恢复:

  1. 在 OpenCore 启动选择界面按空格键显示隐藏选项,选择 verbose 模式(会临时在启动参数中追加 -v)来查看详细的启动日志
  2. 通过苹果菜单 → 睡眠让电脑进入睡眠,然后按键盘任意键尝试唤醒
  3. 如果屏幕保持黑屏但背光实际上是亮着的(你能看到屏幕有微弱的光):在终端中执行 sudo pmset -a displaysleep 0,这会将显示器睡眠设为永不
  4. 如果屏幕完全黑暗、没有任何背光:按住电源键强制关机,然后重新开机。macOS 在启动时会检测到上次是非正常关机,上一次会话的内核崩溃日志(kernel panic log)会保存在 /Library/Logs/DiagnosticReports/ 目录中——打开最近的一个 .panic 文件来查看崩溃原因

没有声音

按照以下步骤逐项排查:

  • 确认 config.plist 的 DeviceProperties 中 PciRoot(0x0)/Pci(0x1F,0x3) 路径下的 layout-id 值为 87
  • 确认 AppleALC.kext 文件存在于 EFI/Kexts/ 目录中,且在 config.plist 的 Kernel → Add 中 Enabled = true
  • 确认 AppleHDA 没有被屏蔽——检查 Kernel → Block 部分,仓库默认只屏蔽了 AppleTyMCEDriver(一个和 Xeon CPU 相关的驱动,在 7740 上不需要),没有屏蔽 AppleHDA
  • 如果 layout-id 87 仍然没有声音,按照以下顺序逐一尝试备选 layout-id:87 → 11 → 15 → 23 → 99 → 7 → 93。每次修改 layout-id 后保存 config.plist 并重启测试
  • 打开"系统设置 → 声音 → 输出",确认选中的输出设备是"内置扬声器"而不是"耳机端口"或其他设备。有时候 macOS 会自动切换到耳机输出——即使你没有插耳机

WiFi 能用但蓝牙不工作

确认 BrcmPatchRAM3.kextBlueToolFixup.kext 都已经在 config.plist 的 Kernel → Add 中启用,并且加载顺序正确——BlueToolFixup 必须排在 BrcmPatchRAM3 之前。OpenCore 是按照 Kernel → Add 数组中的顺序来加载 kext 的,不是按字母顺序。本仓库提供的 config.plist 中这两个 kext 的顺序已经正确排列好了;如果你自己重新添加过 kext,请务必保持 BlueToolFixup 在前、BrcmPatchRAM3 在后的顺序。此外,还需要确认 Intel 的蓝牙驱动(IntelBluetoothFirmware、IntelBluetoothInjector、IntelBTPatcher)已被禁用——同时启用 Broadcom 和 Intel 两套蓝牙驱动会导致蓝牙子系统崩溃。

触摸板抖动或丢事件

Dell Precision 7740 的 Alps I2C 触摸板需要六个 kext 全部启用才能正常工作。它们必须作为一个整体一起加载——如果只启用其中几个而禁用其他的,剩下的驱动可能会加载成功但 HID 协议栈在枚举设备时无法完成初始化。这六个 kext 是:VoodooI2C.kext(I2C 总线核心驱动)、VoodooI2CHID.kext(HID over I2C 协议层)、VoodooGPIO.kext(GPIO 中断处理)、VoodooI2CServices.kext(I2C 设备服务层)、VoodooInput.kext(输入事件路由)、AlpsHID.kext(Alps 触摸板专有协议驱动)。本仓库的 config.plist 默认六者全部启用且按此顺序排列。如果触摸板仍然抖动或频繁丢事件,可以尝试在 VoodooI2C 的内核启动参数中调整 GPIO 中断引脚号——不同批次的 7740 主板的 GPIO 引脚分配可能有差异。

重启后无限循环回到 OpenCore 选择界面

  1. 在 OpenCore 启动选择界面中,按一下空格键来显示被隐藏的辅助启动项
  2. 在辅助项中选择 Reset NVRAM——这会清除 OpenRuntime 在 NVRAM 中存储的所有变量(包括上次启动失败的错误记录和错误的启动项缓存)
  3. Reset NVRAM 执行完毕后系统会自动重启。再次进入 OpenCore 界面,选择你的 macOS 启动项正常启动
  4. 如果 Reset NVRAM 之后仍然无限循环重启,在 OpenCore 界面中按 V 键切换到 verbose 模式,然后启动 macOS——屏幕上会显示详细的内核加载日志,你可以在崩溃发生时看到是哪一条 kext 或者哪一步导致了崩溃

SD 卡读卡器(内置 SD 卡槽)不识别插入的卡

本仓库附带了 RealtekCardReader.kextRealtekCardReaderFriend.kext 两个文件,但在提供的 config.plist 中它们默认被禁用。原因是 Dell Precision 7740 的 RTS5260 读卡器在某些 BIOS 修订版本上存在已知的时序问题——启用后可能导致内核崩溃(kernel panic)。如果你需要启用 SD 读卡器:

  1. 打开 config.plist,找到 Kernel → Add 部分
  2. 找到 RealtekCardReader.kext 的条目,将 Enabledfalse 改为 true
  3. 同样将 RealtekCardReaderFriend.kextEnabled 改为 true
  4. 保存 config.plist,重启电脑,插入一张 SD 卡测试

如果在启用读卡器后你遇到了内核崩溃(启动时卡住或启动后插入 SD 卡时崩溃),说明你的 7740 主板属于受影响的批次——将这两个 kext 重新禁用即可。如果你不常使用 SD 卡,建议保持禁用状态以避免不必要的不稳定性。

Apple ID 服务(iMessage / FaceTime)无法激活

iMessage 和 FaceTime 的激活依赖于你的 SMBIOS 序列号看起来像一台合法的真 Mac。以下是标准的排查步骤:

  1. 确认你的 SMBIOS 三元组(SystemSerialNumber / MLB / SystemUUID)是使用 GenSMBIOS 生成的有效序列号,而不是全零的占位值。访问 checkcoverage.apple.com,输入你的 SystemSerialNumber——页面应该返回"不对应任何 Apple 产品"(而不是显示一台真 Mac 的保修信息)。如果返回的是真 Mac 的信息,用 GenSMBIOS 重新生成一组
  2. 确认 config.plist 中的 ROM 字段填入了你真实的网卡 MAC 地址(12 位十六进制,无冒号),而不是默认的占位值 112233445566 或其他随便填的假 MAC 地址。Apple 的服务器会校验 ROM 值是否合理
  3. 在 config.plist 的 NVRAM → Add 路径下,确认 MLB 字节串的值和 PlatformInfo → Generic → MLB 中的值完全一致——如果这两个地方的 MLB 不匹配,iMessage 的激活令牌签名会失败
  4. 如果你是从另一台 Mac 或黑苹果上迁移过来的系统,打开"钥匙串访问"(Keychain Access),搜索并删除所有包含"iMessage"或"FaceTime"的钥匙串条目,然后重新尝试登录
  5. 对于较旧版本的 macOS(Catalina 及以前),还需要删除网络配置文件:执行 sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist,然后重启。这个文件会在重启后被系统自动重新生成——新生成的文件会包含正确的网卡 MAC 地址(和你在 ROM 字段中填写的值一致),修复网络接口 UUID 和 SMBIOS 之间的不匹配