udevdとsysfs
udevd がカーネルの内部情報を監視すると言いましたが,
sys fsは/sysにマウントされた仮想的なファイルシステムで,
かつては/procにマウントされた仮想ファイルシステムであるproc fs
sys fsは現在も開発が進行中の機能のためドキュメントも少なく,
# ls /sys/block hda/ hdc/ ram0/ ram10/ ram12/ ram14/ ram2/ ram4/ ram6/ ram8/ sda/ hdb/ hdd/ ram1/ ram11/ ram13/ ram15/ ram3/ ram5/ ram7/ ram9/ sdb/
/sys/
# ls /sys/block/hda capability device@ hda2/ hda4/ queue/ removable slaves/ subsystem@ dev hda1/ hda3/ holders/ range size stat uevent # ls /sys/block/hda/device block:hda@ bus@ drivename driver@ firmware media modalias model power/ serial subsystem@ uevent # cat /sys/block/hda/device/model WDC WD800BB-22HEA1 # cat /sys/block/hda/device/serial WD-WMAJ51314493
このように,
一方udevは,
かつてudevと同等の機能を提供するdevfsと呼ばれる仕組みが開発されたことがありました。udevがユーザ領域で動くのに対して,
この設計の結果,
udev. rulesを読む
udevのルールファイルは/etc/
# ls /etc/udev/rules.d/ 05-udev-early.rules 60-persistent-storage-tape.rules 80-drivers.rules 10-console.rules 60-persistent-storage.rules 85-pcscd_ccid.rules 40-alsa.rules 60-wacom.rules 85-pcscd_egate.rules 40-multipath.rules 61-persistent-storage-edd.rules 88-clock.rules 40-redhat.rules 64-device-mapper.rules 90-alsa.rules 50-udev-default.rules 64-md-raid.rules 90-hal.rules 60-cdrom_id.rules 70-mdadm.rules 91-drm-modeset.rules 60-libmtp.rules 70-persistent-cd.rules 95-pam-console.rules 60-net.rules 70-persistent-net.rules 95-udev-late.rules 60-pcmcia.rules 75-cd-aliases-generator.rules 97-bluetooth.rules 60-persistent-input.rules 75-persistent-net-generator.rules
udevのルールファイルはこのように先頭に2ケタの数字を付けたファイル名になっており,
それでは実際のファイルを眺めてみましょう。
# cat -n /etc/udev/rules.d/05-udev-early.rules 1 # do not edit this file, it will be overwritten on update 2 3 # sysfs is populated after the event is sent 4 ACTION=="add", KERNEL=="[0-9]*:[0-9]*", SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" 5
udevのルールファイルも他の多くの設定ファイル同様,
udevのルールファイルは
ACTION, KERNEL, SUBSYSTEMというのはカーネルから通知される情報に対する条件で,
上記の例では