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 topsecretSotto di essa, aggiungi:
password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=10 serial consoleSostituisci $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 vt100Sotto di essa (non mi piace modificare le righe predefinite :P), aggiungi:
T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100E 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:

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:

Infine, accedi e controlla che funzioni bene:

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/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.