Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does one Capture the Entire Kernel Panic on Boot

Tags:

Using Buildroot, I'm attempting to make a custom kernel build. After building the image and booting it on a VirtualBox environment, the kernel always panics after the GRUB stage. General summary of what I see:

] CPU: 0 PID: 1 ...
] Hardware name: innotek GmbH ...
] <some registers>
] Call Trace:
]  [<c0a1c995>] dump_stack+...
]  [<........>] panic+...
]  [<........>] do_exit+...
]  ...
] Kernel Offset: 0x0 from 0xc0400000 ...
] ---[ end Kernel panic - not syncing: Attempted to kill init! ...

Now, I'm assuming this is only the tail of the message that I want to see, but I have no means to view it (ex: cannot Shift-PageUp). When the panic occurs, the above text is never rendered for a second on the screen.

I first stumbled upon a KernelDebuggingTricks page which states:

Slowing down kernel messages on boot

... [Build] the kernel with the following option enabled:

CONFIG_BOOT_PRINTK_DELAY=y

And boot the machine with the following kernel boot parameter:

boot_delay=N

I have confirmed that my kernel (3.16) had built with the CONFIG_BOOT_PRINTK_DELAY option and have tried setting boot_delay to 10, 500 and 1000 milliseconds in my GRUB. Even with the 1000 millisecond delay set (and waiting for a good ~5 minutes), the entire kernal panic log message is spewed out in a blink of an eye.

Does anyone have any suggestions on how I can view the root of the kernel panic? The only thing I'm thinking now is manually adding sleeps into the kernel code (which is something I'd like to avoid).