程序 udevmonitor 可以用于将驱动程序核心事件和 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
UEVENT 行显示内核已经通过 netlink 发送的事件。 UDEV 行显示已经完成的 udev 事件处理程序。 计时以微秒为单位显示。 UEVENT 和 UDEV 之间的时间是 udev 用于处理此事件或者 udev 守护程序延迟执行从而同步此事件与相关以及已运行的事件的时间。 例如,硬盘分区的事件总是等待主磁盘设备事件完成,因为分区事件可能依赖主磁盘事件从硬件查询的数据。
udevmonitor --env 显示完整的事件环境:
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 也将消息发送给 syslog。 用于控制将哪些消息发送到 syslog 的默认 syslog 优先权在 udev 配置文件 /etc/udev/udev.conf 中指定。 可以使用 udevcontrol log_priority=level/number 来更改正在运行的守护程序的日志优先权。