HOWTO: Reindirizzare l'output della console di Linux su porta seriale su un altro computer
Scopo: In questo post impareremo come possiamo reindirizzare i messaggi di avvio della console di Linux a una porta seriale su un altro computer. In un mio precedente post, avevo spiegato come testare le porte seriali sotto Linux. Mi raccomando di leggerlo prima di leggere questo post ulteriormente.
Requisiti:
- Due computer con porta seriale: 1 con Linux (macchina 1) e un altro sistema operativo Windows / Linux (macchina 2)
- Un seriale null modem via cavo: per collegare entrambi i computer
- Software: Minicom (su Linux) e Hyper-terminale (su Windows)
Background:
Ci sono tre parti per reindirizzare l'output sulla porta seriale di un altro computer dal momento in cui si avvia la macchina 1.
a) Emissione di schermo Grub
b) Emissione di messaggi di avvio dal momento in cui si preme "Invio" alla schermata di GRUB al momento in cui si vede la console di login.
c) Emissione di tutto, dalla console in poi accesso
Di solito quando si avvia la macchina con Linux in primo luogo vedete le informazioni del BIOS, quindi la schermata GRUB, il boot avviene e finalmente si vede la console di login. Andremo passo-passo per vedere come reindirizzare ognuno di quelli a partire dalla schermata di GRUB.
Utilità:
Questa tecnica è utile in molte circostanze quali:
- Debug Risoluzione dei problemi di avvio
- Nessuna uscita disponibile sul monitor
- Problemi di rete
- Copia e ispezionando importanti messaggi di boot produce da script
Fase 1: collegare entrambe le macchine
Il primo passo sarebbe quello di collegare entrambe le macchine tramite il cavo seriale null modem.
Macchina 1 - La macchina la cui uscita ci favore di macchina 2
Machine 2 - La macchina su cui vedremo l'uscita della macchina 1
Passo 2: Avviare una porta emulatore di terminale seriale
Sulla macchina 2, lanciare un emulatore di terminale come minicom (se su Linux) o TeraTerm o HyperTerminal (se su Windows). Per questo post, io parto dal presupposto che stiamo utilizzando il programma minicom sulla macchina che esegue Debian Linux. Per lanciare tipo minicom in:
# minicom
Verificare che la porta seriale è configurata con le impostazioni seguenti:
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyS0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 38400 8N1 |
| F - Hardware Flow Control : Yes |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
Nota: È possibile farlo premendo Ctrl + A e poi premere il tasto 'z'. E poi premere il tasto 'O' e navigare opzione "Serial Port Setup".
In sostanza, non importa quale programma si usi, assicuratevi di aver seguito le impostazioni per la configurazione della porta seriale:
- (depending on if your system as one or two serial ports) Macchina 1 - Porto (Linux): ttyS0 o ttyS1 (a seconda se il sistema di una o due porte seriali)
- Machine 2 - Port (Windows / Linux): COM1/ttys0 o COM2/ttys1
- Bit per secondo: 38400
- Bit di dati: 8
- Parità: Nessuna
- Bit di stop: 1
Passaggio 3: Modifica dei file di configurazione
Tutte le seguenti modifiche sarò me fatto sulla macchina 1.
a) Reindirizzamento schermata di GRUB
Vai a macchina 1 e modificare il file '/ boot / grub / menu.lst':
# nano /boot/grub/menu.lst
e aggiungere le seguenti righe (in verde) da qualche parte dopo la sezione Password:
## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# eg password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
Salvare e uscire dal file. Riavviare il computer 1 e si dovrebbe essere in grado di vedere il seguente output sulla macchina 2:
Nota: Se si sta utilizzando lilo come bootloader quindi modificare il file lilo.conf conseguenza.
b) Reindirizzamento processo di avvio
Aggiungere le seguenti righe alla vostra sezione del kernel in menu.lst:
# nano /boot/grub/menu.lst
title Debian GNU/Linux, kernel 2.6.26-1-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda1 ro vga=791 quiet console=tty0 console=ttyS0,38400n8
initrd /boot/initrd.img-2.6.26-1-686
Salvare e uscire dal file. Riavviare il computer 1 e si dovrebbe essere in grado di vedere il seguente output sulla macchina 2:
Nota: In primo luogo si vedrà l'uscita schermata di GRUB, proprio come abbiamo visto al punto 3 (a), e poi si vedrà il processo di avvio.
c) Reindirizzare la console di login
Modificare il file '/ etc / inittab' dopo aver fatto una copia di backup:
# nano /etc/inittab
e aggiungere le seguenti righe verso la fine:
T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100
T1:23:respawn:/sbin/getty -L ttyS1 38400 vt100
Salvare e uscire dal file. Riavviare il computer 1 e si dovrebbe essere in grado di vedere il seguente output sulla macchina 2, dopo la schermata di GRUB (fase 3a) e il processo di avvio (fase 3b) Uscite:
Finalmente è ora possibile accedere al tuo Macchina 1 Macchina da 2 tramite una connessione seriale, proprio come si farebbe con SSH in qualsiasi altra macchina Linux.
Questo è tutto! Godetevi Porting di serie!
















9 giugno 2009 alle 23:44
[...] Per saperne di come reindirizzare i messaggi della console di Linux su porte seriali su un'altra macchina. Linux Desktop remoto - Parte 1: connettersi in remoto a sessione di GNOME usando VNCAnnouncement: Linux Desktop remoto SeriesHOWTO: Reindirizzare l'output della console di Linux su porta seriale su un'altra macchina Share and Enjoy: [...]
4 Settembre 2009 alle 03:39
Grazie mille, molto utile, e sorprendentemente difficile trovare informazioni.
Rispondi a questo commento
24 febbraio 2011 alle 09:17
Perchè non 115200 baud?
Se il kernel genera un sacco di messaggi, questo rallenta la macchina, in quanto la stampa su porta seriale della console non è tamponato.
Rispondi a questo commento
Robert Wolfe Rispondi:
18 novembre, 2011 alle 08:39
Perché, IIRC (e sono stato un sysop BBS da 20 anni) 38400 è il più alto UART standard possono gestire. Qualsiasi cosa più probabilmente otterrà altro che spazzatura.
Rispondi a questo commento
12 Ott 2011 alle 02:20
E 'possibile reindirizzare tutti i dati ricevuti dal com a un altro programma? Capisco che minicom reindirizzamento funziona solo una volta - è quando comincia solo lavoro. Ma io voglio collegare a com e reindirizzare tutti i dati in php per esempio.
Grazie.
Rispondi a questo commento