利用CFGLOCK.efi解锁MSR 0xE2

文章目录[隐藏]

利用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的正确插入姿势

有一个名为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的信息。更多的

  1. 获取CFGLOCK.efi
  2. CFGLock.efi复制到EFI/OC/TOOLS目录下
  3. 在配置文件config.plist中引入CFGLock.efiVerifyEsrE2.efi

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

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

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

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

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

  9. 收工

注意事项

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值