I'm using printk for driver debug on a remote system (RHEL 5.1); I can
only connect via ssh. This worked fine until yesterday, when I made some
minor changes to support a serial terminal (kernel boot messages out to
ttyS0, and a login on ttyS0). I also briefly changed /etc/syslogd.conf
to get kernel debug messages out on ttyS0.
The kernel debug messages on ttyS0 didn't give me anything new, so I
reverted /etc/syslogd.conf to its original state. I've retained the
login on ttyS0 (respawning agetty on 'co' in /etc/inittab), and the
bootup message output (console output to ttyS0 in grub.conf).
The problem is that, following these changes, klogd no longer flushes
its output, so 'printk' is now pretty useless. Any ideas on what may be
causing this? Here's what I've tried:
1 - 'dmesg' always produces the correct output, but must be run manually
2 - If I cat '/proc/kmsg' in the background then I don't see the printk
3 - If I kill syslogd with a SIGHUP, then all output is flushed to
4 - It doesn't help if kill klogd and run it myself
This is persistent across boots. Any ideas? At the moment I have to
manually run dmesg whenever I think there may be any output to read.
redhat-list mailing list