Ian Campbell: Debugging Initramfs Issues With No Console
The QNAP TS-XXX NAS boxes are nice little systems but one thing I
really miss is a console. Martin Michlmayr has some instructions
(TS-119,
TS-219,
TS-41x)
on his excellent Debian On
QNAP pages on how to
build a suitable adaptor but sadly even though I've managed to get all
the parts I've been too lazy to actually solder the thing together (it
doesn't help that I nearly always burn myself when I use a soldering
iron!).
This became more pressing when someone reported that Debian bug #693263 in qcontrol was not fixed in Wheezy since the
issue appeared to be in the initramfs hook. Worse it seemed like
something in my proposed fix was causing the system to not boot at
all!
Having finally found the hardware needed to reproduce the issue my
first thought was to try netconsole. To do this I edited
/etc/initramfs-tools/modules to add:
mv643xx_eth
netconsole netconsole=@<IP>/eth0,@<DST-IP>/<DST-MAC>
The option syntax is described in
netconsole.txt
but briefly: <IP> is the address of the TS-419P II I'm debugging on,
and <DST-IP> and <DST-MAC> are the IP and MAC address of another
machine on the network.
Having done that, running update-initramfs -u and rebooting I can
use netcat -u -l -p 6666 on the other machine to see all the kernel
messages.
So far so good but this doesn't get me any debugging from the
userspace portions of the initramfs. To get those we have to
get a bit hacky by editing /usr/share/initramfs-tools/init, first to
change:
# Parse command line options
-for x in $(cat /proc/cmdline); do
+for x in $(cat /proc/cmdline) debug; do
case $x in
and secondly:
debug)
debug=y
quiet=n
- exec >/run/initramfs/initramfs.debug 2>&1
+ exec >/dev/kmsg 2>&1
set -x
;;
The first of these simulates adding debug to the kernel command line
(which can't otherwise easily be edited on these systems) and the
second redirects the initramfs process's output to the kernel log. The
overall effect is that the output of the initramfs processes appears
over netcat.
Let s start a convention: bare-metal machines have the linguistic male
gender (
Recently, I've started programming in 






I don t like watching videos sitting in front of a computer, I usually store them into a USB key to plug into my Samsung LE37 TV set. It s not an easy task, though, as I have to fight with other components of my family who usually like watching something completely different than DebConf videos