Dortania 04-安装后处理

安装后处理

macOS 安装完成后,还需要进行一系列配置来完善系统功能。本章节涵盖音频、USB映射、电源管理、睡眠、iServices、DRM、安全等关键配置。


目录


1. 修复音频

使用 AppleALC 修复音频

前提条件:已安装 Lilu 和 AppleALC,确保 VoodooHDA 不存在(会与 AppleALC 冲突)。

验证 kext 是否加载:

kextstat | grep -E "Lilu|AppleALC|AppleHDA"

查找音频布局 ID

  1. 确定您的音频编解码器:

    • 检查主板规格页和手册
    • Windows 设备管理器 / AIDA64 / HWInfo64
    • Linux: cat /proc/asound/card0/codec* | grep Codec
  2. AppleALC 支持的编解码器 中查找您的编解码器

  1. 获取支持的布局 ID 列表

注意:如果音频编解码器是 ALC 3XXX,这可能是错误的名称,请研究实际的控制器。例如 ALC3601 实际是 ALC 671。

测试布局 ID

使用 boot-arg alcid=xxx 测试,一次只尝试一个布局 ID

alcid=11

如果布局 ID 不起作用,尝试创建 SSDT-HPET 修复

使布局 ID 永久化

AppleALC 确定布局 ID 的优先级:

  1. alcid=xxx boot-arg(最高优先级,用于调试)
  2. DeviceProperties 中的 alc-layout-id(仅 Apple 硬件)
  3. DeviceProperties 中的 layout-id(推荐,适用于所有硬件)

设置方法

  1. 使用 gfxutil 查找音频控制器 PCI 路径:
gfxutil -f HDEF
  1. 在 config.plist → DeviceProperties → Add 下添加 PciRoot 和子项 layout-id

  2. 值使用十六进制数据格式(4字节),例如 alcid=110B 00 00 00

  3. 删除 boot-arg 中的 alcid,因为它始终具有最高优先级

音频常见问题

AMD 上没有麦克风:目前没有补丁支持麦克风输入。最佳解决方案是购买 USB DAC/麦克风。

Clover 相同布局 ID 在 OpenCore 不起作用:可能是 IRQ 冲突,使用 SSDTTimeFixHPET 选项。

AppleALC 工作不一致:在 boot-args 中添加延迟 alcdelay=1000(最大 3000 毫秒)。

Windows 重启后音频不工作:添加 alctcsel=1 到 boot-args。


2. USB映射

为什么要进行 USB 映射

  • macOS 非常不擅长猜测端口类型
  • 某些端口可能低于额定速度运行
  • 某些端口可能完全无法工作
  • 蓝牙不工作
  • Handoff 等服务可能不正常
  • 睡眠可能中断
  • 热插拔损坏
  • XhciPortLimit 可能导致数据损坏

USB 基础知识

  • USB 3.0 端口实际上是 macOS 的 2 个端口:USB 2.0 USB 3.0
  • USB 3.0 接口底部 4 个引脚用于 USB 2.0,上面额外的 5 个引脚用于 USB 3.0

macOS 15 端口限制

macOS 对每个 USB 控制器有 15 个端口的严格限制(Z170 及更新芯片组有 26 个端口声明)。

重要XhciPortLimit 在 macOS 11.3+ 中已损坏,会导致启动循环!请务必进行正确的 USB 映射并禁用 XhciPortLimit

USB 映射方法

推荐工具USBToolBox(支持 Windows 和 macOS)

Intel USB 映射

  • 使用 USBToolBox 在 Windows 或 macOS 中映射
  • 或手动创建 USBMap.kext

AMD USB 映射

  • AMD 系统的 USB 映射与 Intel 类似
  • 某些 AMD 主板需要在 DSDT 中手动添加端口定义

USB 映射步骤

  1. 映射前准备

    • 断开所有不必要的 USB 设备
    • 准备一个 USB 2.0 和 USB 3.0 设备用于测试
  2. 使用 USBToolBox 映射

    • 在 Windows 中运行 USBToolBox
    • 逐个测试每个 USB 端口
    • 标记端口类型(USB 2.0/3.0/内部/Type-C 等)
    • 生成 USBToolBox.kext
  3. 安装映射

    • 将生成的 kext 放入 EFI/OC/Kexts
    • 在 config.plist → Kernel → Add 中添加
    • 禁用 XhciPortLimit

USB 常见问题

即时唤醒:使用 GPRW/UPRW/LANC 补丁防止 USB 设备触发即时唤醒。

键盘唤醒问题:某些键盘可能导致系统从睡眠中意外唤醒。

USB 电源问题:确保 USB 端口正确映射为内部或外部类型。

关机/重启问题:可能与 USB 控制器有关,检查 USB 映射和 ACPI 设置。


3. 修复电源管理

启用 X86PlatformPlugin

XCPM 仅在 Haswell 及更新版本上支持。

验证 XCPM 是否加载:

  1. 打开 IORegistryExplorer
  2. 搜索 AppleACPICPU
  3. 检查是否附加了 X86PlatformPlugin

如果缺少 XCPM

  • 确保 SSDT-PLUG.aml 存在并启用
  • SSDT-PLUG 设置为 CPU 的第一个线程
  • macOS 12.3 及更高版本不需要 SSDT-PLUG

Haswell-E 和 Broadwell-E:XCPM 本身不支持,需要 CPU ID 欺骗:

  • Haswell-E: Cpuid1Data C3060300 00000000 00000000 00000000
  • Broadwell-E: Cpuid1Data D4060300 00000000 00000000 00000000

使用 CPUFriend 微调

当原生电源管理数据不适合时,可以使用 CPUFriend 注入修改后的数据。

需要

LFM(低频模式):CPU 空闲时的最低频率

代数 LFM 值 等效频率
Broadwell+ 笔记本 08 800MHz
Broadwell+ 桌面 0A 1000MHz
Haswell/Broadwell HEDT 0D 1300MHz
Skylake+ HEDT 0C 1200MHz

EPP(能源性能偏好)

EPP 速度
0x00-0x3F 最大性能
0x40-0x7F 平衡性能
0x80-0xBF 平衡力量
0xC0-0xFF 最大省电

只有 Skylake 和更新的 SMBIOS 正式支持 EPP。

Sandy 和 Ivy Bridge 电源管理

消费者 Sandy/Ivy Bridge 不支持 XCPM,需要使用 ssdtPRGen 创建自定义电源管理表。

步骤:

  1. 在 config.plist → ACPI → Delete 中临时删除 CpuPm 和 Cpu0Ist 表
  2. 重启并运行 ssdtPRGen
  3. 将生成的 SSDT 重命名为 SSDT-PM.aml 放入 EFI/OC/ACPI
  4. 禁用之前的 ACPI → Delete 条目

AMD CPU 电源管理

使用 AMDRyzenCPUPowerManagement 为 Ryzen CPU 添加电源管理。

⚠️ 警告:此 kext 已知不稳定,可能导致随机内核恐慌或启动问题。


4. 修复睡眠

准备工作

在 macOS 中

sudo pmset autopoweroff 0
sudo pmset powernap 0
sudo pmset standby 0
sudo pmset proximitywake 0
sudo pmset tcpkeepalive 0

在 config.plist 中

  • 添加 keepsyms=1 — 保留内核恐慌符号
  • 添加 swd_panic=1 — 避免睡眠重启问题

在 BIOS 中

  • 禁用:局域网唤醒、TPM、USB 唤醒
  • 启用:蓝牙唤醒(如果使用蓝牙设备唤醒)

主要罪魁祸首

USB 问题(最常见原因)

  • 正确的 USB 映射是修复睡眠的关键
  • 禁用 XhciPortLimit
  • 修复 USB 电源
  • GPRW/UPRW/LANC 即时唤醒补丁

GPU 问题

  • 不支持的 GPU 需要禁用或欺骗为通用 PCIe 设备
  • Coffee Lake+ iGPU 唤醒问题:添加 igfxonln=1
  • iGPU 低功耗状态不稳定:添加 forceRenderStandby=0
  • Ice Lake 笔记本:使用 -noDC9-nodisplaysleepDC6
  • 4K 显示器 AMD dGPU:在 DeviceProperties 中设置 agdc 属性

Thunderbolt 问题

  • 如果需要 Thunderbolt 和睡眠同时工作,只有两条路:
    • 在 BIOS 中禁用 Thunderbolt
    • 尝试修补 Thunderbolt 3

网卡问题

  • 在 BIOS 中禁用 WakeOnLAN
  • 在 macOS 中禁用"网络访问唤醒"

NVMe 问题

  • 确保 NVMe 固件最新
  • 使用 NVMeFix.kext
  • 避免有问题的驱动器(三星 PM981/PM991、美光 2200S)
  • 有问题的驱动器可通过 SSDT 禁用

CPU 电源管理问题

  • 确保电源管理正常工作
  • 使用正确的 SMBIOS
  • AMD 使用 AMDRyzenCPUPowerManagement

其他罪魁祸首

问题 解决方案
显示器(笔记本盖检测) 修复 SSDT-PNLF,禁用/重新启用 lidwake
NVRAM 验证 NVRAM 是否正常工作
RTC 使用 SSDT-AWAC 禁用 AWAC,阻止 macOS 写入问题 RTC 区域
IRQ 冲突 使用 SSDTTime 的 FixHPET
音频 禁用未使用的音频设备
SMBus 创建 SSDT-SMBS-MCHC
TSC 使用 CpuTscSync/VoodooTSCSync/TSCAdjustReset

5. 修复 iServices

需要的信息

  • MLB(主板序列号)
  • ROM(MAC 地址)
  • SystemProductName(SMBIOS 型号)
  • SystemSerialNumber(系统序列号)
  • SystemUUID

使用 GenSMBIOS

  1. 下载 GenSMBIOS
  2. 选择选项 1 下载 MacSerial
  3. 选择选项 3 生成序列号
  4. 提示:iMacPro1,1 10 将打印 10 个序列

设置步骤

  1. 生成序列号:使用 GenSMBIOS 或 macserial
  2. 选择 MAC 地址:使用 Apple OUI 前缀(如 00:16:CB
  3. 推导 ROM:MAC 地址小写,去掉冒号(00:16:CB:00:11:220016cb001122
  4. 生成 UUID:终端运行 uuidgen
  5. 验证序列号:在 Apple Check Coverage 验证

序列号验证结果

无法检查覆盖范围 有效购买日期 购买日期未验证
结果 含义 建议
无法检查覆盖范围 ✅ 最佳 — 序列号无效 推荐
有效购买日期 ⚠️ 与真实 Mac 冲突 不推荐
购买日期未验证 ⚠️ 可能与真实 Mac 冲突 可用但不推荐长期使用

修复 en0

  1. 使用 Hackintool → 系统 → 外围设备
  2. 在"网络接口"下查找 en0,检查是否标记为"内置"
  3. 如果没有 en0:重置网络设置
    sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
    
  4. 如果 en0 不是内置:在 DeviceProperties 中添加 built-in 属性(Data 类型,值为 01

验证 NVRAM

NVRAM 对 iServices 至关重要,iMessage 密钥存储在 NVRAM 中。请验证 NVRAM 是否正常工作。

清除旧尝试

  1. 清除 NVRAM(在启动选择器中)
  2. 清除钥匙串中的 iService 条目
  3. 考虑创建新的 AppleID

客户代码错误

如果您的 AppleID 被列入黑名单,必须致电 Apple 支持 解除。添加支付卡可以帮助使帐户合法化。


6. 修复 DRM

DRM 问题通常表现为 Netflix 等流媒体服务无法播放。

DRM 支持情况

GPU 支持的 DRM 类型
Intel iGPU iTunes 电影预览、Netflix、Amazon Prime
AMD Polaris+ 完整 DRM 支持
NVIDIA Kepler 有限支持(仅 High Sierra)

修复方法

  • 确保 WhateverGreen 正确加载
  • 检查 shikigva=80 boot-arg
  • 对于需要 dGPU 解码的系统,可能需要额外的 WhateverGreen 参数

7. 将 OpenCore 安装到硬盘

安装完成后,您可能希望从硬盘直接启动而不需要 USB:

  1. 挂载硬盘的 EFI 分区
  2. 将 USB EFI 分区中的 EFI 文件夹复制到硬盘 EFI 分区
  3. 在 BIOS 中设置硬盘为首选启动设备
  4. 设置 LauncherOption 以确保 Windows 不会覆盖 OpenCore

8. 更新 OpenCore 和 macOS

更新 OpenCore

  1. 下载最新版 OpenCorePkg
  2. 替换 EFI/OC 中的文件(保留 config.plist 和自定义文件)
  3. 更新 kext 到最新版本
  4. 检查 config.plist 是否需要新增条目

更新 macOS

  1. 备份 EFI
  2. 确保所有 kext 和 OpenCore 都是最新版本
  3. 通过系统偏好设置更新
  4. 如果使用非原生 SMBIOS,更新后可能需要调整

⚠️ 切勿在更新前禁用 SIP 或删除关键 kext。


9. 安全设置

Apple Secure Boot

OpenCore 支持真正的 Apple Secure Boot,通过 Misc -> Security -> SecureBootModel 设置:

  • Default — 默认安全启动模型
  • Disabled — 禁用安全启动
  • 具体模型如 iMacPro1,1

FileVault 2

OpenCore 内置 FileVault 2 支持,可在"系统偏好设置 → 安全性与隐私"中启用。

Vault

Vaulting 允许创建 EFI 快照以防止不必要的修改:

  1. 创建 vault.plist
  2. 创建 vault.sig
  3. 在 config.plist 中设置 Misc -> Security -> VaultSecure

扫描策略

通过 ScanPolicy 控制启动选择器中显示的设备类型。

密码设置

可以为 OpenCore 启动选择器设置密码保护。


10. 笔记本专用设置

修复电池读数

  1. 使用 SMCBatteryManager.kext
  2. 如果不工作,使用 ECEnabler 修复电池状态读取
  3. 某些笔记本需要自定义 SSDT-Battery

修复亮度键

使用 BrightnessKeys 自动修复亮度键。

触控板设置

根据触控板连接类型选择正确的 kext:

  • PS2 → VoodooPS2
  • I2C → VoodooI2C + 对应插件
  • SMBus → VoodooRMI 或 VoodooSMBus

11. 美化设置

添加 OpenCore GUI

  1. 在 Drivers 文件夹中添加 OpenCanopy.efi
  2. 下载 OcBinaryData 中的资源
  3. 将 Image 和 Label 文件夹放入 EFI/OC/Resources
  4. 在 config.plist 中设置 Misc -> Boot -> PickerModeBuiltin

修复分辨率

设置 Misc -> Boot -> PickerAttributesUEFI -> Output -> Resolution

禁用啰嗦模式

从 boot-args 中移除 -v,即可看到 Apple 徽标启动。

修复 MacPro7,1 内存错误

使用 RestrictEvents kext 和 rpci=0x3000 boot-arg。


12. 多重启动

设置 LauncherOption

确保 Windows 不会从系统中删除 OpenCore 的启动条目:

  • 在 config.plist → Misc -> Security 中设置 LauncherOptionFull

BootCamp 设置

OpenCore 支持 BootCamp 风格的启动切换,通过 NVRAM 变量实现。

注意事项


13. 其他修复

修复 CFG 锁

如果无法在 BIOS 中禁用 CFG Lock(MSR 0xE2 寄存器锁定):

  1. 最佳方案:在 BIOS 中直接禁用
  2. 替代方案:使用 AppleCpuPmCfgLockAppleXcpmCfgLock Quirks
  3. 高级方案:使用 CFGLock.efi 在 UEFI 中修改

修复 RTC/CMOS 重置

如果关机或重启后出现"BIOS 在安全模式下重新启动"错误:

  1. 启用 DisableRtcChecksum 防止写入主校验和
  2. 使用 UEFI -> ProtocolOverride -> AppleRtcRam + rtc-blacklist
  3. 使用 RTCMemoryFixup + rtcfx_exclude=

模拟 NVRAM

对于不支持原生 NVRAM 的主板:

  1. 验证 NVRAM:在终端运行 sudo nvram -c 然后重启,检查是否清除
  2. 如果 NVRAM 不工作,使用 SSDT-PMC(Z390 等)
  3. 对于 HEDT/服务器主板,可能需要模拟 NVRAM
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇