最終更新:2023-11-14 (火) 07:49:02 (157d)
udev
Top / udev
userspace device management
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html
udevはLinuxカーネル2.6以降を対象とし、デバイス名を固定する機能を備え、動的な/devディレクトリをユーザスペースで実現する方法を提供します。
概要
- The udev system is composed of some kernel services and the udevd daemon.
- udev では,udevdというデーモンがカーネルの内部情報を監視しており,カーネルが新たな周辺機器を検知すれば,その機器に応じたデバイスファイルを動的に作成することができます。
- 最近のLinuxではこの仕組みを用いて,あらかじめすべてのデバイスファイルを用意するのではなく,実際に接続されてカーネルが認識している周辺機器用のデバイスファイルのみを動的に生成できるようになっています。
- Linux 2.4のdevfsの代替
メモ
- Created by Greg Kroah Hartman
- udevが作成したデバイスファイルは単なるシンボリックリンクファイルであるため、 カーネル内部では認識されません。
systemdに統合
- In April 2012, udev's codebase was merged into the systemd source tree, making systemd 183? the first version to include udev.
ソースコード
- udev was merged into the systemd source tree at some point.
- http://lwn.net/Articles/490413/
- http://cgit.freedesktop.org/systemd/systemd/tree/src/udev
パッケージ
構成
udev/コマンド
- udevadm
- udevadm info - query sysfs or the udev database
- udevadm trigger? - request events from the kernel
- udevadm settle? - wait for the event queue to finish
- udevadm control? - control the udev daemon
- udevadm monitor - listen to kernel and udev events
- udevadm hwdb? - maintain the hardware database index
- udevadm test? - test an event run
- udevadm test-builtin - test a built-in command
メモ
- Udev reads the /sys filesystem to check the available hardware and tries to load the necessary modules.
ドキュメント
Debian
SUSE Linux
動作
- udevd - カーネルコア(USBやPCIコアドライバなど)からのueventを待ち受ける
- uevent - デバイスが挿入/抜去された時に送信されるメッセージ
- メッセージとそれ自体に含まれる情報、あるいはsysfsから抽出したデバイス情報を使ってイベントをudevのルールと照合
- ルールは辞書順に処理される
- 合致する名前付けルールが見つかれば、デバイスファイルを作成あるいは削除する
- 合致するルールが見つかれば、ドライバモジュールのロードや削除、あるいはユーザ空間プログラムへの通知など、指定したコマンドを実行する
設定ファイル
- Linux/etc/udev
- Linux/etc/udev/udev.conf? - メインの設定ファイル
udev/ルール
- All rules files are collectively sorted and processed in lexical order, regardless of the directories in which they live.
- Rule files must have the extension .rules; other extensions are ignored.
- Linux/lib/udev/rules.d - システム定義
- Linux/etc/udev/rules.d - イベント適合ルール
/dev ディレクトリ内に存在すべき固定のファイルやディレクトリ
- Linux/lib/udev/devices?ディレクトリ内に配置
ルールの再読み込み
udevadm control reload_rules /etc/init.d/boot.udev reload
コマンド
/dev
関連
Linux 2.4
systemd
- In April 2012, udev's source tree was merged into systemd
組み込みLinux
Android
- カーネルモジュールのロード - Android/init.rc
- デバイスファイルの作成 - Android/initで処理