udevイベントの調査方法
ルールから参照するデバイスの属性などは以下のコマンドで確認できる。
udevadm info -n /dev/sda -a例えばUSBストレージデバイスの場合はLinuxのUSBツリー構造のようにツリー状をしている。udevadm コマンドの出力にUSBコントローラなどのデバイスも含まれていて混乱するけれど、より範囲が限定的なものは上に並ぶので、基本的にはより上にある属性から使えるものを選ぶといい。
実際のイベントは udevadm monitor で確認できる。以下は udisks2 でアンマウントとマウントを行ったときの様子。
$ 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 オプションが利用できる。
$ udevadm monitor -s bdi -p
KERNEL[10683.635455] remove /devices/virtual/bdi/btrfs-6 (bdi)ACTION=removeDEVPATH=/devices/virtual/bdi/btrfs-6SUBSYSTEM=bdiSEQNUM=5227
UDEV [10683.637416] remove /devices/virtual/bdi/btrfs-6 (bdi)ACTION=removeDEVPATH=/devices/virtual/bdi/btrfs-6SUBSYSTEM=bdiSEQNUM=5227USEC_INITIALIZED=10683635475
KERNEL[10688.712968] add /devices/virtual/bdi/btrfs-7 (bdi)ACTION=addDEVPATH=/devices/virtual/bdi/btrfs-7SUBSYSTEM=bdiSEQNUM=5229
UDEV [10688.714622] add /devices/virtual/bdi/btrfs-7 (bdi)ACTION=addDEVPATH=/devices/virtual/bdi/btrfs-7SUBSYSTEM=bdiSEQNUM=5229USEC_INITIALIZED=10688712982