| 1 | How to watch udev activity when booting | 
|---|
| 2 | ####################################### | 
|---|
| 3 |  | 
|---|
| 4 |  | 
|---|
| 5 | 1) Make syslog start before udev: | 
|---|
| 6 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 
|---|
| 7 | Since udev writes all output to syslog, we need service syslog running before | 
|---|
| 8 | udevd starts. There are two ways to achieve this. | 
|---|
| 9 |  | 
|---|
| 10 | Either add the needed link to /etc/init.d/earlysyslog in /etc/init.d/boot.d/ manually. But it must start later then boot.rootfsck. | 
|---|
| 11 |  | 
|---|
| 12 | Or you edit the service scripts itself and let insserv create the links. You | 
|---|
| 13 | have to change earlysyslog and boot.udev: | 
|---|
| 14 | /etc/init.d/earlysyslog | 
|---|
| 15 | Add 'B' to 'Default-Start:' and 'boot.rootfsck' to 'Required-Start:' | 
|---|
| 16 | # Required-Start: boot.rootfsck | 
|---|
| 17 | # Default-Start:  B 2 3 5 | 
|---|
| 18 | /etc/init.d/boot.udev | 
|---|
| 19 | Add 'earlysyslog' to 'Required-Start' | 
|---|
| 20 | # Required-Start:    boot.rootfsck earlysyslog | 
|---|
| 21 | Then call | 
|---|
| 22 | /sbin/insserv -d earlysyslog | 
|---|
| 23 | Check if earlysyslog comes before boot.udev in /etc/init.d/boot.d/S* | 
|---|
| 24 |  | 
|---|
| 25 | You need /var on your root partition for that because boot.localfs is started | 
|---|
| 26 | after udev. If you have a seperate /var partition, make it available somehow or | 
|---|
| 27 | change the location of your syslog file. | 
|---|
| 28 |  | 
|---|
| 29 |  | 
|---|
| 30 | 2) Enable logging | 
|---|
| 31 | ^^^^^^^^^^^^^^^^^ | 
|---|
| 32 | set udev_log=info in /etc/udev/udev.conf. | 
|---|
| 33 |  | 
|---|
| 34 | There is also debug, but you are very | 
|---|
| 35 | probably not interested in the huge amount of debugging output from udev. It | 
|---|
| 36 | writes about 70M logfile at a single boot. | 
|---|
| 37 |  | 
|---|
| 38 | Many tools which are called from hotplug also respect the setting of udev_log. | 
|---|
| 39 | But there might be some which need special actions to make them verbose. | 
|---|
| 40 | [to be enhanced: list tools and their individual debug switches] | 
|---|
| 41 |  | 
|---|
| 42 | You may change udevs loglevel at runtime with | 
|---|
| 43 | udevcontrol log_priority=<level> | 
|---|
| 44 |  | 
|---|
| 45 |  | 
|---|
| 46 | 3) Reboot | 
|---|
| 47 | ^^^^^^^^^ | 
|---|
| 48 | For further processing of the logging output you should get a clean logfile at | 
|---|
| 49 | next boot. Just move the old logfile away. Syslog will still use the moved file | 
|---|
| 50 | until shutdown (until syslog restarted). | 
|---|
| 51 | mv /var/log/messages /var/log/messages.`date +%s` | 
|---|
| 52 |  | 
|---|
| 53 | Then reboot. | 
|---|
| 54 |  | 
|---|
| 55 |  | 
|---|
| 56 | 4) Getting logged events sorted | 
|---|
| 57 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 
|---|
| 58 | There is a script 'show_event_log' which may be used to extract info out of | 
|---|
| 59 | /var/log/messages. Call it | 
|---|
| 60 | show_event_log <first> [<last> [<list of event types>] ] | 
|---|
| 61 | <first> is the sequence number of the first event you are interested in. | 
|---|
| 62 | <last>  is the number of the last event. You may write 'last' literally. It may | 
|---|
| 63 | also be omitted if you want to see a single event. | 
|---|
| 64 | <list>  is a list of event types you like to see. If you omit it, you get most | 
|---|
| 65 | events, not all. Some are exclude by default. Use " " as list if you | 
|---|
| 66 | want to see really all. Or edit the list of skipped events in the first | 
|---|
| 67 | lines of the script | 
|---|
| 68 | If you don't use /var/log/messages as lockfile you may set the environment | 
|---|
| 69 | variable MESSAGES=<logfile>. | 
|---|
| 70 |  | 
|---|
| 71 | The script is slowly. It is just a quick hack. The larger the syslog file the | 
|---|
| 72 | slower the script. Therefore always boot with a fresh logfile. | 
|---|
| 73 | Improvements are welcome. | 
|---|
| 74 |  | 
|---|
| 75 |  | 
|---|
| 76 | Have a lot of fun, as always ;) | 
|---|
| 77 |  | 
|---|