udev

udevは、USBメモリなどホットプラグに対応したようなディバイスを効率的に扱うための仕組みである。これは、カーネルとudevdデーモンの連携により実現する。

かつては、/dev以下に接続される可能性がある全てのディバイスファイルを予め作成しておく必要があった。udevではsysfsを利用してカーネルが認識したディバイスを把握し、必要なディバイスファイルのみを/dev以下に配置する。

設定・調整

カーネル上に新たなディバイスを認識すると、sysfsの情報を元にしてディバイスファイルを作成する。この際に参照されるのは、設定ファイル「/etc/udev/rules.d/*.rules」である。

# ls /etc/udev/rules.d
40-hplip.rules               70-cups-libusb.rules     90-hal.rules
40-multipath.rules           70-persistent-cd.rules   91-drm-modeset.rules
56-hpmud_support.rules       70-persistent-net.rules  92-video-post.rules
60-fprint-autosuspend.rules  70-printers.rules        97-bluetooth-serial.rules
60-libmtp.rules              85-pcscd_ccid.rules      99-fuse.rules
60-pcmcia.rules              85-pcscd_egate.rules
60-wacom.rules               90-alsa.rules

数字が若い程優先順位は高い。

状態の確認

コマンド「udevmonitor」を用いれば、ディバイスが接続されたのをトリガとし、UDEVとKERNEL間で取り交わされたメッセージの内容を確認できる。

# udevmonitor
the program '/bin/bash' called 'udevmonitor', it should use 'udevadm monitor <options>', this will stop working in a future release
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1261825046.342812] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2 (usb)
KERNEL[1261825046.345463] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0 (usb)
KERNEL[1261825046.349295] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8 (scsi)
KERNEL[1261825046.349443] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8/scsi_host/host8 (scsi_host)
UDEV  [1261825046.372928] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2 (usb)
UDEV  [1261825046.376765] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0 (usb)
UDEV  [1261825046.379056] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8 (scsi)
UDEV  [1261825046.380581] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8/scsi_host/host8 (scsi_host)
KERNEL[1261825051.354204] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8/target8:0:0 (scsi)
KERNEL[1261825051.356516] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8/target8:0:0/8:0:0:0 (scsi)
KERNEL[1261825051.356726] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host8/target8:0:0/8:0:0:0/scsi_disk/8:0:0:0 (scsi_disk)
・・・(略)


  • 最終更新:2009-12-26 20:05:35

このWIKIを編集するにはパスワード入力が必要です

認証パスワード