linux - 如何从 Linux shell 访问 BIOS ROM 二进制文件

标签 linux shell bios firmware rom

我想要将ROM中的二进制代码制作成Linux中的通用文件。那么该怎么做呢。 还有ROM访问的内存地址?

最佳答案

可以读取 ROM BIOS 内容。

  • 当您的代码不在某些保护模式操作系统(例如 Linux)下时
  • 例如,当您处于启动模式时。此时ROM BIOS内容位于0x000F0000地址处的内存中——看一下IBM PC系统架构内存映射:http://wiki.osdev.org/Memory_Map_(x86) 。这样您就可以从内存中复制您需要的所有内容。

如果您仅需要 ROM BIOS 内容用于学习,您可以使用 BIOS 转储实用程序 - 其中有很多。

您可以检查此实用程序 biosdecode

也检查这个实用程序 flashrom 。如果您的系统受支持,您可以通过发出来读取 BIOS 内容

flashrom -r outputfile

另一个实用程序是 dmidecode

dmidecode -t bios

无需dmidecode读取内存从C:0000到F:FFFF

示例命令:

dd if=/dev/mem bs=1k skip=768  count=256 2>/dev/null | strings -n 8

关于linux - 如何从 Linux shell 访问 BIOS ROM 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275677/

相关文章:

shell - 如何向 STDERR 重定向添加时间戳

xml - 用于解析 xml 的 shell 命令无法正常运行

operating-system - 操作系统如何检测硬件?

c - linux 中进程的信号处理错误

php - 从当前目录下的 php 文件执行 git commit

assembly - BIOS 总是无法执行磁盘操作

virtualbox - 甲骨文 VirtualBox "VT-x is disabled in the BIOS"

linux - Bash 脚本获取记录文件的时间戳并将其从另一个日志文件的时间戳中减去

python - Linux 脚本创建目录结构

mysql - 将列值从 london 编码为 base 36