从命令行查找 SMBIOS 入口点的地址
Finding out address of SMBIOS Entry point from command line
来自https://wiki.osdev.org/System_Management_BIOS
The SMBIOS Entry Point Table is located somewhere between the addresses 0xF0000 and 0xFFFFF, and must be on a 16-byte boundary. To find the specific location of the start of the table it is necessary to search that region of memory for the string "SM", and then check the structure's checksum (add all bytes and see if the lowest 8 bits of the result are zero).
如何从命令行找到确切的地址:
# cat /dev/mem | grep '_SM_'
Binary file (standard input) matches
cat: /dev/mem: Operation not permitted
dmidecode 实用程序(作为 dmidecode 软件包的一部分安装在基于 Debian 的系统上,例如 Ubuntu)将显示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 实用程序可用于检查 tables。
biosdecode 直接检查内存(/dev/mem 默认情况下,但可以通过 -d 选项)以查找 SMBIOS table(和其他 table)。 dmidecode 将首先尝试在 sysfs 中定位 DMI table(除非 运行 使用 --no-sysfs 选项) 并将回退到检查内存。
链接:
来自https://wiki.osdev.org/System_Management_BIOS
The SMBIOS Entry Point Table is located somewhere between the addresses 0xF0000 and 0xFFFFF, and must be on a 16-byte boundary. To find the specific location of the start of the table it is necessary to search that region of memory for the string "SM", and then check the structure's checksum (add all bytes and see if the lowest 8 bits of the result are zero).
如何从命令行找到确切的地址:
# cat /dev/mem | grep '_SM_'
Binary file (standard input) matches
cat: /dev/mem: Operation not permitted
dmidecode 实用程序(作为 dmidecode 软件包的一部分安装在基于 Debian 的系统上,例如 Ubuntu)将显示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 实用程序可用于检查 tables。
biosdecode 直接检查内存(/dev/mem 默认情况下,但可以通过 -d 选项)以查找 SMBIOS table(和其他 table)。 dmidecode 将首先尝试在 sysfs 中定位 DMI table(除非 运行 使用 --no-sysfs 选项) 并将回退到检查内存。
链接: