[a6cd72e] | 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 |
|
---|