udevのマニュアルページには、特定のルールオプションを使用してudevプログラム自体に組み込まれている「組み込み」コマンドを呼び出すことができることがいくつかあります。しかし、udevの組み込み関数の機能と使用方法を明確に説明する参照文書が見つかりませんでした。
成功せずにオンラインで検索しました。これらの組み込みコマンドに関する詳細情報を提供する参考資料があるかどうかを知っている人はいますか?
答え1
実行すると、udevadm test-builtin --help
各コマンドの簡単な説明とともに組み込みコマンドが一覧表示されます。
udevadm test-builtin --help
udevadm test-builtin [オプション] コマンド DEVPATH 組み込みコマンドをテストします。 -h --help このメッセージを印刷 -V --version プログラムのバージョンを印刷します。 注文する: blkidファイルシステムとパーティションの検出 btrfs btrfs ボリューム管理 hwdbハードウェアデータベース input_id 入力デバイス属性 キーボードキーボードスキャンコードとキーマッピング kmodカーネルモジュールローダ net_id ネットワークデバイス属性 net_setup_link ネットワークリンクの設定 path_id は永続デバイスパスを形成します。 usb_id USB デバイスのプロパティ uaccess 管理装置ノード・ユーザー ACL
残念ながら、ご存知のように、組み込み機能の使用はマニュアルで簡単に説明されています。
実際の例は、システムで利用可能なファイル(以下)にあります。これには次の内容が含まれています。50-udev-default.rules
/lib/udev/rules.d/
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}"
答え2
残念ながら、この情報はマニュアルページにありますが、読み方を知っていても(以下を参照)、この情報を見つけるのが難しくなります。
しかし、オープンソースの利点は、ソースコードを読み取ることができることです。見たらudev-builtin.c
systemd
/source ファイルはリポジトリ内にudev
あり、デフォルトC言語の知識、次のコードスニペットを見つけることができます。既存のすべての組み込みタイプをマッピングする構造。
static const struct udev_builtin *builtins[_UDEV_BUILTIN_MAX] = {
#if HAVE_BLKID
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
#endif
[UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
[UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb,
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
[UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
#if HAVE_KMOD
[UDEV_BUILTIN_KMOD] = &udev_builtin_kmod,
#endif
[UDEV_BUILTIN_NET_ID] = &udev_builtin_net_id,
[UDEV_BUILTIN_NET_LINK] = &udev_builtin_net_setup_link,
[UDEV_BUILTIN_PATH_ID] = &udev_builtin_path_id,
[UDEV_BUILTIN_USB_ID] = &udev_builtin_usb_id,
#if HAVE_ACL
[UDEV_BUILTIN_UACCESS] = &udev_builtin_uaccess,
#endif
};
これにはstruct
すべての組み込みタイプが含まれており、そのタイプに基づいてソースファイルをマップします。例:
udev-builtin-kmod.c
- カーネルモジュールローダー。udev-builtin-keyboard.c
- キーボードハンドラ。udev-builtin-usb_id.c
- USBタイプを設定し、デバイスを初期化するUSBハンドラです。
関連:
答え3
わかりません。より良いものが見つからない場合は、ソースコードで直接使用できる組み込み機能を調べてみてください。 「udev-builtin」で始まるファイルを探します。