【问题标题】:Access BIOS/UEFI menu setting via uefi shell通过 uefi shell 访问 BIOS/UEFI 菜单设置
【发布时间】:2019-03-16 08:00:46
【问题描述】:

我想通过 uefi shell 脚本读取/更改一些 BIOS/UEFI 菜单设置。

例如,我想更改“CSM 支持”设置(启用/禁用)。

有什么办法吗?

【问题讨论】:

    标签: bios uefi


    【解决方案1】:

    在更改“CSM 支持”设置之前和之后检查 uefi 变量(不是 shell 变量),也许此设置存储在 uefi 变量之一中,然后您可以从 shell 或简单的 shell 应用程序编辑此变量.

    【讨论】:

    • 嗨,谢谢。我已经检查了“dmpstore”命令输出。但是因为我没有找到任何名字所以我放弃了。但是您通过更改设置来仔细检查并比较 dmpstore 输出的建议使我找到了相应的部分。但是有一个问题:我只能运行'set' cmd 来设置Shell 环境变量。设置 UEFI 变量所需的“setvar”cmd 不能在正常的 shell 级别运行(仅在 Debug 1 级别,我不知道如何访问它)。顺便说一句:通常这种方法可能有点冒险,因为可能会以不受支持的方式更改变量,对吧?
    • 你是对的,以这种方式设置配置值是有风险的并且依赖于实现(就像 uefi 中的许多其他事情一样),但我认为没有任何其他方法可以从 shell 执行此操作。如果您可以禁用安全启动,您可以编写自己的 shell 应用程序来设置变量,我认为 edk2 存储库中有一个示例。 Dmpstore 有一个从文件加载变量的参数,我从未尝试过,但也许它可以加载单个变量。
    • 谢谢。使用dmpstore -l filename varname,可以从文件中加载变量值。使用dmpstore varname 我可以检查值是否已更改。我假设重置后更改应该生效。但问题是重置后更改丢失(再次检查 dmpstore)...
    • 也许该变量没有设置非易失性标志,您应该在 dmpstore 输出中看到这些标志。
    • 设置了非易失性标志。目前我正在尝试更改 ConOut。这有标志:NV+RT+BS(更改值之前和之后)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2020-01-24
    • 2016-12-08
    • 2019-12-30
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多