12.5. Debug di eventi udev

È possibile utilizzare il programma udevmonitor per visualizzare gli eventi di base del driver e gli intervalli di tempo dei processi evento di udev.

UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2
UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0
UEVENT[1132632714.309485] add@/class/input/input6
UEVENT[1132632714.309511] add@/class/input/input6/mouse2
UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12
UDEV  [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2
UDEV  [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0
UDEV  [1132632714.427298] add@/class/input/input6
UDEV  [1132632714.434223] add@/class/usb_device/usbdev2.12
UDEV  [1132632714.439934] add@/class/input/input6/mouse2

Le righe UEVENT mostrano gli eventi che il kernel ha inviato mediante netlink. Le righe UDEV mostrano i gestori evento udev completati. Gli intervalli di tempo vengono visualizzati in microsecondi. L'intervallo tra UEVENT e UDEV corrisponde al tempo impiegato da udev per elaborare questo evento oppure il daemon udev ne ha ritardato l'esecuzione per sincronizzare questo evento con quelli correlati e già in esecuzione. Ad esempio, gli eventi relativi alle partizioni del disco rigido attendono sempre il completamento dell'evento del dispositivo del disco principale. Questo perché gli eventi delle partizioni utilizzano i dati che l'evento del disco rigido principale ha richiesto all'hardware.

udevmonitor --env mostra l'ambiente degli eventi completo:

UDEV  [1132633002.937243] add@/class/input/input7
UDEV_LOG=3
ACTION=add
DEVPATH=/class/input/input7
SUBSYSTEM=input
SEQNUM=1043
PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0
PHYSDEVBUS=usb
PHYSDEVDRIVER=usbhid
PRODUCT=3/46d/c03e/2000
NAME="Logitech USB-PS/2 Optical Mouse"
PHYS="usb-0000:00:1d.1-2/input0"
UNIQ=""
EV=7
KEY=70000 0 0 0 0 0 0 0 0
REL=103

udev inoltre invia i messaggi a syslog. La priorità syslog predefinita che controlla quali messaggi vengono inviati a syslog è specificata nel file di configurazione di udev /etc/udev/udev.conf. Per modificare la priorità di log del daemon in esecuzione, è possibile utilizzare udevcontrol log_priority=livello/numero.