第12章 udevを使用した動的カーネルデバイス管理

目次

12.1. /devディレクトリ
12.2. カーネルのueventおよびudev
12.3. ドライバ、カーネルモジュールおよびデバイス
12.4. ブートおよび初期デバイスセットアップ
12.5. udevイベントのデバッグ
12.6. udevルールを処理するカーネルデバイスイベントへの影響
12.7. 永続的なデバイス名の使用
12.8. 置換されたhotplugパッケージ
12.9. 関連情報

バージョン2.6以降、カーネルは、実行中のシステム上のほぼすべてのデバイスを追加または削除できるようになりました。デバイス状態の変更(デバイスが接続されているか、または取り外されたか)をユーザスペースに反映させる必要があります。デバイスは、接続後、検出されるとすぐに設定されなければなりません。また、特定のデバイスのユーザは、このデバイスの状態に関する変更について通知を受ける必要があります。udevは、/devディレクトリ内にデバイスノードファイルおよびシンボリックリンクを動的に管理することにより、必要なインフラストラクチャを提供します。udevルールによって、外部ツールをカーネルデバイスイベント処理に含めることができます。これにより、カーネルデバイス処理の一部として実行する特定のスクリプトを追加するなど、udevデバイス処理をカスタマイズしたり、デバイス処理中に評価する他のデータを要求およびインポートしたりできます。


12.1 /devディレクトリ

/devディレクトリ内のデバイスノードを使用して、対応するカーネルデバイスにアクセスできます。udevにより、/devディレクトリは、カーネルの現在の状態を反映します。カーネルデバイスは、それぞれ1つの対応するデバイスファイルを持ちます。デバイスがシステムから取り外されると、そのデバイスノードは削除されます。

/devディレクトリのコンテンツは一時的なファイルシステム内で管理され、すべてのファイルはシステムの起動時に新規に作成されます。意図的に、手動で作成または変更されたファイルは再起動時に復元されません。対応するカーネルデバイスの状態にかかわらず、/devディレクトリ内に常駐する静的ファイルおよびディレクトリは、/lib/udev/devicesディレクトリ内に保管できます。システムの起動時、そのディレクトリのコンテンツは、/lib/udev/devices内のファイルと同じ所有者およびパーミッションの/devディレクトリ内にコピーされます。