2017-07-26 81 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); 
相關問題