<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux Serial HOWTO: Come posso impostare un terminale connesso al mio PC?</TITLE> <LINK HREF="Serial-HOWTO-9.html" REL=next> <LINK HREF="Serial-HOWTO-7.html" REL=previous> <LINK HREF="Serial-HOWTO.html#toc8" REL=contents> </HEAD> <BODY> <A HREF="Serial-HOWTO-9.html">Avanti</A> <A HREF="Serial-HOWTO-7.html">Indietro</A> <A HREF="Serial-HOWTO.html#toc8">Indice</A> <HR> <H2><A NAME="s8">8. Come posso impostare un terminale connesso al mio PC?</A></H2> <P>Leggete il <CODE> <A HREF="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Text-Terminal-HOWTO">Text-Terminal-HOWTO</A></CODE> per informazioni più dettagliate sui terminali. Le istruzioni in questa sezione descrivono come connettere un terminale, così come altri computer al vostro sistema Linux. <P> <H2><A NAME="ss8.1">8.1 Requisiti Hardware </A> </H2> <P>Assicuratevi di avere il cablaggio corretto. Un cavo null-modem comprato in un negozio di informatica può funzionare, ma quasi sicuramente non funzionerà il controllo di flusso hardware. Ma deve essere un cavo <EM>null modem</EM>! Molti negozi di computer lo chiamano cavo per stampanti seriali. Assicuratevi inoltre di stare usando la porta seriale, una DB25 o DB9 maschio, non la quella parallela ( femmina, DB25 o Centronics ). <P> <P>Per il connettore DB25, avete bisogno al minino di questo: <PRE> PC maschio DB25 Terminale DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data SG Signal Ground 7 --- 7 SG Signal Ground </PRE> <P>Questo cavo null modem funziona fra due computer che utilizzano il signale di handshake hardware RTS/CTS, ma molti terminali utilizzano l'handshake DTR che non può essere impostato con linux tramite "stty". Una soluzione è di impostare stty crtscts e connettere il pin 20 del terminale (DTR) con il pin 5 del computer (CTS). <PRE> PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data RTS Request To Send 4 --> 5 CTS Clear To Send CTS Clear To Send 5 <-- 4 RTS Request To Send DSR Data Set Ready 6 | DCD Carrier Detect 8 <-- 20 DTR Data Terminal Ready SG Signal Ground 7 --- 7 SG Signal Ground 6 DSR Data Set Ready | DTR Data Terminal Ready 20 --> 8 DCD Carrier Detect </PRE> <P> <P>Se sulla propria porta seriale si ha un connettore DB9, si provi quanto segue: <PRE> PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data SG Signal Ground 5 --- 7 SG Signal Ground </PRE> <P>In alternativa, un cavo null modem DB9-DB25 (come detto non può operare con un terminale con handshake hardware): <PRE> PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data 6 DSR Data Set Ready | DTR Data Terminal Ready 4 --> 8 DCD Carrier Detect GND Signal Ground 5 --- 7 GND Signal Ground DCD Carrier Detect 1 DSR Data Set Ready 6 <-- 20 DTR Data Terminal Ready RTS Request To Send 7 --> 5 CTS Clear To Send CTS Clear To Send 8 <-- 4 RTS Request To Send (RI Ring Indicator 9 not needed) </PRE> (Sì, i pin 2 e 4 hanno <EM>veramente</EM> significati opposti tra i connettori DB9 e quelli DB25!) <P>Se non state utilizzando un cavo completamente null modem, forse potete utilizzare il seguente trucchetto: sul connettore dalla parte del vostro computer collegate il RTS e il CTS assieme, e collegate anche DSR, DCD e DTR assieme. In questo modo, quando uno dei due computer richiede un signal di handshake lo otterrà ( da se stesso! ). <P>Adesso che avete il cavo giusto, collegate il vostro terminale al vostro computer. Se potete, impostate il terminale in modo da ignorare i segnali di controllo del modem. Provate ad usare 9600 bps, 8 data bits, 1 stop bit, no parità nella configurazione del terminale (oppure attivate la parità se volete essere un po' più sofisticati). <P> <H2><A NAME="ss8.2">8.2 Impostare <CODE>getty</CODE> (componente di <CODE>getty_ps</CODE>)</A> </H2> <P> <P>Consultate il vostro manuale di <EM>getty</EM> per altre applicazioni come ad esempio <EM>agetty</EM>. Aggiungete le impostazioni per il vostro terminale per <CODE>getty</CODE> se non sono già esistenti in <CODE>/etc/gettydefs</CODE>: <BLOCKQUOTE><CODE> <PRE> # Terminale Stupido a 38400 bps DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # Terminale Stupido a 19200 bps DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # Terminale Stupido a 9600 bps DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 </PRE> </CODE></BLOCKQUOTE> <P>Se lo desiderate potete far stampare a video da <CODE>getty</CODE> informazioni interessanti sul login. Nel mio esempio ho inserito il nome del sistema e la porta seriale. Potete aggiungere molte altre cose: <BLOCKQUOTE><CODE> <PRE> @B La velocità corrente in bps. @D La data corrente, nel formato MM/DD/YY. @L La porta seriale sulla quale è in esecuzione getty. @S Il nome del sistema. @T l'ora corrente, nel formato HH:MM:SS ( 24 ore ). @U IL numero degli utenti attualmente collegati. @V Il valore di VERSION. Per visualizzare un singolo carattere '@', potete usare sia '\@' sia '@@'. </PRE> </CODE></BLOCKQUOTE> <P>Una volta modificato <CODE>/etc/gettydefs</CODE>, potete verificare che la sintassi sia corretta digitando: <BLOCKQUOTE><CODE> <PRE> linux# getty -c /etc/gettydefs </PRE> </CODE></BLOCKQUOTE> <P> <P>Assicuratevi che non vi siano file di configurazione di <CODE>getty</CODE> oppure <CODE>uugetty</CODE> per la porta seriale alla quale il vostro terminale è collegato (<CODE>/etc/default/{uu}getty.ttyS</CODE><EM>N</EM> oppure <CODE>/etc/conf.{uu}getty.ttyS</CODE><EM>N</EM>), poiché può molto probabilmente interferire nell'esecuzione di <CODE>getty</CODE> su un terminale. Rimuovere questi file se esistono. <P>Editate il vostro file <CODE>/etc/inittab</CODE> per lanciare <CODE>getty</CODE> sulla porta seriale ( sostituendo con le corrette informazioni sul vostro sistema - porta, velocità e tipologia del terminale): <BLOCKQUOTE><CODE> <PRE> S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 </PRE> </CODE></BLOCKQUOTE> Riavviate <CODE>init</CODE>: <BLOCKQUOTE><CODE> <PRE> linux# init q </PRE> </CODE></BLOCKQUOTE> <P>A questo punto dovreste essere in grado di vedere un prompt di login sul terminale. Probabilmente dovrete premere <EM>invio</EM> per ottenere l'attenzione del terminale. <P> <H2><A NAME="ss8.3">8.3 Suggerimenti per configurare un PC come terminale seriale</A> </H2> <P> Molte persone configurano i loro PC come terminali connessi a un box linux. Per esempio, dei vecchi PC 8088 o 80286 sono perfetti per questo scopo. Tutto ciò di cui avete bisogno è un disco di boot DOS adatto al vostro tipo di terminale, e un programma di comunicazione da avviare. <CODE>kermit</CODE> è ideale a questo scopo. Potete trovare versioni precompilate di <CODE>kermit</CODE> per ogni sistema operativo esistente a <CODE> <A HREF="http://www.columbia.edu/kermit/">http://www.columbia.edu/kermit/</A></CODE>. Altri programmi DOS molto popolari come <CODE>procomm</CODE> funzionano molto bene. Assicuratevi di impostare corretamente le informazioni sulla porta seriale nelle impostazioni del programma di comunicazione del vostro terminale. <P> <HR> <A HREF="Serial-HOWTO-9.html">Avanti</A> <A HREF="Serial-HOWTO-7.html">Indietro</A> <A HREF="Serial-HOWTO.html#toc8">Indice</A> </BODY> </HTML>