2017-07-26 23 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); 
関連する問題