Skip to content

udevイベントの調査方法

ルールから参照するデバイスの属性などは以下のコマンドで確認できる。

Terminal window
udevadm info -n /dev/sda -a

例えばUSBストレージデバイスの場合はLinuxのUSBツリー構造のようにツリー状をしている。udevadm コマンドの出力にUSBコントローラなどのデバイスも含まれていて混乱するけれど、より範囲が限定的なものは上に並ぶので、基本的にはより上にある属性から使えるものを選ぶといい。

実際のイベントは udevadm monitor で確認できる。以下は udisks2 でアンマウントとマウントを行ったときの様子。

Terminal window
$ udevadm monitor [-p]
KERNEL[10495.114220] remove /devices/virtual/bdi/btrfs-5 (bdi)
KERNEL[10495.115330] change /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7.3/3-7.3:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
UDEV [10495.116510] remove /devices/virtual/bdi/btrfs-5 (bdi)
UDEV [10495.142949] change /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7.3/3-7.3:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
KERNEL[10496.262533] add /devices/virtual/bdi/btrfs-6 (bdi)
UDEV [10496.262755] add /devices/virtual/bdi/btrfs-6 (bdi)
KERNEL[10496.323338] change /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7.3/3-7.3:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)
UDEV [10496.349239] change /devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7.3/3-7.3:1.0/host0/target0:0:0/0:0:0:0/block/sda/sda1 (block)

ラベル等も調べたい場合は -p オプションが利用できる。

Terminal window
$ udevadm monitor -s bdi -p
KERNEL[10683.635455] remove /devices/virtual/bdi/btrfs-6 (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/btrfs-6
SUBSYSTEM=bdi
SEQNUM=5227
UDEV [10683.637416] remove /devices/virtual/bdi/btrfs-6 (bdi)
ACTION=remove
DEVPATH=/devices/virtual/bdi/btrfs-6
SUBSYSTEM=bdi
SEQNUM=5227
USEC_INITIALIZED=10683635475
KERNEL[10688.712968] add /devices/virtual/bdi/btrfs-7 (bdi)
ACTION=add
DEVPATH=/devices/virtual/bdi/btrfs-7
SUBSYSTEM=bdi
SEQNUM=5229
UDEV [10688.714622] add /devices/virtual/bdi/btrfs-7 (bdi)
ACTION=add
DEVPATH=/devices/virtual/bdi/btrfs-7
SUBSYSTEM=bdi
SEQNUM=5229
USEC_INITIALIZED=10688712982