如何从Linux内核空间访问UEFI SMBIOS表?

时间:2017-07-26 14:01:40

标签: linux-kernel uefi

我想编写一个Linux内核模块,根据主板供应商和产品版本进行操作。

在用户空间中,我只能读取/sys/class/dmi/id/*下的文件,但它们在内核空间中不可用。

我想我应该从UEFI SMBIOS表中收集数据。我可以不用硬编码每个供应商用来保存SMBIOS表的确切内存地址吗?

1 个答案:

答案 0 :(得分:1)

我自己想通了。

有一个访问DMI并获取这些信息的库:

#include <linux/dmi.h>

const char *board_vendor, *product_version;
board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
product_version = dmi_get_system_info(DMI_PRODUCT_VERSION);