modinfo --field
「著者」、「説明」などのフィールドをフィルタリングできます。
質問:可能な値の完全なリストはどこにありますか?--field
私が今まで試したこと:
man 8 modinfo
いくつかの「共通領域」が言及され、「おそらくあなたが探しているものが何かを最もよく知っているでしょう」と考えることになりました。- grepを介してソースコードをナビゲートしている以外はほとんど何も見つかりませんでした
./kmod-9/tools/modinfo.c
。これはCの文盲なのであまり役に立ちません(例えば、パッケージ全体をkmod
調べてかなりの用語を見つけました)。 - カーネルモジュールプログラミングガイド:上記を参照
- 私が重要なことを逃したかもしれません...
答え1
modinfo
.modinfo
カーネルモジュールセクションから情報を抽出します。カーネルモジュールの作成者が次のセクションを追加したため、この情報は通常このセクションに表示されます。
MODULE_DESCRIPTION("Joe's awesome driver");
MODULE_AUTHOR("Joe Blow<[email protected]>");
MODULE_LICENSE("GPL");
おそらくこの点は明らかです。ただし、要点は、ドライバーの作成者が希望する自由形式情報を追加できるため、明示的なリストがないことです。たとえば、次のようになります。
MODULE_INFO(my_cool_field, "Wow, so cool");
いくつかの共通領域があります。
そして上記のもう一つのことは、プログラムがどのmodinfo
フィールドがあるのかわからないということです。単に.modinfo
セクションモジュールでそのフィールドを検索するだけです。
フォローアップ:Linuxソースからinclude/linux/module.hを検索すると、次のマクロが定義されていることがわかります。
#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
#define MODULE_LICENSE(_license) MODULE_INFO(license, _license)
#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author)
#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)