我想编写一个Linux内核模块,根据主板供应商和产品版本进行操作。
在用户空间中,我只能读取/sys/class/dmi/id/*
下的文件,但它们在内核空间中不可用。
我想我应该从UEFI SMBIOS表中收集数据。我可以不用硬编码每个供应商用来保存SMBIOS表的确切内存地址吗?
答案 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);