【问题标题】:Possible to write to BIOS from linux kernel mode?可以从linux内核模式写入BIOS吗?
【发布时间】:2015-03-29 05:32:10
【问题描述】:

是否可以在Linux 中从内核模式闪存/写入BIOS

我一直在对此进行一些研究,但找不到明确的答案。我对内核级的东西和硬件不是很好。

据我所知,我知道某些内核设施可以询问 BIOS(请参阅dmidecode),因为 BIOS 支持某些接口。

我知道真实模式和保护模式之间的区别。但是从 Linux 切换到实模式似乎是不可能的(?)。我也知道x86 可以模拟 8088 程序,但不确定该模拟是否允许刷新 BIOS。

难道不能只在内核模式下写入某些地址来“刷新”BIOS 吗?


更新 从下面的答案和 cmets 看来答案是肯定的,具体取决于硬件平台。唯一且必要的要求是 BIOS 闪存芯片可在 IO 地址空间中寻址。你还需要软件支持fir flashing芯片,无论是内核还是用户空间。例如,我发现用户空间实用程序 flashrom 可以在似乎是一组狭窄的硬件平台上执行此操作。

【问题讨论】:

  • 你可以在不同的行中提及而不是写一个段落
  • 对不起,你在说什么?
  • 哪个BIOS,什么平台?
  • @stdcall;任何 BIOS,x86 一般。如果它依赖于平台,哪些平台支持它,哪些不支持,如何以及为什么?
  • BIOS 不是 x86 通用的,它是特定于主板制造商的,有几个,AMIBIOS,SeaBIOS 等。

标签: linux linux-kernel


【解决方案1】:

是的,如果 BIOS 闪存芯片连接到 IO 地址总线并且您拥有所有必要的驱动程序,则可以这样做。

【讨论】:

  • 谢谢。你可能有任何关于它的文章的链接吗?
  • 这完全无关。
  • @stdcall 什么是完全不相关的?
  • 如果有办法刷新 BIOS,您可以从内核中进行。就是这样。为什么 SPI 接口在这里是相关的?可以是I2C、1Wire、Shared memory,接口无关。
  • @stdcall 我对 SPI 很了解,但我没有听说还有另一个或多或少普遍的 IO 连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多