1 | 从计算机厂商或主板厂商官方网站等渠道下载获取对应主板型号的BIOS固件文件,也可以通过BIOS工具软件直接获取本机BIOS固件文件,一般保存格式为bin或rom,请注意不能是exe或com格式,因为工具软件set_Dump GUI不支持exe或com格式的文件。 |
2 | 在macOS下用工具软件set_Dump GUI打开BIOS固件文件,会在BIOS固件文件所在目录自动生成dump文件夹,进入该文件夹,找到一个名为dump.txt的文件,用文本编辑器或脚本编辑器打开它,可以看到BIOS的所有设置项及偏移地址、设置键值等BIOS固件信息全部都在里面(这就是我们需要的)。 |
3 | 文本编辑器或脚本编辑器>菜单>编辑>查找>打开查找对话栏,输入关键词CFG LOCK,检索定位到CFG LOCK设置项: |
3.1 | 准确无误地记下CFG LOK的十六进制偏移地址:VarStoreInfo(VarOffSet/VarName):紧跟后面的十六进制键值,格式为0x3E,3E为找到的实际值,此处仅为示例,不可照搬; |
3.2 | 准确无误地记下CFG LOCK所在母项的偏移地址:VarStore:紧跟后面的十六进制键值,格式为0x3,3为找到的实际键值,此处仅为示例,不可照搬,然后根据这个键值转到dump.txt的文件头部,定位找到这个键值0x3对应的CFG LOCK所属母项名称,一般命名为Setup(老机型)或CpuSetup(较新机型),下面操作命令以CpuSetup为例; |
3.3 | 你会看到,CFG LOCK默认的出厂键值为0x1(表示启用锁止状态), 接下来我们只需要将0x1修改为0x0,即可解锁关闭CFG LOCK。 |
4 | 预先将工具软件modGRUBShell.efi放入\EFI\OC\Tools\文件夹,并在config.plist>Misc杂项设置>Tools中添加启用modGRUBShell.efi,保存并重启计算机。 |
5 | 重启计算机到OC启动界面,按下空格键,调出所有隐藏的启动项,光标移动定位到modGRUBShell启动项后回车,进入命令行待机界面,接下来将是最关键的操作环节,请务必小心谨慎: |
5.1 | 输入查询CFG LOCK状况命令:setup_var CpuSetup 0x3E (回车执行),你会看到执行命令后返回0x1或0x01的键值,表示CFG LOCK此时处于开启锁止状态,接下来修改这个键值。如果返回的是0x0或0x00,则BIOS的CFG LOCK默认是关闭解锁状态,下面的操作命令就无须理会它了(不再需要)。 |
5.2 | 修改CFG LOCK键值命令:setup_var CpuSetup 0x3E 00 (回车执行),你会看到执行命令后键值由0x1或0x01变成了0x0或0x00,则表示CFG LOCK此时处于关闭开锁状态,注意:该修改后的键值此时还没有对计算机产生实际作用。 |
5.3 | 再次查询确认CFG LOCK的状态命令:setup_var CpuSetup 0x3E (回车执行),如果返回键值为0x0或0x00,则表示修改成功! |
5.4 | 输入命令:exit(回车执行),退出命令行待机界面并返回到OC启动界面,关机后再次重新开机,使上述修改键值对计算机产生实际作用,重启计算机并正常启动到macOS,打开config.plit,转到Kernel内核设置页面, 在Quirks中取消勾选AppleCpuPmCfgLock和AppleXcpmCfgLock,因为我们不再需要它们。 |
5.5 | 注意:命令中的大小写字符必须严格区分,0x3E中的x为小写字母X,0x表示十六进制。如果重置了BIOS或升级了BIOS,需要按此方法重新修改设置CFG LOCK键值。 |
5.6 | 修改BIOS有风险,操作需谨慎!!!万一失误操作后不能开机,请断开电源,扣下主板电池使CMOS芯片失电自动重置后再装回电池,此时BIOS可恢复到出厂默认状态。 |
6 | CFG LOCK关闭解锁后,板载NVRAM非易失性寄存器已处于可读写开放状态,CPU原生电源管理参数、BootCamp启动转换助理、NVRAM引导参数、背光、亮度、蓝牙、WiFi等等OpenCore和macOS正常工作所依赖的参数就可以向板载NVRAM非易失性寄存器中自动读写。 |
7 | 另外,还需要同时启用ACPI补丁:SSDT-PMC.aml或SSDT-PMCR.aml,因为PC机的ACPI中没有将FW芯片声明为MMIO,因此XNU会忽略UEFI内存映射所声明的MMIO区域,所以该ACPI补丁带回了NVRAM支持,使NVRAM非易失性寄存器工作正常。需要注意的是,官方提供的这个SSDT中定义的PMCR的设备所在路径是在\_SB.PCI0.LPCB下,与你本机DSDT中定义的设备路径须保持一致, 例如:如果你的设备路径为\_SB.PC00.LPCB,则PMCR所在设备路径也须修改为\_SB.PC00.LPCB。 |
8 | 以上方法供大家参考,交流学习,不对之处请给予指正!两个工具软件一并传上来,有需要的自取! |