黑苹果 | OpenCore驱动z390主板原生NVRAM
不久前得知 OpenCore 搞定了 Intel 300 系列主板的 NVRAM,可是一直很懒没有行动。
之前 z390 模拟 NVRAM 各种麻烦就算了,成功了好使了一段时间,某天不知道为啥又不好使了,很烦人。
这下 z390 驱动了原生的 NVRAM 硬件,终于可以安心了。
以下教程理论适用于 300 系列的所有主板,但是我只有 z390,其他请自行测试
清理模拟 NVRAM
如果你之前模拟过 NVRAM,记得按以下步骤清理
清理 LogoutHook
- 
终端输入以下命令来获取 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 步骤 
- 
删除 LogoutHook.command文件1 sudo rm -rf $(sudo defaults read com.apple.loginwindow LogoutHook) 
- 
清空 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.plist中UEFI→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里添加补丁文件

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

重启,若*位于你选择的磁盘前则通过打补丁激活原生 NVRAM 操作成功
参考链接:
- 精解 OpenCore