Appunti seriali

Autore: Matteo Lucarelli
ultima versione su: matteolucarelli.altervista.org
Appunti sparsi sull'uso delle porte seriali

SERVER

getty: è un programa utile a gestire terminali, fisici o virtuali (tty). Quando viene iniziata la connessione chiede uno username e esegue il programma 'login' per autenticare l'utente. Si utilizza lato server per stabilire una connessione seriale autenticata

agetty: alternativa a getty. In molti sistemi (ad esempio Debian) è il programma utilizzato di default.

per rendere disponibile una console seriale in linea di massima è sufficiente dare il comando:

getty ttyS0 115200
oppure aggiungere nella inittab la linea:
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

CLIENT

Per gli usi più semplici sono disponibili diversi terminali grafici, ad esempio gtkterm , integrato con GNOME e commi integrato con KDE.

Per gli usi più complessi in ogni distribuzione Linux è disponibile il programma minicom.

MINICOM

E' un terminale seriale molto completo e stabile.

argomenti più utili:

-s     : avvia in setup, senza tentare di connettersi.
-o     : avvia senza inizializzare. Utile per riprendere una sessione interrorra senza reset (Quit)
-c on  : avvia il programma abilitando l'utilizzo dei colori
-p DEV : avvia la comunicazione con la seriale (o lo pseudo terminale) DEV. Ad esempio /dev/ttyS0.

come parametro di avvio può essere passata un stringa

minicom STRINGA
in tal caso la comunicazione verrà inizializzata dal file .minirc.STRINGA nella home dell'utente. Se il file non esiste verrà creato dal programm a al salvataggio delle impostazioni. Il file di inzializzazione di default è .minirc.dfl. In questo modo è possibile salvare e richiamare all'avvio numerose impostazioni.

Normalmente i tasti premuti durante l'esecuzione del programma vengono inviati alla porta collegata. Esiste quindi una "sequenza di escape" per poter accedere ai comandi del programma. Di default tale sequenza è [CTRL][a], quindi per inviare il comando di uscita (z) si dovrà premere prima [CTRL][a] e poi [x]. La sola pressione [CTRL][a] visualizza inoltre la barra di stato. In ogni momento la pressione del tasto [ESC] annulla la funzione in corso.

principali comandi:

[z]: visualizza l'help dei comandi
[x]: disconnette ed esce
[e]: abilita disabilita l'eco dei caratteri inviati 
    (necessario per vedere ciò che si sta scrivendo sulla porta collegata)
[s]/[r]: invia o riceve dei file
L'invio e la ricezione di file può avvenire tramite protocolli differenti (xmodem, zmodem, ecc). il protocollo scelto deve naturalmente essere lo stesso da entrambi i lati della comunicazione. Il protocollo ASCII in invio serve ad inviare il contenuto di un file locale come se lo si stesse digitando.

KERMIT

E' un protocollo di comunicazione e trasmissione seriale che permette l'emulizione di terminale, l'esecuzione di script e lo scambio di file.

Ampiamente diffuso e multipiattaforma. Si dice che sia il programma in assoluto più portato dopo "HelloWord".

Le implementazioni piu famose sono ckermit (implementazione ufficiale multipiattaforma), gkermit (versione GNU), kermit95 (implementazione ufficiale per windows).

La homepage del progetto presso la columbia university: http://www.columbia.edu/kermit/.

minicom supporta il protocollo kermit.

NOTE

La porta seriale ha spesso i permessi settati a 660, quindi non è possibile nè leggervi nè scrivervi a meno che si sia root oppure si faccia parte del corretto gruppo. Quindi è necessario verificare il gruppo:

ls -l /dev/ttyS0
ed aggiungere il proprio utente a quel gruppo (normalmente perchè la modifica dei gruppi abbia effetto è necessario effettuare un altro login).

Per modificare i parameteri della porta seriale da console è disponibile il comando setserial.

setserial -a /dev/ttyS0
stampa a video le impostazioni della porta seriale specificata
setserial /dev/ttyS0 autoconfigure
tenta di autoconfigurare la porta

Il nome delle porte seriali nei sistemi Unix (tty) deriva dalla parola teletype, visto che originariamente le porte seriali venivano utilizzate a questo scopo.

In alcuni sistemi le porte seriali possono essere identificate anche deai dispositivi cua (/dev/cua0, ecc.)

I cavi seriali non sono tutti uguali, ne esistono di tue tipi: diretti e incrociati. Gli incrociati vengono anche chiamati cavi "null modem". Il tipo do cavo necessario ad una sessione di terminale seriale è quello incrociato, cioè in cui il contatto tx (trasmissione) di un capo è connesso al contatto rx (ricezione) dell'altro capo, e viceversa.

LINKS

serial HOWTO di David S.Lawyer

Linux Serial HOWTO in italiano

serial programming HOWTO di Gary Frerking

PiTux, una leggerissima distribuzione per trasformare un inservibile PC in un terminale seriale.

Tiny serial, un interessante esempio di programmazione seriale (un terminale in 4kB di codice)

matteolucarelli.altervista.org
©opyright info