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

目次

13.1. /devディレクトリ
13.2. カーネルのueventおよびudev
13.3. ドライバ、カーネルモジュールおよびデバイス
13.4. ブートおよび初期デバイスセットアップ
13.5. 実行中のudevデーモンの監視
13.6. udevルールを処理するカーネルデバイスイベントへの影響
13.7. 永続的なデバイス名の使用
13.8. udevで使用するファイル
13.9. 詳細情報

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

/devディレクトリ

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

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