可以从 linux 内核模式写入 BIOS 吗?
Possible to write to BIOS from linux kernel mode?
是否可以在 Linux
中从内核模式 flash/write 到 BIOS
?
我一直在对此进行一些研究,但找不到明确的答案。我对内核级的东西和硬件不是很好。
据我所知,我知道某些内核工具可以询问 BIOS(请参阅 dmidecode
),前提是 BIOS 支持某些接口。
我知道实模式和保护模式的区别。但是从 Linux 切换到实模式似乎是不可能的(?)。我也知道 x86
有 8088 程序的仿真,但不确定仿真是否允许刷新 BIOS。
难道不能只在内核模式下将特定地址写入 "flash" BIOS 吗?
更新 从下面的答案和评论来看,答案似乎是肯定的,具体取决于硬件平台。唯一且必要的要求是 BIOS 闪存芯片可在 IO 地址 space 中寻址。您还需要软件支持闪存芯片,无论是内核还是用户 space。例如,我发现用户 space 实用程序 flashrom
可以在似乎是一组狭窄的硬件平台上执行此操作。
是的,如果 BIOS 闪存芯片连接到 IO 地址总线并且您拥有所有必要的驱动程序,则可以这样做。
是否可以在 Linux
中从内核模式 flash/write 到 BIOS
?
我一直在对此进行一些研究,但找不到明确的答案。我对内核级的东西和硬件不是很好。
据我所知,我知道某些内核工具可以询问 BIOS(请参阅 dmidecode
),前提是 BIOS 支持某些接口。
我知道实模式和保护模式的区别。但是从 Linux 切换到实模式似乎是不可能的(?)。我也知道 x86
有 8088 程序的仿真,但不确定仿真是否允许刷新 BIOS。
难道不能只在内核模式下将特定地址写入 "flash" BIOS 吗?
更新 从下面的答案和评论来看,答案似乎是肯定的,具体取决于硬件平台。唯一且必要的要求是 BIOS 闪存芯片可在 IO 地址 space 中寻址。您还需要软件支持闪存芯片,无论是内核还是用户 space。例如,我发现用户 space 实用程序 flashrom
可以在似乎是一组狭窄的硬件平台上执行此操作。
是的,如果 BIOS 闪存芯片连接到 IO 地址总线并且您拥有所有必要的驱动程序,则可以这样做。