1 | Debugging the udev event processing |
---|
2 | =================================== |
---|
3 | |
---|
4 | To visualize the driver core events and the udev event processes, use: |
---|
5 | udevmonitor |
---|
6 | |
---|
7 | it prints: |
---|
8 | UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2 |
---|
9 | UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 |
---|
10 | UEVENT[1132632714.309485] add@/class/input/input6 |
---|
11 | UEVENT[1132632714.309511] add@/class/input/input6/mouse2 |
---|
12 | UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12 |
---|
13 | UDEV [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2 |
---|
14 | UDEV [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 |
---|
15 | UDEV [1132632714.427298] add@/class/input/input6 |
---|
16 | UDEV [1132632714.434223] add@/class/usb_device/usbdev2.12 |
---|
17 | UDEV [1132632714.439934] add@/class/input/input6/mouse2 |
---|
18 | |
---|
19 | UEVENT lines show the events the kernel sends over netlink, the UDEV lines |
---|
20 | show the finished udev event handlers. The timing is printed in microseconds. |
---|
21 | The time between UEVENT and UDEV is the time udev took to process this event |
---|
22 | or was queued to synchronize it with other events. |
---|
23 | |
---|
24 | If called with: |
---|
25 | udevmonitor --env |
---|
26 | |
---|
27 | it prints the whole event environment: |
---|
28 | UDEV [1132633002.937243] add@/class/input/input7 |
---|
29 | UDEV_LOG=3 |
---|
30 | ACTION=add |
---|
31 | DEVPATH=/class/input/input7 |
---|
32 | SUBSYSTEM=input |
---|
33 | SEQNUM=1043 |
---|
34 | PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 |
---|
35 | PHYSDEVBUS=usb |
---|
36 | PHYSDEVDRIVER=usbhid |
---|
37 | PRODUCT=3/46d/c03e/2000 |
---|
38 | NAME="Logitech USB-PS/2 Optical Mouse" |
---|
39 | |
---|
40 | |
---|
41 | Udev also sends messages to syslog according to the configured debugging |
---|
42 | level. Udev specific tools which are called, also respect the setting |
---|
43 | of udev_log. But there might be some which need special actions to make |
---|
44 | them verbose. |
---|
45 | |
---|
46 | Set udevs loglevel in the damon at runtime with: |
---|
47 | udevcontrol log_priority=<level> |
---|
48 | |
---|
49 | Enable logging permanently, set (it may make udev _very_ slow): |
---|
50 | udev_log=info in /etc/udev/udev.conf. |
---|
51 | |
---|
52 | |
---|
53 | For further processing of the logging output you should get a clean logfile at |
---|
54 | next boot. Just move the old logfile away. (Syslog will still use the moved file |
---|
55 | until it's restarted). |
---|
56 | |
---|
57 | The script 'show_event_log' provided along with this file, can be used to |
---|
58 | extract info out of /var/log/messages. Call it: |
---|
59 | show_event_log <first> [<last> [<list of event types>] ] |
---|
60 | <first> is the sequence number of the first event you are interested in. |
---|
61 | <last> is the number of the last event. You may write 'last' literally. It may |
---|
62 | also be omitted if you want to see a single event. |
---|
63 | <list> is a list of event types you like to see. If you omit it, you get most |
---|
64 | events, not all. Some are exclude by default. Use " " as list if you |
---|
65 | want to see really all. Or edit the list of skipped events in the first |
---|
66 | lines of the script |
---|
67 | |
---|
68 | If you don't use /var/log/messages as the logfile you may set the environment |
---|
69 | variable MESSAGES=<logfile>. |
---|
70 | |
---|