linux内核读取smbios,linux – dmidecode在哪里获得SMBIOS表?

我总是有这个问题,在阅读了man-page并在线搜索后没有得到答案.任何了解此问题的人请发表评论.

我知道SMBIOS表或DMI表是dmidecode定位和解析的内容.但它从何而来?它是否采用Linux中的文件格式?

解决方法:

看起来它来自/ dev / mem

root@aw42e ~]# strace -F -e open dmidecode -t 17

open("/sys/firmware/efi/systab", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/proc/efi/systab", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/dev/mem", O_RDONLY) = 3

SMBIOS 2.5 present.

open("/dev/mem", O_RDONLY) = 3

Handle 0x0016, DMI type 17, 27 bytes

Memory Device

/ dev / mem被描述为

mem is a character device file that is an image of the main memory of

the computer. It may be used, for example, to examine (and even patch)

the system. Byte addresses in mem are interpreted as physical memory

addresses.

所以要回答,它包含在/ dev / mem中

我正在寻找更多信息,但我认为内核在启动时将DMI表插入内存 – 来自man dmidecode

As you run it, dmidecode will try to locate the DMI table. If it

succeeds, it will then parse this table and

display a list of records like this one:

标签:linux,x86,bios

来源: https://codeday.me/bug/20190713/1453527.html

你可能感兴趣的:(linux内核读取smbios)