我已经搜索了大约 8 个小时,我想清除我尚未完全弄清楚的要点。
(TLDR 版本:如何从 CLI 访问(读取和写入)所有 BIOS 设置(例如启用/禁用虚拟化、启用/禁用 GPU 的 Turbo 频率、设置日志显示时间等)?)
这是故事。
首先,我们有旧的 BIOS,比如这个。
现在,我们有了新一代的 BIOS,例如这个。我们称它们为 UEFI BIOS,我说得对吗?
然后我阅读了(并测试了)以下文章:
之后,我多次更改了 bios 设置(例如虚拟化、启用/禁用 IGD turbo、更改 USB 设置等),并在每次启动时转储以下文件/命令的全部内容。
结果?我已经将转储结果与 Meld 和 woala 并排进行了比较!什么也没有变!有没有搞错?!!
所以这是我的问题列表(我是一名电子工程师,因此您可以毫不犹豫地了解详细信息或参考技术阅读材料)。
所有的回应将不胜感激。
从现在开始谢谢。
小智 8
我很惊讶没有人提到smbios-token-ctl。
BIOS 确实可以从操作系统内部修改。
示例:我的 BIOS 有一个设置来启用/禁用集成网络摄像头。我可以在 Linux 中更改该设置:
# apt install smbios-utils
# smbios-token-ctl | grep -i camera
Token: 0x0285 - Camera (Enable)
Desc: To enable Camera
Token: 0x0286 - Camera (Disable)
# smbios-token-ctl -i 0x0285
================================================================================
Token: 0x0285 - Camera (Enable)
value: bool = true
Desc: To enable Camera
# smbios-token-ctl -i 0x0286 --activate
Original Value
token: 0x0286
type: bool
value: false
Activating token...
New value
type: bool
value: true
# smbios-token-ctl -i 0x0285
================================================================================
Token: 0x0285 - Camera (Enable)
value: bool = false
Desc: To enable Camera
Desc: To disable Camera
Run Code Online (Sandbox Code Playgroud)
然后我可以重新启动,进入 BIOS,并检查相机设置是否已更改。
注意:需要重新启动才能应用更改。
操作系统访问系统 BIOS 没有通用的方式。这只有在制造商提供详细信息并且有关于如何做到这一点的既定标准的情况下才有可能。事实并非如此,我认为无论如何这都不是一个好主意。
一些制造商已经为他们自己的系统创建了软件,至少为 Windows。该软件必须针对特定版本的 BIOS 设计。
问题是 BIOS 是每个制造商专有的。通常设置存储在 CMOS 中,但对此没有要求。制造商可以自由地在任何地方以他们选择的方式存储设置。没有可用于这些详细信息的文档。
这有安全隐患。如果合法软件可以访问 BIOS,那么就没有什么可以阻止恶意软件这样做了。这将为恶意软件开辟一个全新的可能性世界,它的创建者将充分利用这一可能性。当然可以制定保障措施,但他们可以而且会被规避
你所说的 BIOS 是(至少)3 种不同的东西:
虽然后两者公开了一组明确定义的 API,但前者没有。这意味着,没有供应商中立的通用方法来操作设置实用程序提供的所有设置。
至于设置的存储位置:大多数供应商使用电池供电的静态 RAM(古代术语中的“CMOS-RAM”),这就是为什么如果主板上的那些 CR2032 单元死掉会很麻烦。
| 归档时间: |
|
| 查看次数: |
39034 次 |
| 最近记录: |