Redirigere la console linux su tty

In caso di problemi, o in mancanza di monitor tastiera, può essere comodo redirigere l’output della console su un terminale tty (hyper terminal o qualcosa di simile).
Nel mio caso la macchina dava problemi al boot, la console classica erra incontrollabile e l’output scrollava velocemente impedendone la visualizzazione, quindi ho voluto redirigere laconsole e catturare l'output.
L'operazione relativamente semplice. Occorre in cavo seriale, da Linux a PC - o terminale- un cavo incrociato (null modem). Il nome della tty è nei messaggi di boot:

dmesg | grep tty

xen-test:~ # dmesg | grep tty
[    0.000000] console [tty0] enabled
[    0.297603] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.297993] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
xen-test:~ #

Poi modificare i parametri di boot (/boot/grub/menu.lst) aggiungendo ai parametri di boot le opzioni:

console=ttyS0 console=ttyS0,9600

 

title SUSE Linux Enterprise Server 11 SP2 - 3.0.93-0.5 console tty
    root (hd0,1)
    kernel /boot/vmlinuz-3.0.93-0.5-default root=/dev/sda1 vga=0x317 console=tty0 console=ttyS0,9600
    initrd /boot/initrd-3.0.93-0.5-default


Nel caso di XEN:

title Xen -- console tty - 3.0.93-0.5
    root (hd0,1)
    kernel /boot/xen.gz vga=mode-0x317 noapic console=vga,com1 com1=9600
    module /boot/vmlinuz-3.0.93-0.5-xen root=/dev/sda1 vga=0x317 console=ttyS0 console=xvc0,9600
    module /boot/initrd-3.0.93-0.5-xen

Ovviamente ttyS0 è il nome della tty, da dmesg si vede l'indirizzo hardware 0x3f8 tipico di una com1:

Il parametro 9600 si riferisce alla velocità della seriale e può essere modificato secondo necessità.

L’esempio si riferisce ad un server SLES

Se l’avvio ha problemi, le modifiche si possono fare avviando la macchina con un CD Linux live, montando il disco di root su una directory (la classica /mnt) per modificare il fiel di boot.

 

Forums: 
Categoria: