[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT Kernel debug



On Mon, May 25, 2009 at 08:16:14PM +0200, Leopold Palomo Avellaneda wrote:
> 
> first of all sorry because the mails is off topic: it's not about the amd64 
> port of debian. But, I have a problem with a kernel, and maybe some of the 
> clever minds here could help me, because nobody in my LUG have solved it.
> 
> In one of my servers, running lenny, with a stock xen kernel, the box crashes 
> aleatory. There's an open bug [1]
> 
> My question is how can I obtain the information from a console when the kernel 
> crash? Because there's nothing on the kern.log, syslog.

The best way is to use a serial console.  Hook up a null-modem serial
cable from the problem box to a working box.  Run minicom on the working
box, turn on logging in minicom, boot the problem box and wait for the
crash.

Here's my /boot/grub/menu.lst that shows how to set it up.  Grub will
start with something like "press a key to continue" so that it knows
whether you're at the serial console or the main (VGA) console, and
thend presents the usual menu.

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-legacy-doc/.

#### set up for both regular console and serial terminal on mgmt port
#### don't automatically boot any entry
#### require a password to edit configs
#### require a password to boot any entry
#### have separate entries for use with serial console or regular console
####
#### mgmt port is /dev/ttyS1

serial --unit=1 --speed=38400 --word=8 --parity=no --stop=1
terminal serial console


## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default		0

<snip>

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=LABEL=root ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(single-user) single
# altoptions=(serial console) console=tty0 console=ttyS1,38400n8
# altoptions=(single-user mode) single
# altoptions=(single-user serial console) console=tty0 console=ttyS1,38400n8 single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title		Debian GNU/Linux, kernel 2.6.26-2-686
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=LABEL=root ro 
initrd		/boot/initrd.img-2.6.26-2-686

title		Debian GNU/Linux, kernel 2.6.26-2-686 (serial console)
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=LABEL=root ro console=tty0 console=ttyS1,38400n8
initrd		/boot/initrd.img-2.6.26-2-686

title		Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=LABEL=root ro single
initrd		/boot/initrd.img-2.6.26-2-686

title		Debian GNU/Linux, kernel 2.6.26-2-686 (single-user serial console)
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=LABEL=root ro console=tty0 console=ttyS1,38400n8 single
initrd		/boot/initrd.img-2.6.26-2-686
 
<snip>


Here's the end of my /etc/inittab to allow a login on the serial console:

## note S0 will be or is modem, on Port A 

## S3 is Port B.
S3:23:respawn:/sbin/getty -L -w ttyS3 38400 vt100

## S1 is management port
S1:23:respawn:/sbin/getty -L -w ttyS1 38400 vt100


I hope this helps.

Doug.


Reply to: