Console seriale · 5 min read · Feb 02, 2026

Impostare una console seriale

Impostare una console seriale

Questo tutorial ti mostrerà come impostare una console seriale su un sistema Linux e collegarti ad essa tramite un cavo null modem. Questo è molto utile se il tuo server Linux è in una configurazione senza testa (senza tastiera o monitor), poiché ti consente di ottenere facilmente una console sul sistema se ci sono problemi (soprattutto problemi di rete, quando SSH non è disponibile). Alla fine, il menu GRUB apparirà tramite il collegamento seriale, così come i messaggi di avvio (output durante l’avvio del sistema). Sto usando Debian Etch sul server e Ubuntu Edgy sul mio client, anche se questo dovrebbe funzionare su qualsiasi distribuzione Linux.

Primi passi

Una delle cose più importanti da controllare è che tu abbia effettivamente una porta seriale sul server :). Dai un’occhiata al retro del tuo server e verifica se ha una porta seriale a 9 pin. La maggior parte delle schede madri ha una o due porte seriali. Sul sistema, controlla se Linux riconosce le porte seriali:

root@server:~# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) è un 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) è un 16550A

Questo mostra che il mio sistema ha una porta seriale, ttyS0 (ricordalo per dopo).

Configurazione di GRUB

Il passo successivo è modificare la configurazione di GRUB, in modo che invii i suoi messaggi alla console seriale. Una delle cose più importanti è impostare una password, altrimenti chiunque può collegare un cavo seriale, modificare la riga di configurazione di GRUB mentre il sistema si avvia (premendo il tasto “e”) e ottenere accesso root. Quando viene impostata una password, la modifica interattiva del menu sarà disabilitata, a meno che non venga inserita la password corretta. Per impostare la password, dobbiamo prima ottenere la versione crittografata.

Esegui grub e usa il comando “md5crypt” per crittografare la password:

grub> md5crypt

Password: **
Crittografato: $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1

Copia la versione crittografata della password (ne abbiamo bisogno per il passo successivo) e poi digita quit per uscire.

Ora, dobbiamo modificare la configurazione di GRUB. Modifica il file /boot/grub/menu.lst (digitando nano /boot/grub/menu.lst) e trova questa sezione:

## password ['--md5'] passwd
   # Se usato nella prima sezione di un file di menu, disabilita tutte le modifiche interattive
   # controllo (editor di voce di menu e riga di comando) e voci protette dal
   # comando 'lock'
   # e.g. password topsecret
   #      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
   # password topsecret

Sotto di essa, aggiungi:

password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1   
terminal --timeout=10 serial console

Sostituisci $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1 con la forma crittografata della tua password. La seconda riga dice a GRUB di inizializzare la porta seriale a 38.400 bps (la stessa velocità della console standard), 8 bit di dati, nessuna parità e 1 bit di stop (fondamentalmente, le impostazioni standard). Nota che –unit=0 significa che utilizzerà la prima porta seriale (ttyS0). Se stai usando la seconda porta seriale (ttyS1), cambiala in –unit=1. L’ultima riga dice a GRUB di mostrare il suo menu sia sulla linea seriale che sulla console (monitor).

Ora, dobbiamo anche modificare le sezioni del kernel, in modo che inviino messaggi alla console seriale. Alla fine di ogni riga del kernel, aggiungi console=tty0 console=ttyS0,38400n8 (sostituisci ttyS0 con la porta seriale corretta). Nel mio caso, è finita per apparire così:

title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686 (modalità utente singolo)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686 (modalità utente singolo)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686  
   savedefault  

Salva ed esci, premendo CTRL+O (per “output”, o salva il file), Invio (per accettare il nome del file) e CTRL+X (per uscire effettivamente).

Consenti accessi tramite Console Serial

Ora, il menu GRUB apparirà tramite la connessione seriale, ma non stiamo ancora ascoltando per accessi (non c’è ancora “getty” in esecuzione su di essa). Modifica il file /etc/inittab e trova questa sezione:

# Esempio di come mettere un getty su una linea seriale (per un terminale)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

Sotto di essa (non mi piace modificare le righe predefinite :P), aggiungi:

T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100

E questo è tutto. Il tuo server mostrerà ora il menu GRUB sulla console seriale e consentirà anche accessi (una volta che ha finito di avviarsi).

Testiamolo!

Ora che è tutto fatto, dobbiamo configurare il nostro client. Sto usando GtkTerm sul mio laptop, anche se qualsiasi programma terminale dovrebbe funzionare (purché possa utilizzare una porta seriale. Su Windows, HyperTerminal dovrebbe funzionare). Il mio laptop non ha una porta seriale, quindi sto usando un adattatore USB a Serial che ho comprato su eBay (crea un dispositivo ttyUSB0). Imposta il tuo programma terminale su queste impostazioni:

  • Porta (Linux): ttyS0 o ttyS1 (se il tuo sistema ha una porta seriale), o ttyUSB0 (se stai usando un convertitore USB a Serial).
  • Porta (Windows): COM1 o COM2
  • Bit per secondo: 38400
  • Bit di dati: 8
  • Parità: Nessuna
  • Bit di stop: 1
  • Controllo di flusso: Nessuno, anche se hardware (RTS/CTS) dovrebbe funzionare correttamente

Riavvia il server (probabilmente da una connessione SSH, o come hai modificato la configurazione di GRUB sopra) e poi collega il cavo null modem mentre si avvia (cioè, alla schermata del BIOS). Premi un tasto quando richiesto e otterrai qualcosa del genere:

Come usare la console seriale - menu GRUB

Questo significa che GRUB sta funzionando bene :). Premi invio e dovrebbe avviarsi, mostrando tutti i messaggi nella finestra del terminale. Una volta avviato, apparirà qualcosa del genere:

Come usare la console seriale - Avvio

Infine, accedi e controlla che funzioni bene:

Come usare la console seriale - Accesso effettuato

Congratulazioni, tutto è impostato e funziona bene.

Spero che ti sia piaciuto questo tutorial! :)

Daniel15 (Daniel Lo Nigro)
http://www.daniel15.com/
http://www.dansoftaustralia.net/

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.