From Fedora Project Wiki

Line 24: Line 24:
To be successful in debugging you will need setup and remotely connect to the serial console.
To be successful in debugging you will need setup and remotely connect to the serial console.


Add the following lines to you /etc/grub.conf  
Add the following lines to you '''/etc/grub.conf'''


{{admon/note|The examples in this uses the first serial port, giving <serial_port> the value 0, which in turn gives kernel parameter console=ttyS0}}
{{admon/note|The examples in this uses the first serial port, giving <serial_port> the value 0, which in turn gives kernel parameter console=ttyS0}}
Line 37: Line 37:
<pre>console=tty0 console=ttyS0,9600</pre>
<pre>console=tty0 console=ttyS0,9600</pre>


So /etc/grub.conf looks something like this now
So '''/etc/grub.conf''' looks something like this now


<pre>default=0
<pre>default=0

Revision as of 16:50, 2 July 2009


Debugging

All bug reports

In all cases, the following should be mentioned and attached to your bug report:

The exact kernel command line used!

An copy of /etc/fstab

cp /etc/fstab ~USER/Desktop/fstab.txt

The output of dmsetup ls --tree.

 dmsetup ls --tree > ~USER/Desktop/dmsetup.txt

If using an raid device the output of cat /proc/mdstat.

 cat /proc/mdstat > ~USER/Desktop/mdstat.txt

Preparing your system for debugging

To be successful in debugging you will need setup and remotely connect to the serial console.

Add the following lines to you /etc/grub.conf

Note.png

Beneath timeout=5 put..

serial --unit=0 --speed=9600
terminal --timeout=5 serial console

At the end of the kernel line put..

console=tty0 console=ttyS0,9600

So /etc/grub.conf looks something like this now

default=0
timeout=5
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
title Fedora (2.6.29.5-191.fc11.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 console=ttyS0,9600
        initrd /initrd-2.6.29.5-191.fc11.x86_64.img

Redirect all non-interactive stuff output to /dev/kmsg that

exec >/dev/kmsg 2>&1 </dev/console

Create the image debug enable.

-a debug

Boot with debug enable.

rdinitdebug rdnetdebug

Dracut debugging kernel command parameters

rdinitdebug
Note.png
set -x for the dracut shell
rdbreak=[pre-udev|pre-mount|mount|pre-pivot|]
Note.png
drop the shell on defined breakpoint
rdudevinfo
Note.png
set udev to loglevel info
dudevdebug
Note.png
set udev to loglevel debug
rdnetdebug
Note.png
debug network scripts in dracut