Linux kernel 如何从Linux内核空间访问UEFI SMBIOS表?
我想写一个Linux内核模块,它可以根据主板供应商和产品版本进行操作 在userspace中,我可以只读取Linux kernel 如何从Linux内核空间访问UEFI SMBIOS表?,linux-kernel,uefi,Linux Kernel,Uefi,我想写一个Linux内核模块,它可以根据主板供应商和产品版本进行操作 在userspace中,我可以只读取/sys/class/dmi/id/*,但它们在内核空间中不可用 我想我应该从UEFI SMBIOS表中收集数据。我是否可以在不硬编码每个供应商用于保存SMBIOS表的确切内存地址的情况下执行此操作?我自己找到了答案 有一个图书馆可以访问DMI并获取以下信息: #include <linux/dmi.h> const char *board_vendor, *product_v
/sys/class/dmi/id/*
,但它们在内核空间中不可用
我想我应该从UEFI SMBIOS表中收集数据。我是否可以在不硬编码每个供应商用于保存SMBIOS表的确切内存地址的情况下执行此操作?我自己找到了答案 有一个图书馆可以访问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);
#包括
const char*电路板供应商,*产品版本;
线路板供应商=dmi\U获取系统信息(dmi\U线路板供应商);
产品版本=dmi\U获取系统信息(dmi\U产品版本);
这是DMI API。例如,检查dmi\u first\u match()
。文档由文档/驱动程序api/固件/其他接口.rst生成。