Tips and Tricks for Debugging
Kernel hangs suddenly in the middle of good messages or just says Starting... and hangs
Usually the kernel tried to printk() some messages but the UART driver did yet not become available, so we can't see anything on the console.
The same may be the case if the kernel suddenly becomes unable to operate the UART (e.g. interrupts are permanently blocked).
We can try to read the full log buffer from U-Boot.
- compile the kernel
fgrep __log_buf System.map if you have downloaded a binary kernel we have a matching System.map at e.g. http://download.goldelico.com/letux-kernel/latest/src/
the address printed is virtual memory
- physical memory starts at 0x8000000 - so you have to translate by good guess
- boot until the kernel hangs
- reset (not power off!) the board by hardware reset so that RAM keeps contents
- interrupt U-Boot
- md $address