如何从 Linux 内核 space 访问 UEFI SMBIOS table?
How do I access UEFI SMBIOS table from Linux kernel space?
我想编写一个 Linux 内核模块来根据主板供应商和产品版本执行操作。
在用户space中,我只能读取/sys/class/dmi/id/*
下的文件,但它们在内核space中不可用。
我想我应该从 UEFI SMBIOS table 收集数据。我可以不对每个供应商用来保存 SMBIOS 的确切内存地址进行硬编码吗?table?
我自己想出来的
有一个库可以访问 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);
我想编写一个 Linux 内核模块来根据主板供应商和产品版本执行操作。
在用户space中,我只能读取/sys/class/dmi/id/*
下的文件,但它们在内核space中不可用。
我想我应该从 UEFI SMBIOS table 收集数据。我可以不对每个供应商用来保存 SMBIOS 的确切内存地址进行硬编码吗?table?
我自己想出来的
有一个库可以访问 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);