Domanda

Qual è il modo migliore per configurare una macchina Linux in modo che ascolti sulla sua porta seriale le connessioni in entrata?Ho cercato molto su Google ma non riesco a trovare la giusta combinazione di comandi per farli effettivamente parlare!

Il mio obiettivo principale è fornire un'interfaccia seriale per eseguire istanze di VM kvm/qemu.Attualmente hanno solo un'interfaccia VNC (sono su server headless, senza X).Posso fare in modo che la VM crei un dispositivo seriale avviandolo con il file -serial:bandiera, ma come parlarci è tutto un altro problema.Entrambi i box eseguono Ubuntu 8.04.

È stato utile?

Soluzione

IL Linux Serial-HOWTO contiene molte informazioni dettagliate sulla comunicazione seriale in generale.Quello più specifico Howto sulla console seriale remota Linux è ciò che stai veramente cercando se vuoi poter accedere ai tuoi sistemi virtualizzati utilizzando la porta seriale come se fossi alla console.Come indicato da Hein, avrai bisogno di un cavo null modem e dovrai eseguire minicom sul terminale remoto.

La console Linux viene utilizzata in due modi, ognuno dei quali deve essere configurato separatamente per l'uso seriale.Puoi configurare il kernel per copiare i suoi messaggi sulla porta seriale, il che a volte è interessante per osservare l'avvio del sistema e quasi indispensabile se stai eseguendo il debug del kernel.(Ciò richiede il supporto del kernel e l'aggiornamento dei parametri di avvio in modo che il kernel sappia che desideri l'output seriale;Vedere Capitolo 5 del secondo howto.) Probabilmente sei più interessato ad accedere tramite la porta seriale, che richiede l'esecuzione di getty sulla porta seriale dopo l'avvio (proprio come il tuo sistema esegue già getty sui terminali virtuali dopo l'avvio), che è descritto in dettaglio dentro Capitolo 6 dell'howto.

Altri suggerimenti

Presumo che colleghi le due porte seriali utilizzando un cavo "null modem".

Utilizza un programma come minicom per parlare con il sistema remoto: probabilmente dovrai impostare i parametri di comunicazione ed eventualmente disattivare il controllo del flusso hardware (se il tuo cavo non ha le linee di controllo del flusso collegate).

Supponiamo che lo stai facendo su /dev/tty1.

nel guscio

chown *youruser* /dev/tty1

poi in uno script Perl chiamato example.pl

open PORT, "</dev/tty1" || die "Can't open port: $!";
while (defined ($_ = <PORT>))
{
 do_something($_);
}
close PORT;

Ovviamente c'è altro da fare se si vuole che si avvii automaticamente, si rinasca in caso di errore e così via.Ma l'idea di base è leggere dalla porta seriale come un file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top