从命令行查找SMBIOS入口点的地址

时间:2019-11-27 04:06:09

标签: linux io linux-kernel x86 bios

来自https://wiki.osdev.org/System_Management_BIOS

  

SMBIOS入口点表位于地址0xF0000和0xFFFFF之间的某个位置,并且必须位于16字节边界上。要查找表开头的特定位置,必须在内存的该区域中搜索字符串“ SM ”,然后检查结构的校验和(添加所有字节,然后查看最低8结果的位为零)。

如何从命令行中找到确切地址:

# cat /dev/mem | grep '_SM_'
Binary file (standard input) matches
cat: /dev/mem: Operation not permitted

1 个答案:

答案 0 :(得分:1)

dmidecode 实用程序(在基于Debian的系统(如Ubuntu)上作为 dmidecode 软件包的一部分安装)如果与一起运行,将显示SMBIOS入口点。 -no-sysfs 选项。地址显示在输出的第二行:

$ sudo dmidecode --no-sysfs
# dmidecode 3.2
# SMBIOS entry point at 0x000fxxxx
Found SMBIOS entry point in EFI, reading table from /dev/mem
...

biosdecode dmidecode 实用程序可用于检查表。

biosdecode 直接检查内存(默认情况下为 / dev / mem ,但可以通过 -d 选项进行更改)以查找内存。 SMBIOS表(和其他表)。 dmidecode 将首先尝试在sysfs中定位DMI表(除非使用-no-sysfs 选项运行),然后退回到检查内存。

链接: