datasone / grub-mod-setup_var

A modified grub allowing tweaking hidden BIOS settings.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

大佬,请教一个问题

nnkn opened this issue · comments

commented

我遇到一个奇怪的问题,每次重启,BIOS的“enable switchable graphics”选项就会重置为未勾选。

我想办法找出一个办法:用你的这个grub,使用命令setup_var_3 0x13F4 0x01 可以有效勾选。

下一步就是想在clover/oc引导中,或者说其它办法,目的是每次开机都运行一下这个命令,人为给选上。

这还有救么?

如果每次重启都会重置的话你是怎么验证变成勾选状态的......并且如果只是 BIOS 设置项状态变化的话实际硬件并不一定有所改变。
至于你提到的问题,可以找一下其他的 bootloader(例如 rEFInd)是否有先执行一个 EFI 应用再引导其他 bootloader(Clover/OpenCore)的功能。

commented

如果每次重启都会重置的话你是怎么验证变成勾选状态的......并且如果只是 BIOS 设置项状态变化的话实际硬件并不一定有所改变。
至于你提到的问题,可以找一下其他的 bootloader(例如 rEFInd)是否有先执行一个 EFI 应用再引导其他 bootloader(Clover/OpenCore)的功能。

  • 情况是这样的,clover/oc在引导黑苹果的时候,就会自动把BIOS里这个值给改成未勾选了,但是只要不引导黑苹果,就不会出现这症状。并不是所有的重启都重置的,所以我能验证。
  • 然而,尴尬的是,勾上之后,黑苹果系统才能正常识别集显,不勾上就不能识别,而且独显又驱动不了。
  • 我本来的计划是用grub执行一下命令再引导clover,不过一晚上都没成功。
  • 谢谢你的建议,我去试试!!
commented

摸索了好长时间,有一个思路了,现在我是这么实现的:clover界面下按s进入你的grub引导,然后命令改bios,然后重启,正常引导进去黑苹果。
很明显这很麻烦,特别是命令,很难记。
请问一下有没有执行脚本的办法?比如:我按s进去,输入命令执行脚本,自动重启之类的。
PS.我的硬盘是nvme的,貌似检测不到...

GRUB rescue shell 不是 scriptable 的(毕竟本身作用就是 rescue),所以你这个思路应该是不行的。分区可以用 UEFI Shell 里的 map 命令查看,EFI 分区应该肯定是能看到的。
关于你现在的问题,其实核心是特定的 OS 启动会更改 BIOS 设置,可能是 firmware 或者是 bootloader 的问题(不知道你有没有试过 Clover+Windows 启动),也有可能是 macOS 写入了不应写入的 NVRAM Region,具体问题我觉得你可以到对应的项目底下再提 issue。

commented

大佬你的分析很有道理,昨晚误打误撞发现了原因,是DSDT里的一个函数叫_SB.PCI0.GFX0.VINI的,把他改名了就OK了。感谢感谢!!🙏

commented

如果每次重启都会重置的话你是怎么验证变成勾选状态的......并且如果只是 BIOS 设置项状态变化的话实际硬件并不一定有所改变。
至于你提到的问题,可以找一下其他的 bootloader(例如 rEFInd)是否有先执行一个 EFI 应用再引导其他 bootloader(Clover/OpenCore)的功能。

借个位置问一下,我是rEFInd引导,xps9360升级bios后,每次重启都重新启用CFG lock,需要setup_var_3 0x58D 0x00, setup_var_3 0x4DE 0x00来关闭,请问大佬是否有办法解决? bios无法降级.

如果每次重启都会重置的话你是怎么验证变成勾选状态的......并且如果只是 BIOS 设置项状态变化的话实际硬件并不一定有所改变。
至于你提到的问题,可以找一下其他的 bootloader(例如 rEFInd)是否有先执行一个 EFI 应用再引导其他 bootloader(Clover/OpenCore)的功能。

借个位置问一下,我是rEFInd引导,xps9360升级bios后,每次重启都重新启用CFG lock,需要setup_var_3 0x58D 0x00, setup_var_3 0x4DE 0x00来关闭,请问大佬是否有办法解决? bios无法降级.

这种就很可能是 OEM 的限制,在每次开机时检测重置了这个设置。因为这个 grub shell 只负责修改存储中的设置值,如果 BIOS 代码层面上不读或者重置设置的话这里也没有什么办法。CFG Lock 这个设置本身也需要重启后才能生效,因此应该是无法做到通过 BIOS 设置修改解锁 0xE2 的目的了。