「udev」(2012/11/30 (金) 22:35:17) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
かつては、利用される可能性のある数千のデバイスファイルを/dev以下にあらかじめ用意しておく必要が
あったが、現在では、必要に応じてudevがsysfsと連携して、動的にデバイスファイルを管理するようになっている。
ハードウェアが接続されると、カーネルがそれを検知し、カーネル情報を監視しているudevdデーモンが必要なデバイスファイルを
動的に作成する。つまり、実際にカーネルが認識しているハードウェアに対応するデバイスファイルのみが用意されることになる。
udevはユーザ空間で動作するプロセスである。ユーザ空間とカーネル空間は分離されているので、アプリケーションはカーネル内部の情報に
直接アクセスできない。そこでudevはsysfsから情報を得ている。susfsは、カーネル内部情報をファイルシステムの形で投影する仕組みで、
/sysディレクトリ以下から、システムに接続されているデバイスの情報を得ることができる。
そういった用途には従来procfsが使われてきたが、もともとprocfsはプロセス情報を管理する仕組みなので、今後はカーネル情報についてはsysfsに移行していくだろう。
かつては、利用される可能性のある数千のデバイスファイルを/dev以下にあらかじめ用意しておく必要が
あったが、現在では、必要に応じてudevがsysfsと連携して、動的にデバイスファイルを管理するようになっている。
ハードウェアが接続されると、カーネルがそれを検知し、カーネル情報を監視しているudevdデーモンが必要なデバイスファイルを
動的に作成する。つまり、実際にカーネルが認識しているハードウェアに対応するデバイスファイルのみが用意されることになる。
udevはユーザ空間で動作するプロセスである。ユーザ空間とカーネル空間は分離されているので、アプリケーションはカーネル内部の情報に
直接アクセスできない。そこでudevはsysfsから情報を得ている。susfsは、カーネル内部情報をファイルシステムの形で投影する仕組みで、
/sysディレクトリ以下から、システムに接続されているデバイスの情報を得ることができる。
そういった用途には従来procfsが使われてきたが、もともとprocfsはプロセス情報を管理する仕組みなので、今後はカーネル情報についてはsysfsに移行していくだろう。
新しいデバイスをカーネルが認識すると、udevdはsysfsの情報を元に、必要なデバイスファイルを作成する。
その際に参照される設定ファイルは/etc/udev/rules.dディレクトリ以下にある。
$ ls /etc/udev/rules.d
05-udev-early.rules 60-pcmcia.ules 90-dm.rules
40-multipath.rules 60-raw.rules 90-hal.rules
50-udev.rules 60-wacom.rules 95-pam-console.rules
ファイル名が数字で始まっているが、番号の若い者から順に適用されることになっている。
ファイルの内容は以下のとおり。
■/etc/udev/rules.d/50-udev.rulesの例
KERNEL=="tty", NAME="%k", GROUP="tty", MODE="0666",
OPTIONS="last_rule"
これはカーネルが「tty」というデバイス名を認識した場合、所有グループをtty、パーミッションを0666としてデバイスファイルを作成する、というルールである。
「last_rule」は、ほかにも条件にマッチするルールが見つかっても、そちらのルールは適用しない、という意味である。
%kはカーネルから伝えられた名前に置き換えられる。
■/etc/udev/rules.d/50-udev.rulesの例2
KERNEL=="mice", NAME="input/%k"
KERNEL=="mouse*", NAME="input/%k"
これは、カーネルの認識したデバイス名が「mice」「mouse*」であれば、デバイスファイルは/dev/input/mice などで作成する、というルールである。
■/etc/udev/rules.d/50-udev.rulesの例3
KERNEL=="ram1", SYMLINK+="ram"
これは、/dev/ramは/dev/ram1のシンボリックリンクとるする、というルールである。
KERNELなどに指定するパラメータ、つまりsysfsがどのようにデバイスを扱っているかと言う情報は、[[udevinfo]]コマンドで調べることが出来る。
表示オプション
横に並べて表示:
変化行の前後のみ表示: