利用CFGLOCK.efi解锁MSR 0xE2

当我们利用OpenCore引导器安装macOS的时候,如果卡在了EndRandomSeed或者#LOG:EXITBS:START,那么大概率就是BIOS未禁用CFG LOCK锁导致的错误。

什么是CFG LOCK

CFG-Lock是BIOS中的一项设置,允许写入特定的寄存器(在本例中为MSR 0xE2)。默认情况下,大多数主板会锁定此变量,其中许多厂商甚至将选项直接隐藏在GUI中。而且,我们关心它的原因是macOS实际上要写入此变量,而不仅仅是macOS的一部分。包括内核和AppleIntelPowerManagement。它定义了CPU的电源状态(C-States),这就是为什么它对于macOS必不可少的原因。如果没有写入MSR 0xE2的能力,则将丢失所有或大部分CPU电源管理,并且系统无法启动

Clover中使用了2个补丁:KernelPM(针于AppleIntelPowerManagement.kext)和KernelXCPM(针于内核)。

OpenCore中,使用了其他名称:AppleCpuPmCfgLock(针对AppleIntelPowerManagement.kext)和AppleXcpmCfgLock(针对内核)。这些修补程序解决了该问题,但是注册表仍然是只读的。为了确保本机CPU电源管理,CFG锁定位必须设置为0x0

为此,必须修改固件以支持写入MSR 0xE2。与CloverOpenCore修补程序相比,此方法更为可取,它可产生更大的系统稳定性,并且CPU电源管理与真实Mac更加相似。对于大多数不具备较高知识水平,需要专门工具甚至经过修改的grub的用户而言,通常为该任务建议的方法过于复杂。

CFGLock.efi的正确插入姿势

用户@Brumbaer 有一个名为CFGLock.efi的工具(请参阅此帖)。这是一个EFI应用程序,它必须被安装在EFI/OC/TOOLS目录下,同时它应该与OC软件包中包括的另一个工具VerifyEsrE2.efi一起使用,该工具报告CFG Lock的当前状态(锁定(locked)/解锁(unlocked))。

运行CFGLock.efi时,它会显示信息(找到CFG变量,它所在的varstore,当前读数并请求用户干预以将其从0x1更改为0x0,反之亦然)。然后,您必须重新启动。使用VerifyMsrE2.efi,我们可以检查更改是否成功。

可以通过直接在OC菜单中选择它们来运行这两个EFI应用程序,但是也可以通过安装OpenShell.efi工具来运行此Shell并从那里运行它们。OC和其他地方提供了有关处理OpenShell.efi的信息。更多的UEFI Shell的用法

  1. 获取CFGLOCK.efi

    1
    2
    # 下载CFGLock.efi到当前目录下
    $ curl https://raw.sevencdn.com/daliansky/Hackintosh/master/Tools/CFGLOCK/CFGLock.efi -o CFGLock.efi
  2. CFGLock.efi复制到EFI/OC/TOOLS目录下

  3. 在配置文件config.plist中引入CFGLock.efiVerifyEsrE2.efi

    0OC-Configs-Misc-Tools

  4. 重启,在OpenCore引导界面按空格键选择CFGLock,回车

    2CFGLOCK.efi

  5. OpenCore会自动载入CFGLock.efi并执行,它会自动找到CFG Lock的参数,本例中为:Offset: 0043,值为1,输入y回车,它会将值修改为0

    3CFG_Unlock

  6. 重启后,选择VerifyMsrE2,查看CFG LOCK的状态

    4Verify_MSR_E2

  7. 最后一行显示This firmware has UNLOCKED MSR 0xE2 register!,即为解锁状态

    5Unlocked_MSR_0xE2_Check

  8. 请于配置文件config.plist中取消勾选AppleCpuCfgLockAppleXcpmCfgLock

    6OC-Configs-Kernel-CFG

  9. 收工

注意事项

在执行过Reset NVRAM动作后可能需要重新执行上述操作,或通过VerifyMsrE2,查看CFG LOCK的状态

感谢名单

参考及引用:

黑果小兵 wechat
微信扫一扫,订阅/直达【黑果小兵的部落阁】
更新日期更新日期2021-03-092021-03-09
-------------本文结束感谢您的阅读-------------
如果文章对您有帮助,就请站长喝杯咖啡吧 ´◡`
0%