一、检查ACPI配置

1. 修复关机相关ACPI方法

  • 使用定制SSDT(如 `SSDT-PTSWAK` 或 `SSDT-FixShutdown`)修复 `_PTS` 和 `_WAK` 方法。
  • 确保禁用原生电源管理(如删除 `SSDT-PLUG` 或调整 `config.plist` 中的 `DummyPowerManagement`)。
  • 2. 检查RTC和EC控制器

  • 应用 `SSDT-RTC0` 或 `SSDT-EC` 补丁,避免因RTC/EC冲突导致关机异常。
  • 二、调整电源管理驱动

    1. 启用关机修复补丁

  • 在引导配置文件(如OpenCore的 `config.plist`)中启用 `FixShutdown` 补丁(位于 `ACPI -> Quirks`)。
  • 对于Clover用户,添加 `FixShutdown-0004` 补丁。
  • 2. 更新或替换关键驱动

  • 使用最新版 [VirtualSMC] 和 [Lilu]。
  • 如果使用FakeSMC,尝试切换为VirtualSMC。
  • 三、NVRAM与BIOS设置

    1. 确保NVRAM正常

  • OpenCore用户需启用 `NVRAM -> WriteFlash`,并检查 `EmuVariableUefi.efi` 是否加载。
  • 重置NVRAM:重启时按 `空格键` 进入引导菜单,选择 `Reset NVRAM`。
  • 2. 调整BIOS选项

  • 禁用 `Fast Boot`、`Secure Boot`。
  • 启用 `EHCI Hand-off` 和 `Legacy USB Support`。
  • 关闭 `Wake on LAN`、`ErP Ready` 等节能选项。
  • 四、USB定制与电源属性

    1. 完善USB映射

  • 使用 [Hackintool] 定制USB端口,移除多余端口(不超过15个)。
  • 禁用未使用的USB控制器(如XHCI、EHCx)。
  • 2. 电源属性注入

  • 在 `config.plist` 的 `PlatformInfo -> Generic` 中设置 `SystemProductName` 为白苹果型号(如 `iMac19,1`)。
  • 注入正确的电源管理属性(如 `AppleCpuPmCfgLock` 和 `AppleXcpmCfgLock`)。
  • 五、内核参数与日志排查

    1. 添加启动参数

  • 在引导参数中加入 `-v` 进入啰嗦模式,观察关机时的错误日志。
  • 尝试添加 `dart=0`、`darkwake=0` 或 `debug=0x100` 排除问题。
  • 2. 检查系统日志

  • 终端执行 `log show --last shutdown` 查看关机时的错误信息。
  • 关注与 `powerd`、`shutdown` 相关的日志条目。
  • 六、其他潜在解决方案

    1. 禁用休眠模式

  • 终端执行 `sudo pmset autopoweroff 0` 和 `sudo pmset standby 0`。
  • 删除休眠文件:`sudo rm /var/vm/sleepimage`。
  • 2. 主板特定修复

  • 技嘉主板:尝试在BIOS中禁用 `VT-d` 或 `CFG Lock`。
  • 华硕主板:启用 `IOAPIC 24-119 Entries`。
  • 3. 更新OpenCore/Clover

  • 使用最新版引导工具,确保兼容性。
  • 七、验证修复效果

    完成调整后,执行以下步骤验证:

    1. 重启进入系统,运行 `sudo halt` 测试关机。

    2. 如果仍重启,尝试拔掉所有外设(如USB设备、扩展卡)后测试。

    3. 逐步回退修改项,定位冲突源。

    通过以上步骤,大部分关机异常问题可被解决。如果仍存在问题,建议在 [InsanelyMac] 或 [tonymacx86] 论坛提供详细硬件配置和日志以获取进一步帮助。