黑苹果 | OpenCore驱动z390主板原生NVRAM

不久前得知 OpenCore 搞定了 Intel 300 系列主板的 NVRAM,可是一直很懒没有行动。

之前 z390 模拟 NVRAM 各种麻烦就算了,成功了好使了一段时间,某天不知道为啥又不好使了,很烦人。

这下 z390 驱动了原生的 NVRAM 硬件,终于可以安心了。

以下教程理论适用于 300 系列的所有主板,但是我只有 z390,其他请自行测试

清理模拟 NVRAM

如果你之前模拟过 NVRAM,记得按以下步骤清理

清理 LogoutHook

  1. 终端输入以下命令来获取LogoutHook 的路径

    1
    sudo defaults read com.apple.loginwindow LogoutHook

    如果终端输出的不是一串路径,而是

    1
    The domain/default pair of (com.apple.loginwindow, LogoutHook) does not exist

    说明系统内没有安装过 LogoutHook,可以跳过 2、3 步骤

  2. 删除 LogoutHook.command 文件

    1
    sudo rm -rf $(sudo defaults read com.apple.loginwindow LogoutHook)
  3. 清空LogoutHook的触发设置

    1
    sudo defaults delete com.apple.loginwindow LogoutHook

修改 config

挂载 EFI 目录,打开/EFI/OC/config.plist,修改以下设置

Booter → Quirks → DisableVariableWrite NO
Misc → Security → AllowNvramReset YES
Misc → Security → ExposeSensitiveData 3
NVRAM → LegacyEnable NO
  • DisableVariableWrite:后续会使用 DSDT 补丁使 300 系列主板支持原生 NVRAM,所以需要设置为NO
  • AllowNvramReset:在开机引导项中加入重置 NVRAM 缓存功能的选项,为方便清空以前的 NVRAM 我们选择YES
  • ExposeSensitiveData:设置值为3,这样会将 OpenCore 的启动路径和版本储存进 NVRAM
  • LegacyEnable:因为不需要模拟 NVRAME 了,所以这里设置为NO

删除文件

如果有就删除

删除EFI分区下的nvram.plist

删除//EFI/OC/Drivers目录下的两个文件

  • VariableRuntimeDxe.efi
  • EmuVariableRuntimeDxe.efi

同时清理config.plistUEFI→Drivers对应的这两条目

重置 NVRAM

重启电脑,进入 OpenCore 然后选择引导界面的重置 NVRAM 选项「或者」按下快捷键 Command + Option + P + R

若引导丢失,使用 Windows 重新添加下即可

添加 DSDT 补丁

下载补丁文件

名称 地址
SSDT-PMC.dsl 点击下载
SSDT-PMC.aml 点击下载
1
SSDT-PMC.dsl`需要使用`MaciASL`编译,懒得话可以直接下载编译好的`SSDT-PMC.aml

打入补丁

将编译好的SSDT-PMC.aml文件放入/EFI/OC/ACPI文件夹

打开/EFI/OC/config.plist,在ACPI→Add里添加补丁文件

SSDT

设置启动磁盘

打开偏好设置/启动磁盘, 解锁后选择你的 macOS 分区然后 「锁上」

SSDT

重启,若*位于你选择的磁盘前则通过打补丁激活原生 NVRAM 操作成功

参考链接:

  • 精解 OpenCore