2017-07-26 106 views
0

我想编写一个Linux内核模块,根据电路板供应商和产品版本做些什么。如何从Linux内核空间访问UEFI SMBIOS表?

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

我想我应该从UEFI SMBIOS表中收集数据。我可以在没有对每个供应商用于保存SMBIOS表的确切内存地址进行硬编码的情况下执行此操作吗?

+1

以下是一个DMI API。例如,检查'dmi_first_match()'。该文档是从* Documentation/driver-api/firmware/other_interfaces.rst *生成的。 – 0andriy

回答

0

我自己想通了。

有访问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); 
相关问题