Linux Serial HOWTO <author> di Greg Hankins <date>versione 1.12, Luglio 1998 <abstract> Questo documento descrive le funzionalità delle porte seriali non descritte dal Text-Terminal-HOWTO o dal Serial-Programming-HOWTO. Riguarda principalmente getty, schede seriali multiporta e i modem. Aggiornato da David S.Lawyer <htmlurl url="mailto:bf347@lafn.org" name="bf347@lafn.org">. Traduzione italiana a cura di Christopher Gabriel, <htmlurl url="mailto:cgabriel@pluto.linux.it" name="cgabriel@pluto.linux.it"> </abstract> <toc> <sect>Introduzione <p> Questo è il Linux Serial HOWTO. Descrive in modo dettagliato aspetti sulle porte seriali che non sono trattati in altri HOWTO. Include anche come impostare un modem in ambiente linux, qualche trucchetto e una sezione per la risoluzione dei problemi. Esistono altri HOWTO per i terminali ( rif. <ref id="related_howtos" name="HOWTO correlati">). Questo documento è indirizzato a Linux per macchine con hardware x86, ma potrebbe essere di aiuto per altre architetture. <sect1>Copyright <p> Copyright (c) 1993 - 1997 di Greg Hankins, 1998 di David Lawyer. Questo documento può essere distribuito entro i termini descritti dalla licenza LDP a <tt><htmlurl url="http://sunsite.unc.edu/LDP/COPYRIGHT.html" name="http://sunsite.unc.edu/LDP/COPYRIGHT.html"></tt>. Questo documento non può essere distribuito in forma modificata senza il consenso dell'autore. <sect1> HOWTO correlati sulle porte seriali <label id="related_howtos"> <p> <itemize> <item><tt><htmlurl url="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-Programming-HOWTO" name="Serial-Programming-HOWTO"></tt> vi può aiutare a scrivere programmi in linguaggio C ( o parte di questi ) che possono gestire una porta seriale, e altro ancora. <item><tt><htmlurl url="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Text-Terminal-HOWTO" name="Text-Terminal-HOWTO"></tt> contiene tutto ciò che riguarda i terminali seriali (FIXME: dumb terminals? ). </itemize> <sect1> Note <p> Io, David Lawyer, sono il nuovo mantenitore (Greg Hawkins è l'autore del documento originale ). Questa è una piccola revisione e non ho controllato se tutte le nozioni qui esposte sono aggiornate. Questo comporta tanto lavoro. Per cortesia informatemi se c'è qualcosa di sbagliato e/o mancante. In futuro dividerò questo HOWTO in tre parti: <itemize> <item> Informazioni sui terminali da aggiungere al Text-Terminal-HOWTO <item> Informazioni sui modem in un nuovo Modem HOWTO <item> Ulteriori informazioni sulle porte seriali aggiunte a questo documento. </itemize> Tutto questo avverrà (spero) nell'agosto o nel Settembre 1998. <sect1> Nuove versioni di questo documento <p> Nuove versioni del Linux Serial HOWTO saranno disponibili a <tt><htmlurl url="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO" name="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO"></tt> e nei siti mirror. Esistono anche altri formati, come il PostScript e DVI, reperibili nella cartella <tt/other-formats/ . Il Serial-HOWTO è anche disponibile a <tt><htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html" name="http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html"></tt> e sarà inviato al newsgroup <tt><htmlurl url="news:comp.os.linux.answers" name="comp.os.linux.answers"></tt> mensilmente. <sect1>Datemi un aiuto! <p> Per favore inviatemi qualunque domanda, commento, suggerimento, o materiale addizionale. Sono sempre curioso di sapere cosa ne pensate di questo HOWTO. E sono spesso allora ricerca di miglioramenti! Chiedetemi esattamente cosa non capite, o cosa potrebbe essere descritto in maniera più chiara. Potete contattarmi via email a <tt><htmlurl url="mailto:bf347@lafn.org" name="bf347@lafn.org (David Lawyer)"></tt>. <sect>Hardware Seriale Supportato <p> Linux può lavorare sicuramente con il seguente hardware seriale. <sect1>Schede Seriali Standard per PC <p> <itemize> <item>Le schede seriali standard per PC (COM1 - COM4), alle quali possono essere collegate periferiche esterne ( modem, mouse seriali, ecc. ). Da quando queste non vengono più inserite nei PC, dato che sono integrate alla scheda madre, sono piuttosto difficili da trovare nei negozi specializzati. <item>Modem interni standard per PC (COM1 - COM4) <item>Quickpath Systems Port-Folio 550e (consentono di utilizzare gli IRQ 3, 4, 5, 9, 10, 11, 12, e 15) </itemize> <p> Nota: a causa di un conflitto di indirizzo, non potete usare la porta COM4 e la scheda video IBM8514 simultaneamente. È dovuto ad un errore presente nella scheda IBM8514. <sect1>Modem Plug And Play (PnP) <p> La maggior parte dei modem attualmente sono PnP e molti di questi ( con qualche accorgimento ) possono operare con Linux. La miglior scelta è prendere un modem che abbia dei jumper per disattivare la funzionalità PnP. In molti casi, se impostate i jumper per un determinato numero di porta COM e IRQ, la funzionalità PnP verrà disattivata. Potete anche disattivare il PnP dal BIOS del vostro computer. Se non potete fare tutto questo, allora provate così: <itemize> <item>Avviate Win95/98, configurate il modem, e controllate che queste impostazioni siano mantenute anche quando avviate Linux. Se non è così, allora: <item>Avviate Win95/98, configurate il modem, e quindi fate un <em/warm boot/ di Linux in modo che le impostazioni restino inalterate. Potete eseguire questo con il boot loader <tt/loadlin/. <item>Prendetevi i PnP Tools da <tt><htmlurl url="http://www.redhat.com/linux-info/pnp" name="http://www.redhat.com/linux-info/pnp"></tt>. </itemize> <sect1>Schede Seriali Multiporta "Non-Intelligenti" (con UART 8250/16450/16550A) <p>Sono dette anche "Adattatori seriali".<newline> * => "setserial" mostra maggiori dettagli sulla configurazione. <itemize> <item>AST FourPort e cloni (4 porte) * <item>Accent Async-4 (4 porte) * <item>Arnet Multiport-8 (8 porte) <item>Bell Technologies HUB6 (6 porte) <item>Boca BB-1004 (4 porte), BB-1008 (8 porte), BB-2016 (16 porte) * <item>Boca IOAT66 (6 porte) <item>Boca 2by4 (4 porte seriali, 2 porte parallele) <item>Byterunner (basso costo) <item>Computone ValuePort V4-ISA (compatibile con AST FourPort) * <item>Digi PC/8 (8 porte) <item>GTEK BBS-550 (8 porte) Guardatevi anche il mini-howto su questa scheda. <item>HUB-6 See Bell Technologies. <item>Longshine LCS-8880, Longshine LCS-8880+ (compatibile AST FourPort) <item>Moxa C104, Moxa C104+ (compatibile AST FourPort) <item>PC-COMM (4 porte) <item><url url="http://www.sealevel.com" name="Sealevel Systems"> COMM-2 (2 porte), COMM-4 (4 porte) e COMM-8 (8 porte) <item>SIIG I/O Expander 2S IO1812 (4 porte) <item>STB-4COM (4 porte) <item>Twincom ACI/550 <item>Usenet Serial Board II (4 porte) * </itemize> <p> In generale, Linux supporta qualsiasi scheda che utilizza un UART 8250, 16450, 16550, 16550A, 16650 (o compatibili), o un modem interno che emuli una delle suddette UART. <p> Nota: la BB-1004 e BB-1008 non supportano linee DCD e RI, e quindi non sono utilizzabili dai modem in entrata. Lavorano molto bene in altri ambiti. <sect1>Schede Seriali Multiporta "Intelligenti" <p> Assicuratevi che sia disponibile un driver per Linux funzionante. Questa lista è da aggiornare. <itemize> <item>Comtrol RocketPort (36MHz ASIC; 4, 8, 16 o 32 porte)<newline> Contatti: <tt><htmlurl url="mailto:info@comtrol.com" name="info@comtrol.com"></tt> oppure <tt><htmlurl url="http://www.comtrol.com" name="http://www.comtrol.com"></tt><newline> stato del driver: assistenza tecnica di Comtrol<newline> locazione del driver: <tt><htmlurl url="ftp://tsx-11.mit.edu/pub/linux/packages/comtrol" name="ftp://tsx-11.mit.edu/pub/linux/packages/comtrol"></tt> <item>Computone IntelliPort II (16MHz 80186; 4, 8, o 16 porte),<newline> IntelliPort II EXpandable (20MHz 80186; 16 - 64 ports)<newline> contatto: Michael H. Warfield, <tt><htmlurl url="mailto:mhw@wittsend.atl.ga.us" name="mhw@wittsend.atl.ga.us"></tt><newline> stato del driver: pre-ALPHA <item>Cyclades Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 porte),<newline> Cyclom-Z (25MHz MIPS R3000; 8 - 128 porte)<newline> contatto: <tt><htmlurl url="mailto:sales@cyclades.com" name="sales@cyclades.com"></tt> oppure <tt><htmlurl url="http://www.cyclades.com" name="http://www.cyclades.com"></tt><newline> stato del driver: assistenza tecnica di Cyclades<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.cyclades.com/pub/cyclades" name="ftp://ftp.cyclades.com/pub/cyclades"></tt> e incluso nel Kernel Linux sin dalla versione 1.1.75 <item>Decision PCCOM8 (8 porte)<newline> contatto: <tt><htmlurl url="mailto:pccom8@signum.se" name="pccom8@signum.se"></tt><newline> locazione del driver: <tt><htmlurl url="ftp://ftp.signum.se/pub/pccom8" name="ftp://ftp.signum.se/pub/pccom8"></tt> <item>Digi PC/Xi (12.5MHz 80186; 4, 8, o 16 porte),<newline> PC/Xe (12.5/16MHz 80186; 2, 4, o 8 porte),<newline> PC/Xr (16MHz IDT3041; 4 o 8 porte),<newline> PC/Xem (20MHz IDT3051; 8 - 64 porte)<newline> contatto: <tt><htmlurl url="mailto:sales@dgii.com" name="sales@dgii.com"></tt> oppure <tt><htmlurl url="http://www.dgii.com" name="http://www.dgii.com"></tt><newline> stato del driver: ssistenza tecnica di Digi<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.dgii.com/drivers/linux" name="ftp://ftp.dgii.com/drivers/linux"></tt> e incluso nel Kernel Linux sin dalla versione 2.0 <item>Digi COM/Xi (10MHz 80188; 4 o 8 porte)<newline> contatto: Simon Park, <tt><htmlurl url="mailto:si@wimpol.demon.co.uk" name="si@wimpol.demon.co.uk"></tt><newline> stato del driver: ALPHA<newline> nota: Simon è spesso assente per mesi per motivi di lavoro e non può rispondere alle email. Mark Hatle, <tt><htmlurl url="mailto:fray@krypton.mankato.msus.edu" name="fray@krypton.mankato.msus.edu"></tt> si è gentilmente reso disponibile per farvi avere i driver, se ne avete bisogno. Mark non mantiene il driver e non fa assistenza. <item>Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 porte)<newline> contatto: <tt><htmlurl url="mailto:sales@equinox.com" name="sales@equinox.com"></tt> oppure <tt><htmlurl url="http://www.equinox.com" name="http://www.equinox.com"></tt><newline> stato del driver: assistenza tecnica di Equinox<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.equinox.com/library/sst" name="ftp://ftp.equinox.com/library/sst"></tt> <item>GTEK Cyclone (16C654 UARTs; 6, 16 e 32 porte),<newline> SmartCard (24MHz Dallas DS80C320; 8 porte),<newline> BlackBoard-8A (16C654 UARTs; 8 porte),<newline> PCSS (15/24MHz 8032; 8 porte)<newline> contatto: <tt><htmlurl url="mailto:spot@gtek.com" name="spot@gtek.com"></tt> oppure <tt><htmlurl url="http://www.gtek.com" name="http://www.gtek.com"></tt><newline> stato del driver: assistenza tecnica di GTEK<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.gtek.com/pub" name="ftp://ftp.gtek.com/pub"></tt> <item>Hayes ESP (COM-bic; 1 - 8 porte)<newline> contatto: Andrew J. Robinson, <tt><htmlurl url="mailto:arobinso@nyx.net" name="arobinso@nyx.net"></tt> oppure <tt><htmlurl url="http://www.nyx.net/˜arobinso" name="http://www.nyx.net/˜arobinso"></tt><newline> stato del driver: assistenza dell'autore<newline> locazionde del driver: <tt><htmlurl url="http://www.nyx.net/˜arobinso" name="http://www.nyx.net/˜arobinso"></tt> e incluso nel Kernel Linux dalla versione 2.1.15 <item>Maxpeed SS (Toshiba; 4, 8 e 16 porte)<newline> contatto: <tt><htmlurl url="mailto:info@maxpeed.com" name="info@maxpeed.com"></tt> oppure <tt><htmlurl url="http://www.maxpeed.com" name="http://www.maxpeed.com"></tt><newline> stato del driver: assistenza tecnica di Maxpeed<newline> locazione del driver: <tt><htmlurl url="ftp://maxpeed.com/pub/ss" name="ftp://maxpeed.com/pub/ss"></tt> <item>Moxa C218 (12MHz 80286; 8 porte),<newline> Moxa C320 (40MHz TMS320; 8 - 32 porte)<newline> contatto: <tt><htmlurl url="mailto:info@moxa.com.tw" name="info@moxa.com.tw"></tt> oppure <tt><htmlurl url="http://www.moxa.com.tw" name="http://www.moxa.com.tw"></tt><newline> stato del driver: assistenza di Moxa<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.moxa.com.tw/drivers/c218-320/linux" name="ftp://ftp.moxa.com.tw/drivers/c218-320/linux"></tt> <item>SDL RISCom/8 (Cirrus Logic CD180; 8 porte)<newline> contatto: <tt><htmlurl url="sales@sdlcomm.com" name="sales@sdlcomm.com"></tt> oppure <tt><htmlurl url="http://www.sdlcomm.com" name="http://www.sdlcomm.com"></tt><newline> stato del driver: assistenza di SDL<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.sdlcomm.com/pub/drivers" name="ftp://ftp.sdlcomm.com/pub/drivers"</tt> <item>Specialix SIO (20MHz Zilog Z280; 4 - 32 porte),<newline> XIO (25MHz Zilog Z280; 4 - 32 porte)<newline> contatto: Simon Allen, <tt><htmlurl url="mailto:simonallen@cix.compulink.co.uk" name="simonallen@cix.compulink.co.uk"></tt><newline> stato del driver: BETA<newline> locazione del driver: <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial" name="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial"></tt> <item>Stallion EasyIO-4 (4 ports), EasyIO-8 (8 porte), e<newline> EasyConnection (8 - 32 porte) - ognuna con Cirrus Logic CD1400 UARTs,<newline> Stallion (8MHz 80186 CPU; 8 o 16 porte),<newline> Brumby (10/12 MHz 80186 CPU; 4, 8 o 16 porte),<newline> ONboard (16MHz 80186 CPU; 4, 8, 12, 16 o 32 porte),<newline> EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 porte)<newline> contatto: <tt><htmlurl url="mailto:sales@stallion.com" name="sales@stallion.com"></tt> oppure <tt><htmlurl url="http://www.stallion.com" name="http://www.stallion.com"></tt><newline> stato del driver: assistenza di Stallion<newline> locazione del driver: <tt><htmlurl url="ftp://ftp.stallion.com/drivers/ata5/Linux" name="ftp://ftp.stallion.com/drivers/ata5/Linux"></tt> e incluso nel Kernel di Linux dalla versione 1.3.27 </itemize> <p> Una relazione sui prodotti di Comtrol, Cyclades, Digi e Stallion è stata inserita nel numero di Giugno 1995 del <em/Linux Journal/. L'articolo è disponibile a <tt><htmlurl url="http://www.ssc.com/lj/issue14" name="http://www.ssc.com/lj/issue14"></tt>. <sect1>Hardware seriale non supportato <sect2> I Winmodem non funzionano <p> I modem che vengono definiti "Winmodem", ad esempio il USR Sportster Winmodem e l'IBM Aptiva MWAVE, <em/non/ sono supportati da Linux. Questi modem hanno un design proprietario che richiede speciali driver per Windows. Evitate questo tipo di modem. <sect2>I driver per Rockwell (RPI) possono funzionare. <p> I modem che richiedono i driver Rockwell RPI non sono completamente funzionanti dato che i driver software non funzionano con Linux. La RPI comprime la trasmissione e ne corregge gli errori usando software MS attraverso la CPU del vostro computer. Se desiderate utilizzare questi modem senza l'uso dell'RPI ( quindi senza compressione né correzione di errore ) allora potete facilmente disabilitare la RPI inviando al modem ( attraverso una string di inizializzazione ) il comando appropriato: +HO <sect>Che cosa rappresentano i nomi delle porte seriali? <p> Una porta di I/O è un mezzo che permette l'ingresso e l'uscita di dati da un computer. Esistono svariati tipi di porte I/O come, ad esempio, le porte seriali, parallele, controller per disk drive, schede ethernet, ecc. Qua tratteremo le porte seriali, dato che i modem e i terminali sono periferiche seriali. Ogni porta seriale deve avere un indirizzo di I/O, e un interrupt (IRQ). Esistono quattro porte seriali corrispondenti a COM1 - COM4: <tscreen><verb> ttyS0 (COM1) indirizzo 0x3f8 IRQ 4 ttyS1 (COM2) indirizzo 0x2f8 IRQ 3 ttyS2 (COM3) indirizzo 0x3e8 IRQ 4 ttyS3 (COM4) indirizzo 0x2e8 IRQ 3 </verb></tscreen> Se Linux non riconosce nessuna porta seriale quando si avvia, allora assicuratevi che il supporto seriali sia attivato e compilato nel kernel. In questo documento, mi riferisco a COM1 come <tt/ttyS0/, COM2 come <tt/ttyS1/, COM3 come <tt/ttyS2/, e COM4 come <tt/ttyS3/. Da notare il fatto che per default Linux utilizza gli stessi indirizzi IRQ per più porte. Non potete usare tutte le porte con questa configurazione, e dovete re-assegnare le porte con differenti indirizzi IRQ. Potete fare riferimento alla sezione <REF id="irqaddr" name="Posso usare più di due porte seriali?"> per impostare gli IRQ. <sect1> Periferiche: Modem, Mouse. <P>In qualche installazione vengono create due periferiche addizionali: <tt>/dev/modem</tt> per il vostro modem e <tt>/dev/mouse</tt> per il mouse. Tutte e due sono link simbolici alla periferica appropriata in <tt>/dev</tt> che avete specificato durante l'installazione. <P>Ci sono state discussioni sul merito di <tt>/dev/mouse</tt> e <tt>/dev/modem</tt>. Io scoraggio apertamente l'utilizzo di questi link. Ad esempio, se desiderate utilizzare il vostro modem per chiamare all'esterno potrete avere problemi poiché il lock file può non funziona correttamente con <tt>/dev/modem</tt>. Utilizzateli se li trovate comodi, ma <em/assicuratevi che puntino alla periferica corretta/. In ogni caso, se cambiate o rimuovete questi link, qualche applicazione (<tt/minicom/per esempio ) andranno configurate nuovamente. <sect1> La periferica <tt>cua</tt> <P>Ogni periferica tty ha una corrispondere periferica cua. Si è discusso a lungo circa la rimozione delle cua poiché forse è meglio utilizzare le ttyS. La principale differenza tra cua e ttyS è che per un comune comando "open" ( senza argomenti ) all'interno di una applicazione, la cua aprirà ugualmente la porta anche se i segnali di controllo del modem ( come il DCD ) non lo permettono ( stty deve essere impostato per controllare i segnali del modem ). In una situazione del genere una porta ttyS si rifiuterebbe di aprire la porta, ma può essere forzata a farlo con parametri specifici ai comandi. <sect1>Le porte seriali e la numerazione in <tt>/dev</tt> <p> <tscreen><verb> /dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64 /dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65 /dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66 /dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67 </verb></tscreen> Da notare che tutte le distribuzioni devono avere queste periferiche già impostate correttamente ( a meno che cua non venga abolita ). Potete verificare questo con: <tscreen><verb> linux% ls -l /dev/cua* linux% ls -l /dev/ttyS* </verb></tscreen> <sect2>Creare periferiche in <tt>/dev</tt><label id="dev"> <p> Se non trovate una periferica allora dovete crearla con il comando <tt/mknod/. Se per esempio volete creare una periferica per <tt/ttyS0/: <tscreen><verb> linux# mknod -m 666 /dev/cua0 c 5 64 linux# mknod -m 666 /dev/ttyS0 c 4 64 </verb></tscreen> Potete usare anche lo script <tt/MAKEDEV/, che si trova in <tt>/dev</tt>. Questo semplifica la creazione di periferiche. Un altro esempio, sempre per creare una <tt>ttyS0</tt>: <tscreen><verb> linux# cd /dev linux# ./MAKEDEV ttyS0 </verb></tscreen> Questo script si occupa di creare le periferiche di ingresso e di uscita, e impostare correttamente i permessi. <sect1>Piccole note per Schede Multiporta Non Intelligenti <p> La periferica che viene utilizzata dalla vostra scheda multiporta dipende proprio dal tipo di scheda installata. Alcune di queste sono dettagliatamente descritte in <tt>rc.serial</tt> o in <tt>0setserial</tt> che si trova nel pacchetto <tt>setserial</tt>. Raccomando vivamente di prendere la più recente versione di <tt/setserial/ se state provando ad installare una scheda multiporta. Probabilmente avrete bisogno di creare queste periferiche. Potete utilizzare sia il comando <tt/mknod/ sia lo script <tt/MAKEDEV/. Le periferiche per schede multiporta sono create aggiungendo ``64 + numero porta''. Quindi, se volete creare una periferica del tipo <tt>ttyS17</tt>, dovrete digitare: <tscreen><verb> linux# mknod -m 666 /dev/cua17 c 5 81 linux# mknod -m 666 /dev/ttyS17 c 4 81 </verb></tscreen> Notate che ``64 + 17 = 81''. Usando invece lo script <tt/MAKEDEV/, dovrete digitare: <tscreen><verb> linux# cd /dev linux# ./MAKEDEV ttyS17 </verb></tscreen> <p> Nota: il manuale SIIG per la IO1812 che descrive la COM5-COM8 è errato. Devono essere COM5=0x250, COM6=0x258, COM7=0x260, e COM8=0x268. <p> Nota: il registro di stato per l'interrupt della Digi PC/8 e'0x140. <p> Nota: per una AST Fourport dovrete specificare <tt/skip_test/ in <tt/rc.serial/. <sect1>Note per Schede Multiporta Intelligenti <p> Leggete le informazioni che trovate assieme al driver. Queste schede utilizzano particolari periferiche, non quelle predefinite. Queste informazioni variano dipendentemente dall'hardware. <sect>Programmi interessanti di cui dovete essere al corrente <sect1>Cosa è <tt/getty/? <p> <tt/getty/ è un applicativo che gestisce i processi di login quando accedete ad un sistema Unix. Dovrete utilizzare <tt/getty/ se desiderate accedere al vostro Linux box con un modem. Al tempo stesso, non ne avete bisogno se chiamate all'esterno dallo stesso box. Esistono attualmente tre versioni che sono comunemente utilizzate con Linux: <tt/getty_ps/, <tt/mgetty/ e <tt/agetty/. La sintassi per questi programmi è differente, quindi controllate e assicuratevi di utilizzare la corretta sintassi per qualunque <tt/getty/ decidiate di utilizzare. <sect2><tt>getty_ps</tt> <p> Molte distribuzioni hanno il pacchetto <tt/getty_ps/ installato ( Debian usava agetty, ma adesso è passata a mgetty). Questo contiene due applicativi: <tt/getty/, il quale è utilizzato per le console e i terminali, e <tt/uugetty/ per i modem. Io uso questa versione di <tt/getty/, quindi è quella su cui porrò maggiore attenzione. <sect2><tt/mgetty/ <p> <tt/mgetty/ è una versione di <tt/getty/ usata per lo più con i modem. Può essere utilizzata per terminali cablati, ma la documentazione è al 99% incentrata sui modem. Oltre a permettere le connessioni esterne, <tt/mgetty/ fornisce il supporto per i FAX e il riconoscimento automatico del PPP. La documentazione di <tt/mgetty/ (fornita in formato texinfo) è buona, e non necessita di aggiunte da parte mia. Fate riferimento a quella documentazione per le istruzioni di installazione. Potete trovare maggiori informazioni circa <tt/mgetty/ a <tt><htmlurl url="http://www.leo.org/˜doering/mgetty/" name="http://www.leo.org/˜doering/mgetty/"></tt>. <sect2><tt/agetty/ <p> <tt/agetty/ è la terza variante di <tt/getty/. È una semplice, completamente funzionale, implementazione di <tt/getty/ creata appositamente per console virtuali o terminali piuttosto che modem . <sect1>Cosa è <tt/setserial/? <p> <tt/setserial/ è un applicativo per vi permette di controllare e modificare i vari attributi di una periferica seriale, inclusi l'indirizzo della porta, l'interrupt e altre opzioni varie. Potete sapere quale versione avete, lanciando <tt/setserial/ senza argomenti. Se l'argomento fosse, per esempio, /dev/ttyS0, allora riceverete informazioni circa questa periferica. <p> Quando il vostro sistema Linux viene avviato, sono configurate solo le periferiche <tt/ttyS{0-3}/, usando gli IRQ standard 4 e 3. Quindi, se avete altre periferiche seriali fornite da altre schede o se <tt/ttyS{0-3}/ hanno un IRQ non-standard, allora <em/dovete/ usare <tt/setserial/ in modo da configurare queste porte seriali. Per la lista completa di opzioni consultate la pagina <tt/man/. <sect>Come posso effettuare una chiamata con il mio modem?<label id="dialout"> <sect1>Requisiti Hardware <P> Potete utilizzare un modem sia esterno che interno. Quello interno è più economico e non occupa spazio sulla scrivania o sul tavolo. Quello esterno invece è più semplice da installare e ha delle luci che permettono di capire cosa sta succedendo. Devono essere spenti manualmente quando non vengono usati e continuano a consumare un piccolo quantitativo di energia elettrica anche una volta spenti. <sect2>Modem Esterni <P> Prima di tutto, assicuratevi di avere il cavo giusto. Il vostro modem richiede un cavo pin-to-pin senza i file intrecciati. Ogni rivenditore di computer dovrebbe averli. Assicuratevi inolte che abbia il giusto connettore. Se state usando una porta seriale DB25, allora sarà sempre un connettore maschio DB25. Non confondetevi con la porta parallela, che ha un connettore femmina DB25. Collegate a questo punto il vostro modem ad una delle porte seriali. Consultate il manuale del vostro modem su come farlo se avete bisogno di aiuto. <sect2> Modem Interni <P> Per un modem interno non avrete bisogno di un cavo. Un modem interno non necessita di una porta seriale, ne ha una inserita al suo interno. Tutto ciò di cui avete bisogno è configurare gli indirizzi della porta I/O. Consultate il manuale del vostro modem se non sapete cosa fare. Inoltre, potete leggere la sezione <REF id="irqaddr" name="Posso usare più di due porte seriali?"> se avete bisogno di scegliere un IRQ o un indirizzo. <p> Su alcune schede madri potete disattivare le porte seriali che il modem rimpiazza in modo tale da evitare conflitti. Questo può essere eseguito utilizzando i vari jumper presenti sulla scheda oppure dalle impostazioni del BIOS, dipende dal tipo di scheda madre. Consultate il manuale di questa. <p> Se siete in possesso di una scheda video IBM8514, allora dovete sapere che c'è un errore. Potrete avere problemi se tentate di utilizzare il vostro modem interno sul <tt/ttyS3/. Se Linux non riconosce la vostra scheda modem interna su <tt/ttyS3/, potete utilizzare <tt>setserial</tt> e il modem funzionerà correttamente. I modem interni su <tt/ttyS{0-2}/ non dovrebbero avere nessuno problema nell'essere riconosciuti. Linux non esegue nessuna auto-configurazione su <tt/ttyS3/ per via di questo problema con questo tipo di scheda video. <sect1>Parlare al vostro modem <p> Usate <tt/kermit/, <tt/minicom/ o qualche altro applicativo di comunicazione per sperimentare la vostra configurazione, prima di passare all'utilizzo di applicazioni più complesse, tipo SLIP o PPP. Potete trovare le versioni più recenti di <tt/kermit/ a <tt><htmlurl url="http://www.columbia.edu/kermit/" name="http://www.columbia.edu/kermit/"></tt>. Per esempio, se il vostro modem è connesso a <tt>ttyS3</tt>, e la velocità è 115200 bps, dovrete fare così: <tscreen><verb> linux# kermit C-Kermit 6.0.192, 6 Sep 96, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help. C-Kermit>set line /dev/ttyS3 C-Kermit>set carrier-watch off C-Kermit>set speed 115200 /dev/ttyS3, 115200 bps C-Kermit>c Connecting to /dev/ttyS3, speed 115200. The escape character is Ctrl-\ (ASCII 28, FS) Type the escape character followed by C to get back, or followed by ? to see other options. ATE1Q0V1 ; digitate questo e premete INVIO OK ; il modem dovrebbe rispondere così </verb></tscreen> Se il vostro risponde ai comandi <tt/AT/, allora sicuramente funzionerà con Linux. Adesso provate a chiamare un altro modem digitando: <tscreen><verb> ATDT123456 </verb></tscreen> dove 123456 è il numero telefonico. Usate <tt/ATDP/ invece di <tt/ATDT/ se avete una linea a impulsi. Se la chiamata viene effettuata, allora il vostro modem funziona correttamente.<P> Per tornare al prompt di <tt/kermit/ premete <tt/CTRL+\/ e poi <tt/C/: <tscreen><verb> Ctrl-\-C (per tornare a linux) C-Kermit>quit linux# </verb></tscreen> Questo è solo un piccolo test molto rude su come effettuare una chiamata manualmente. Il metodo "normale" è di utilizzare <tt/kermit/ in modo che effettui la chiamata automaticamente, utilizzando il suo database interno di numeri telefonici. Ad esempio, se utilizzate un modem US Robotics (USR): <tscreen><verb> linux# kermit C-Kermit 6.0.192, 6 Sep 1997, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help C-Kermit>set modem type usr ; Selezionare il tipo di modem C-Kermit>set line /dev/ttyS3 ; Selezionare la porta di comunicazione C-Kermit>set speed 115200 ; Impostare la velocità di trasmissione C-Kermit>dial 7654321 ; Chiamare Number: 7654321 Device=/dev/ttyS3, modem=usr, speed=115200 Call completed.<BEEP> Connecting to /dev/ttyS3, speed 115200 The escape character is Ctrl-\ (ASCII 28, FS). Type the escape character followed by C to get back, or followed by ? to see other options. Welcome to ... login: </verb></tscreen> fate riferimento alla sezione <REF id="comms" name="Programmi di Comunicazione"> se avete bisogno di ulteriori informazioni o applicativi da utilizzare. <p> Quando chiamate con il vostro modem, impostate la velocità della porta seriale la più alta possibile, sempre che il vostro modem la supporti ( non oltre i 155200 bps). Questa non è la stessa velocità del modem, come ad esempio 56.000 bps. Alcune versioni di Linux con una versione <tt/libc/ maggiore di 5.x hanno il supporto per 115.200 bps. <sect1>Configurare il modem per chiamare all'esterno <p> Se utilizzate il modem unicamente per chiamare, potete configurarlo come più vi piace. Se invece siete intenzionati anche a ricevere chiamate, allora <em/dovete/ configurare il vostro modem alla stessa velocità a cui intendete impostare <tt/getty/. Comunque sia, la maggior parte dei modem oggigiorno impostano automaticamente la velocità alla stessa della porta di comunicazione. Chi utilizza <tt/getty/ alla velocità di 115.200 bps ha automaticamente impostato il modem per quella velocità, quando <tt/getty/ invia a questo la stringa di inizializzazione alla porta a cui è connesso il modem. In generale, consultate il manuale del vostro modem per impostare una velocità ottimale. <sect1>Controllo di Flusso Hardware <p> Se il vostro modem supporta il controllo di flusso hardware (RTS/CTS), vi raccomando caldamente di utilizzarlo. È particolarmente importante per i modem che supportano la compressione dei dati. In primo luogo dovete attivare il controllo di flusso RTS/CTS sulla porta seriale stessa. Il miglior modo è di farlo al boot, ad esempio in <tt>/etc/rc.d/rc.local</tt> oppure <tt>/etc/rc.d/rc.serial</tt>. Assicuratevi che questi file siano eseguiti la file principale, <tt/rc.sysinit/! Dovete seguire il seguente procedimento su ogni porta sulla quale desiderate installare il supporto per il controllo di flusso hardware: <tscreen><verb> stty crtscts < /dev/ttyS3 </verb></tscreen> Se non è impostato per default, dovete impostare il controllo di flusso RTS/CTS anche sul vostro modem. Il vostro programma di comunicazione può impostarlo per voi. Consultate il manuale del vostro modem per maggior informazioni. <sect>Come posso effettuare chiamate e riceverle con il modem usando <tt>getty_ps</tt>? <p> Configurate il vostro modem in modo che possa effettuare chiamate correttamente. Se non avete letto la sezione <REF id="dialout" name="Come posso effettuare una chiamata con il mio modem?"> allora <em/leggetela adesso/! Contiene informazioni <em/molto/ importanti sulla configurazione. Non importa che leggiate questa sezione se desiderate usare il modem esclusivamente per <em/effettuare/ chiamate. <sect1>Configurare il modem per chiamare e ricevere <p> Per effettuare chiamate oppure riceverle dovete impostare il vostro modem in un modo particolare ( ancora usando i comandi <tt/AT/ sul vostro modem ) : <tscreen><verb> E1 command echo ON Q0 result codes are reported V1 verbose ON S0=0 never answer (uugetty interpreta questo come una opzione WAITFOR ) </verb></tscreen> Se non impostate questi parametri correttamente, la vostra stringa <tt/INIT/ potrebbe fallire, bloccando tutta la procedura. Ma ecco qualcosa di più circa i file di configurazione... <tscreen><verb> &ero;C1 DCD è attivato solo dopo la connessione &ero;S0 DSR è sempre attivato DTR on/off resetta il modem (dipende dalla casa produttrice - RTFM ) </verb></tscreen> Questi parametri impostano il comportamente del modem quando una chiamata inizia e/o finisce. <p> Se il vostro modem non supporta l'inserimento di un profilo, potete impostare questi parametri attraverso la stringa <tt/INIT/ nel vostro file di configurazione. Leggete più sotto. Alcuni modem hanno alcuni DIP switch per effettuare queste modifiche. Assicuratevi che anche questi, se è il vostro caso, siano impostati correttamente. <p> Ho iniziato a collezionare configurazioni per svariati tipi di modem. Al momento però non sono molti.. quindi inviatemeli! aspetto qualcosa da voi! Potete trovare quelli giè presenti a <tt><htmlurl url="ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs" name="ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs"></tt>. <p> Nota: per far resettare correttamente il mio modem USR Courier V.34 quando cade il DTR, ho dovuto impostare <tt/&D2/ e <tt/S13=1/ ( questo assegna il bit 0 del registro S13). È stato confermato che questo funziona anche sul modem USR Sportster V.34 . <p> Nota: alcuni modem Supra gestisco il DCD in modo differente da altri modem. Se state utilizzando un modem Supra, provate a impostare <tt/&C0/ e <EM/non/ <tt/&C1/. Dovete anche settare <tt/&D2/ per gestire correttamente DTR. <sect1>Installazione di <tt>getty_ps</tt> <p> Prendete la versione più recente da <tt><htmlurl url="ftp://sunsite.unc.edu:/pub/Linux/system/serial" name="sunsite.unc.edu:/pub/Linux/system/serial"></tt>. In particolare, se desiderate usare alte velocità (57600 e 115200 bps) dovete prendere la versione 2.0.7j o successive. Inoltre dovete anche avere la libc versione 5.x o successiva. <p> Per default, <tt/getty_ps/ è configurato per essere compatibile con il Linux FSSTND ( File System Standard ), il che significa che i file binari saranno in <tt>/sbin/</tt>, e i file di configurazione si chiameranno <tt>/etc/conf.{uu}getty.ttyS</tt><EM/N/. Questo non compare nella documentazione! Inoltre darà per scontato che i lock file andranno in <tt>/var/lock</tt>. Assicuratevi di avere la directory <tt>/var/lock/</tt>. <p> Se non desiderate la compatibilità con FSSTND, i file binari andranno in <tt>/etc</tt>, mentre quelli di configurazione in <tt>/etc/default/{uu}getty.ttyS</tt><EM/N/, e i lock file si andranno in <tt>/usr/spool/uucp</tt>. Vi raccomando di effettuare queste procedure come descritte se state usando UUCP, perché UUCP potrà avere problemi se muovete i lock file dalla posizione predefinita. <p> <tt/getty_ps/ può inoltre usare <tt/syslogd/ per registrare tutti i messaggi. Consultate le pagine man <tt/syslogd(1)/ e <tt/syslogd.conf(5)/ su come impostare <tt/syslogd/, se ancora non lo avete installato. I messaggi sono registrati con priorità LOG_AUTH, gli errori usano LOG_ERR, e quelli di debugging LOG_DEBUG. Se non desiderate usare <tt/syslogd/ potete editare <tt/tune.h/ fra i file sorgenti di <tt/getty_ps/ per utilizzare un file per registrare i messaggi, che per default è <tt>/var/adm/getty.log</tt>. <p> Decidete se siete interessati ad utilizzare FSSTND e anche syslogd, potete scegliere di utilizzare una combinazione dei due. Modificate il <tt/Makefile/, <tt/tune.h/ e <tt/config.h/ per confermare le vostre decisioni. Quindi compilate e installate seguendo le istruzioni incluse nel pacchetto dei sorgenti. <p> D'ora in avanti, tutti i riferimenti a <tt/getty/ saranno per <tt/getty_ps/. Riferimenti invece a <tt/uugetty/ saranno per <tt/uugetty/ incluso nel pacchetto <tt/getty_ps/. Queste istruzioni non funzionano con <tt>mgetty</tt> o <tt>agetty</tt>. <P> <sect> uugetty <P> <sect1>Impostare <tt/uugetty/ <P> Assicuratevi di avere una periferica di entrata e una di uscita per la porta seriale alla quale è collegato il vostro modem. Se questo si trova su <tt/ttyS3/ dovete avere le periferiche <tt>/dev/cua3</tt> e <tt>/dev/ttyS3</tt>. Se non avete le periferiche corrette, leggete la sezione <REF id="dev" name="Creare periferiche in /dev"> circa la creazione di queste periferiche, e createle. Se desiderate essere in grado di effettuare chiamate all'esterno mentre <tt/uugetty/ controlla la porta per eventuali chiamate in arrivo, usate la periferica <tt>/dev/cua</tt><em/N/ invece di <tt>/dev/ttyS</tt><em/N/. <P> <tt/uugetty/ effettua importanti controlli sui lock file. Aggiornate <tt>/etc/gettydefs</tt> per aggiungere un voce per il vostro modem. Quando avete modificato <tt>/etc/gettydefs</tt>, potete verificare la correttezza della sintassi eseguendo: <tscreen><verb> linux# getty -c /etc/gettydefs </verb></tscreen> <sect2>Modem moderni<P> Se avete un modem a 9600 bps o più veloce con compressione dei dati, potete impostare la velocità della porta seriale. Per esempio: <tscreen><verb> # 115200 velocità impostata F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200 </verb></tscreen> Se volete che il vostro modem effettui il controllo di flusso hardware RTS/CTS, potete aggiungere <tt>CRTSCTS</tt> alla voce: <tscreen><verb> # 115200 velocità impostata con controllo di flusso hardware F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200 </verb></tscreen> <sect2> Modem lenti e vecchiotti <P> Se siete in possesso di modem non veloci ( inferiori a 9600 bps ) allora, invece un una sola linea per una singola velocità, avrete bisogno di alcune linee per provare alcune impostazioni. Da notare il che queste linee sono collegate fra loro con l'ultima parola, ad esempio #38400. Sono necessarie delle linee vuote fra ciascuna voce del file di configurazione. <tscreen><verb> # Impostazioni del modem 115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600 57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400 38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200 19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600 9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400 2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200 </verb></tscreen> <p> <sect2> Messaggio di benvenuto <P>Se lo desiderate, potete impostare <tt>uugetty</tt> in modo tale che visualizzi messaggi interessanti al momento del login. Nel mio esempio ho inserito il nome del sistema, la linea seriale, e la velocità utilizzata. Potete aggiungere molte altre cose: <tscreen><verb> @B La velocità della linea in bps. @D La data corrente, espressa in MM/DD/YY. @L La linea seriale sulla quale si trova getty. @S Il nome del sistema. @T L'ora corrente, espressa in HH:MM:SS (24 ore). @U Il numero di utenti attualmente collegati. È in pratica un conteggio effettuato in base al file /etc/utmp. @V Il valore di VERSION Per visualizzare un carattere '@'singolo, utilizzate sia '/@' che '/@@'. </verb></tscreen> <sect1>Personalizzare <tt/uugetty/ <p> Esistono molti parametri che potete impostare per ciascuna porta seriale. Questi sono implementati in file di configurazione separati per ciascuna porta. Il file <tt>/etc/conf.uugetty</tt> sarà utilizzato da tutte le sessioni di <tt/uugetty/, e <tt>/etc/etc.uugetty.ttyS</tt><EM/N/ sarà utilizzato solo per quella specifica porta. Alcuni esempi di questi file di configurazione posso essere trovati fra i sorgenti di <tt/getty_ps/, che si possono trovare praticamente in ogni distribuzione di Linux. Per motivi di spazio non sono stati trascritti qui. Nota: se state utilizzando versioni più vecchie di <tt/getty/ ( precendenti alla 2.0.7e), oppure non state utilizzando FSSSTND, allora il file di configurazione sarà <tt>/etc/default/uugetty.ttyS</tt><em/N/. Il <tt>/etc/conf.uugetty.ttyS3</tt> è così: <tscreen><verb> ALTLOCK=cua3 ALTLINE=cua3 # Linea da inizializzare INITLINE=cua3 # timeout di disconnessione se inattiva TIMEOUT=60 # stringa di inizializzazione del modem INIT="" AT\r OK\r\n WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A # questa riga imposta il tempo di ritardo prima di inviare # il messaggio di benvenuto del login DELAY=1 #DEBUG=010 </verb></tscreen> <p> Aggiugete le seguenti linee nel vostro <tt>/etc/inittab</tt>, in modo tale che <tt/uugetty/ sia in esecuzione sulla vostra porta seriale ( effettuate le modifiche in modo da adattare questo al vostro specifico caso - file di configurazione, velocità e tipo di terminale): <tscreen><verb> S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100 </verb></tscreen> Riavviate <tt/init/: <tscreen><verb> linux# init q </verb></tscreen> Per le impostazioni sulla velocità nel vostro <tt>/etc/inittab</tt> vi consiglio di utilizzare la velocità più alta in bps supportata dal vostro hardware. <p> Adesso Linux controlla continuamente la porta seriale in attesa di connessioni. Chiamate da un'altra macchina e collegatevi al vostro sistema Linux. <p> <tt/uugetty/ ha molte altre opzioni, leggete il manuale di <tt/getty(1m)/ per una descrizione piì dettagliata. Fra le tante opzioni c'è anche quella di richiamata. <sect>Come posso impostare un terminale connesso al mio PC? <p> Leggete il <tt><htmlurl url="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Text-Terminal-HOWTO" name="Text-Terminal-HOWTO"></tt> per informazioni più dettagliate sui terminali. Le istruzioni in questa sezione descrivono come connettere un terminale, così come altri computer al vostro sistema Linux. <sect1>Requisiti Hardware <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/! 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>Per il connettore DB25, avete bisogno al minino di questo: <verb> 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 </verb> <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). <verb> 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 </verb> <p> Se sulla propria porta seriale si ha un connettore DB9, si provi quanto segue: <verb> 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 </verb> <p> In alternativa, un cavo null modem DB9-DB25 (come detto non può operare con un terminale con handshake hardware): <verb> 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) </verb> (Sì, i pin 2 e 4 hanno <em/veramente/ 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). <sect1>Impostare <tt/getty/ (componente di <tt/getty_ps/) <p> Consultate il vostro manuale di <em/getty/ per altre applicazioni come ad esempio <em/agetty/. Aggiungete le impostazioni per il vostro terminale per <tt/getty/ se non sono già esistenti in <tt>/etc/gettydefs</tt>: <tscreen><verb> # 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 </verb></tscreen> <p> Se lo desiderate potete far stampare a video da <tt/getty/ informazioni interessanti sul login. Nel mio esempio ho inserito il nome del sistema e la porta seriale. Potete aggiungere molte altre cose: <tscreen><verb> @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 '@@'. </verb></tscreen> <p> Una volta modificato <tt>/etc/gettydefs</tt>, potete verificare che la sintassi sia corretta digitando: <tscreen><verb> linux# getty -c /etc/gettydefs </verb></tscreen> <p> Assicuratevi che non vi siano file di configurazione di <tt/getty/ oppure <tt/uugetty/ per la porta seriale alla quale il vostro terminale è collegato (<tt>/etc/default/{uu}getty.ttyS</tt><EM/N/ oppure <tt>/etc/conf.{uu}getty.ttyS</tt><EM/N/), poiché può molto probabilmente interferire nell'esecuzione di <tt/getty/ su un terminale. Rimuovere questi file se esistono. <p> Editate il vostro file <tt>/etc/inittab</tt> per lanciare <tt/getty/ sulla porta seriale ( sostituendo con le corrette informazioni sul vostro sistema - porta, velocità e tipologia del terminale): <tscreen><verb> S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 </verb></tscreen> Riavviate <tt/init/: <tscreen><verb> linux# init q </verb></tscreen> <p> A questo punto dovreste essere in grado di vedere un prompt di login sul terminale. Probabilmente dovrete premere <em/invio/ per ottenere l'attenzione del terminale. <sect1>Suggerimenti per configurare un PC come terminale seriale <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. <tt/kermit/ è ideale a questo scopo. Potete trovare versioni precompilate di <tt/kermit/ per ogni sistema operativo esistente a <tt><htmlurl url="http://www.columbia.edu/kermit/" name="http://www.columbia.edu/kermit/"></tt>. Altri programmi DOS molto popolari come <tt/procomm/ funzionano molto bene. Assicuratevi di impostare corretamente le informazioni sulla porta seriale nelle impostazioni del programma di comunicazione del vostro terminale. <sect>Posso usare più di due porte seriali?<label id="irqaddr"> <p> Non avete bisogno di leggere questa sezione a meno che non intendiate utilizzare tre o piú periferiche seriali ( assumendo il fatto che <em/non/ avete una porta seriale). <p> Il numero delle porte seriali è limitato dal numero di interrupt (IRQ) e indirizzi di I/O che possiamo utilizzare. Queste non è una limitazione di Linux, ma del bus del PC. Ad ogni porta seriale <em/deve/ essere assegnato un proprio indirizzo e dovrebbe avere il proprio interrupt. Se due periferiche condividono lo stesso interrupt, può funzionare correttamente se le due periferiche non operano contemporaneamente (nella maggior parte dei casi sono i due programmi che non devono essere in esecuzione assieme). Una periferica seriale può essere un porta seriale, un modem interno, oppure una scheda seriale multiporta. <p>Una scheda seriale multiporta sono appositamente progettate per avere porte seriali multiple che condividono lo stesso interrupt per tutte le porte sulla scheda. Linux riceve i dati da queste usando differenti indirizzi di I/O per ogni porta sulla scheda. <sect1>Scegliere gli interrupt per le periferiche seriali <p>Il vostro PC normalmente ha <tt/ttyS0/ e <tt/ttyS2/ associate all'IRQ 4, e <tt/ttyS1/ e <tt/ttyS3/ all'IRQ 3. Potete visualizzare gli IRQ utilizzati digitando <em>setserial /dev/ttyS2 </EM> ecc ecc. Il contenuto di <tt>/proc/interrupts</tt> mostra alcuni di questi. Per usare più di una periferica seriale dovrete riassegnare gli interrupt. Una buona scelta solitamente è quella di riutilizzare l'interrupt della porta parallela. Il vostro PC normalmente ha IRQ 5 e IRQ 7 per la porta parallela, ma poche persone usano due porte di questo genere. Potete riassegnare uno di questi interrupt ad una porta seriale e continuare ad usare felicemente la vostra porta parallela. Avete bisogno dell'applicazione <tt/setserial/ per eseguire questa operazione. In aggiunta, dovete fare alcuni tentativi con i jumper della vostra scheda, consultate il manuale di questa per maggiori informazioni. Impostate i jumper per l'IRQ che desiderate per ciascuna porta. <p> Dovete impostare le cose in modo che esista un solo interrupt per ciascuna periferica seriale. Ecco come Greg ha configurato il suo sistema in <tt>/etc/rc.d/rc.local</tt> - dovete eseguire le modifiche in un file che viene eseguito all'avvio del sistema: <tscreen><verb> /sbin/setserial /dev/ttyS0 irq 3 # il mio mouse serial /sbin/setserial /dev/ttyS1 irq 4 # il mio terminale stupido Wyse /sbin/setserial /dev/ttyS2 irq 5 # il mio modem Zoom /sbin/setserial /dev/ttyS3 irq 9 # il mio modem USR </verb></tscreen> <p> Impostazione standard degli IRQ: <verb> IRQ 0 Timer channel 0 IRQ 1 Keyboard IRQ 2 Cascade for controller 2 IRQ 3 Serial port 2 IRQ 4 Serial port 1 IRQ 5 Parallel port 2 IRQ 6 Floppy diskette IRQ 7 Parallel port 1 IRQ 8 Real-time clock IRQ 9 Redirected to IRQ2 IRQ 10 non assegnato IRQ 11 non assegnato IRQ 12 non assegnato IRQ 13 Math coprocessor IRQ 14 Hard disk controller 1 IRQ 15 Hard disk controller 2 </verb> <p> Non esiste una vera a propria regola per le scelte degli interrupt. Assicuratevi solamente che questo non venga utilizzato dalla scheda madre o da nessuna altra scheda presente nel Pc. Gli IRQ 2, 3, 4, 5 o 7 sono delle buone scelte. ``non assegnato'' significa che non gli è assegnata nessuna scheda o periferica standard. Da notare inoltre che gli IRQ 2 e IRQ 9 sono identici. Potete chiamarli 2 o 9, la periferica seriale fortunatamente funziona bene lo stesso. Se possedete una scheda seriale con un connettore per un bus a 16-bit, potete anche usare gli IRQ 10, 11, 12 oppure 15. <p> <em/NON/ utilizzate gli IRQ 0, 1, 6, 8, 13 o 14! questi sono riservati alla scheda madre. Non sarà molto felice se gli usate i suoi IRQ prediletti! :) Quando avete impostato il tutto, controllate più volte <tt>/proc/interrupts</tt> per assicurarsi che non ci siano conflitti hardware. <sect1>Impostare gli indirizzi per le periferiche seriali <p> Dopo di che, dovete impostare l'indirizzo della porta. Controllate il manuale della vostra scheda per le impostazioni dei jumper. Come per gli interrupt, può esistere una sola periferica seriale per ciascun indirizzo. Le vostre porte sono usualmente configurate come segue: <tscreen><verb> ttyS0 indirizzo 0x3f8 ttyS1 indirizzo 0x2f8 ttyS2 indirizzo 0x3e8 ttyS3 indirizzo 0x2e8 </verb></tscreen> Scegliete quale indirizzo desiderate per ogni periferica seriale e impostate i jumper di conseguenza. Io ho il mio modem sulla porta <tt>ttyS3</tt>, il mio mouse su <tt>ttyS0</tt> e terminale su <tt/ttyS2/. Quando riavviate il sistema, Linux dovrebbe riconoscere le porte seriali all'indirizzo al quale le avete configurate. Gli IRQ di Linux possono non corrispondere a quelli che avete impostato con i jumper. Non preoccupatevi. Linux non esegue nessun riconoscimento automatico degli IRQ, poiché questo può risultare fallimentare. Usate <tt/setserial/ per dare a Linux l'IRQ corretto per la vostra scheda, quello che avete impostato voi. Nel file <tt>/proc/ioports</tt> troverete quali indirizzi di porte di I/O sono in uso dopo l'avvio di Linux. <sect>Come posso impostare le mie porte seriale ad una velocità maggiore? A quale velocità devo impostare il modem?<label id="spdhi"> <p> Questa sezione dovrebbe aiutarvi a scegliere la velocità da utilizzare per il vostro modem, quando lo usate con un programma di comunicazione, oppure con un programma <tt/getty/. Normalmente viene impostata la velocità attraverso un parametro passato a <tt/getty/ oppure da un menu del vostro programma di comunicazione ( oppure in un file di configurazione ). Se per qualunque ragione il tutto non funziona per le alte velocità, esiste un modo per risolvere il problema utilizzando delle opzioni speciali con <tt/setserial/: con le opzioni <tt/spd_hi/ oppure <tt/spd_vhi/ passate a setserial, la velocità 38400 attualmente imposta può essere modificata a 57600 (<tt/spd_hi/) oppure a 115200 (<tt/spd_vhi/). Assicuratevi di possedere le porte UART 16550A per velocità alte. Ecco le impostazioni suggerite: <itemize> <item> Se avete un modem 28.8K (V.34), 33.6 (v.34), oppure 56K (V.90) utilizzate 115200 bps. <item>Se avevete un modem 14400 bps (V.32bis), con la compressione dati V.42bis, utilizzate 57600 bps. <item>Se avete un modem a 9600 bps (V.32), con la compressione dati V.42bis, utilizzate 38400 bps. <item>Se siete in possesso di un modem più lento di 9600 bpx (V.32), impostate la velocità a quella più alta supportata dal vostro modem. Per esempio 300 bps (V.21/Bell 103), 1200 bps (V.22/Bell 212A), oppure 2400 bps (V.22bis). </itemize> Eseguite un test dalla riga di comando con <tt/setserial/ e quindi, se funziona, inserite il comando appropriato in <tt>/etc/rc.d/rc.serial</tt> oppure <tt>/etc/rc.d/rc.local</tt> o ancora <tt>/etc/rc.boot/0setserial</tt> in modo da essere avviato al boot del sistema. Assicuratevi di utilizzare un path valido per <tt/setserial/, e un nome valido di periferica. Controllare le impostazioni delle porte seriali eseguendo: <tscreen><verb> setserial -a /dev/ttyS3 </verb></tscreen> <sect>Programmi e Utilità di comunicazione<label id="comms"> <p> Ecco una lista di alcuni programmi di comunicazione dalla quale potrete scegliere, disponibili via Ftp se non si trovano già assieme alla vostra distribuzione. <itemize> <item><tt/ecu/ - comunicazione <item><url url="http://www.columbia.edu/kermit/" name="C-Kermit"> - comunicazione portabili, supporto di script, seriale e TCP/IP che include il trasferimento di file e traduzione automatica del set di caratteri. <item><tt/minicom/ - programma di comunicazione simile a <tt/telix/. <item><tt/procomm/ - programma comunicazione con supporto zmodem. <item><tt/seyon/ - basato su X-Windows. <item><tt/xc/ - pacchetto di comunicazione xcomm. <item>Altri utili programmi sono <tt/term/ e <tt/SLiRP/. Offrono funzionalità e TCP/IP attraverso shell account. <item><tt/screen/ è un altro programma per la multisessione. Funziona come le console virtuali. <item><tt/callback/ è un programma che permette al vostro modem di essere richiamato. <item><tt/mgetty+fax/ gestisce i FAX, e si offre come sostituto alternativo di <tt/ps_getty/. <item><tt/ZyXEL/ è un programma di controllo per i modem ZyXEL U-1496. Gestisce le chiamate in entrata, in uscita, richiamo, FAX e funzione di casella vocale. <item>Il software SLIP e PPP può essere reperito a: <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/network/serial" name="ftp://sunsite.unc.edu/pub/Linux/system/network/serial"></tt>. <item>Altre utilità: <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/serial" name="ftp://sunsite.unc.edu/pub/Linux/system/serial"></tt> e <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/apps/comm" name="ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm"></tt> o in uno dei tanti mirror. Queste sono le directory dove si trovano i programmi per comunicazioni seriali. </itemize> <sect>Porte Seriali: suggerimenti e miscellanea. <p> Ecco alcuni trucchetti che vi possono essere utili in svariate situazioni... <sect1>kermit e zmodem <p>Per utilizzare lo zmodem con <tt/kermit/ aggiungere le seguenti righe al vostro <tt/.kermrc/: <tscreen><verb> define rz !rz < /dev/ttyS3 > /dev/ttyS3 define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3 </verb></tscreen> Eventualmente sostituite la porta corretta sulla quale si trova il vostro modem. Quindi, per utilizzarlo, digitate <tt/rz/ or <tt>sz <nome_file></tt> al prompt di <tt/kermit/. <sect1>Impostare automaticamente il tipo di terminale <p> Per impostare automaticamente il tipo di terminale quando eseguite un login, basta aggiungere il tipo di terminale nel file <tt>/etc/inittab</tt>. Se avete un terminale VT100 sulla porta <tt/ttyS1/, aggiungere ``vt100'' nel comando <tt/gtty/: <tscreen><verb> S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 </verb></tscreen> <p> Altri gettys hanno opzioni simili. Potete anche utilizzare <tt/tset/, che può stabilire le caratteristiche del terminale al momento del login, e non dipende da nessuna impostazione standard. <sect1>Usare i colori con <tt/ls/ attraverso connessioni seriali. <p> Se il comando <tt/ls/ usato con i colori blocca il vostro terminale, disattivate questa opzione. <tt/ls --color/, e <tt/ls --colour/ utilizzano le funzionalità colore di <tt/ls/. Alcune installazioni hanno queste impostazioni già presenti. Controllate che nel file <tt>/etc/profile</tt> e <tt>/etc/csh.cshrc</tt> esista una riga per gli alias di <tt/ls/. Se non desiderate modificare questa opzione a livello di sistema, create un alias di <tt/ls/ con <tt/ls --no-color/. <sect1>Stampare su un stampare collegata ad un terminale seriale. <p> Esiste un programma, chiamato <tt/vtprint/, disponibile a: <tt><htmlurl url="ftp://ftp.sdsu.edu/pub/vtprint" name="ftp://ftp.sdsu.edu/pub/vtprint"></tt>, e anche a <tt><htmlurl url="http://www.sdsu.edu/˜garrett" name="http://www.sdsu.edu/˜garrett"></tt>. <p> Ne esiste anche un altro chiamato <tt/xprt/. Può essere reperito a <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/printing" name="ftp://sunsite.unc.edu/pub/Linux/system/printing"></tt>. <sect1>Può Linux configurare le periferiche seriali automaticamente? <p> Sì. Se il riconoscimento automatico non viene effettuato normalmente, attivatelo in modo che riconosca automaticamente le vostre periferiche seriali all'avvio del sistema. Aggiungete la linea seguente se necessario: <tscreen><verb> /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig </verb></tscreen> al vostro file <tt>/etc/rc.d/rc.local</tt> o <tt>/etc/rc.d/rc.serial</tt> oppure <tt>/etc/rc.boot/0setserial</tt>. Eseguite questa operazione per ogni porta seriale se desiderate la configurazione automatica. Assicuratevi ti fornigli una periferiche che esiste veramente sulla vostra macchina. <sect2>Note per schede multiporta <p> Per gli indirizzi sulla scheda e gli IRQ leggete il file <tt/rc.serial/ oppure <tt>/etc/rc.boot/0setserial</tt> fornito con programma <tt/setserial/. Contiene molte informazioni sulle schede multiporta, inclusi indirizzi di I/O e i nomi delle periferiche. <sect1>Usare una console seriale. <p> Esiste un articolo nel numero 36 del <EM/Linux Journal/, <tt><htmlurl url="http://www.ssc.com/lj/issue36/index.html" name="http://www.ssc.com/lj/issue36/index.html"></tt> che spiega proprio come utilizzare una console seriale. Leggete il Text-Terminal-HOWTO. <sect>Un piccolo passo avanti... <p> Non è necessario leggere questa sezione, ma può fornirvi ulteriori informazioni approfondite su Unix e il mondo delle telecomunicazioni. <sect1>Che cosa sono i lock file? <p> I lock file sono semplici file che indicano che una particolare periferica è in uso. Si trovano in <tt>/usr/spool/uucp</tt> oppure <tt>/var/lock</tt>. I file lock di linux utilizzano la seguente denominazione <tt/LCK../<EM/name/, dove <EM/name/ è il nome della periferica, oppure il nome UUCP. Alcuni processi creano questi lock file per assicurarsi un accesso esclusivo alla periferica. Per esempio, se chiamate all'esterno con un modem, un file lock apparirà indicando che qualcuno sta già utilizzando quella periferica modem. I file lock spesso contengono il PID del processo che ha bloccato la periferica. Molti programmi cercano il lock, e controllano che sia ancora valido verificando la presenza dell'applicazione che lo detiene nella tabella dei processi. Se il lock è ancora valido, il programma esce ( o per lo meno dovrebbe farlo ). Se invece non è più valido, allora l'applicazione rimuove questo lock e utilizza la periferica, creando un nuovo lock file. Altri programmi invece terminano indicando solo che la periferica è in uso. <sect1>``baud'' Vs. ``bps'' <p> ``baud'' e ``bps'' sono probabilmente i due termini usati più impropriamente nel mondo informatico e delle telecomunicazioni. Molte persone utilizzando questi termini indifferentemente, quando invece la storia non sta così. <DESCRIP> <TAG/baud/ La misura baud indica quante volte al secondo un segnale, per esempio emesso da un modem (<BF/mo/dulatore-<BF/dem/odulatore), cambia. Per esempio, una baud rate di 1200 indica che un segnale cambia ogni 833 microsecondi. Baud rate comuni per i modem sono 50, 75, 110, 300, 600, 1200 e 2400. Molti modem ad alta velocità utilizzano hanno una baud rate a 2400. Per le limitazioni sulle linee telefoniche per voce una baud rate maggiore di 2400 è molto difficile da raggiungere, e forse funziona unicamente su linee con un segnale molto chiaro, senza interferenze. Molteplici bit possono essere gestiti per ogni baud, quindi il bit rate può superare notevolmente il baud rate. Il Baud prende il nome da Emile Baudot, l'inventore del telegrafo stampante asincrono. <TAG/bps/ La misura in bps indica invece quanti bit per secondo sono trasmessi. Modem moderni trasmetto a 14.4K , 28.8K, 33.6K e 56K bps. Usando un modem con la compressione V.42 ( compressione massima 4:1 ), è possibile raggiungere i 115.2K bps. Questo è ciò che molte persone confondono con i baud. </DESCRIP> Quindi, se un modem ad alta velocità opera a 2400 baud, come può inviare dati a 14400 bps ( o superiori )? I modem possono raggiungere elevato indice di velocità in bps ( superiore a quello in baud ) codificando un maggior numero di bit per ogni baud. Per questo il valore in bps sarà maggiore di quella in baud. Ad esempio se il vostro modem effettua un collegamento a 14400 bps significa che è collegato a 2400 baud ed inserisce in ogni cambiamento di fase 6 bit. Come è iniziata questa confusione? Beh, quando un tempo i vecchi modem lenti erano considerati veloci, spesso la velocità in baud era equivalente a quella in bps. Un solo bit era inserito in ogni cambiamento di fase. I termini baud e bps erano utilizzabili indifferentemente, poiché corrispondevano allo stesso vlore. La confusione è iniziata quando i modem più moderni, che offrono prestazioni migliori in termini di velocità, hanno un indice in bps maggiore a quello in baud. <sect1>Che cosa sono gli UART? Come incidono nelle prestazioni?<label id="uart"> <p> Gli UART (<BF/U/niversal <BF/A/synchronous <BF/R/eceiver <BF/T/ransmitter) sono dei circuiti della vostra scheda seriale ( se ne avete una ) o sulla scheda madre del vostro PC. La funzione di questi UART possono essere eseguite anche da processori che effetuano anche altri tipi di operazioni. La finalità dei UART è quella di convertire i dati in bit, inviare questi alla linea seriale, e quindi ricostruire nuovamente i dati presso l'altra estremità della connessione seriale. Gli UART si scambiano dati in pacchetti dimensionati in byte, scelto per convenienza poiché corrispondono al numero di caratteri ASCII. Immaginate di avere un terminale connesso al vostro PC. Quando digitate un carattere, il terminale passa quel carattere al trasmettitore ( quindi anche un UART ). Questo invia quel byte sulla linea seriale, un bit alla volta, ad un valore predefinito. La UART del PC al quale è connesso il terminale riceve questi dati in bit, e li riconverte in byte e li inserisce in un buffer. Esistono due tipi diversi di UART. Probabilmente avrete sentito parlare dei UART `stupidi' ( i modelli 8250 e 16450 ) e di quelli FIFO ( modello 16550A ). Per capire queste differenze, per prima cosa esamineremo cosa succede quando un UART ha inviato oppure riceve dei dati. L'UART di per sè non controlla in nessuno modo i dati, li invia e li riceve solamente. Per l'UART originale la CPU ottiene un interrupt dalla periferica seriale ogni volta che un byte viene inviato o ricevuto. La CPU quindi preleva il byte ricevuto dal buffer dell'UART e lo inserisce da qualche parte nella memoria, oppure assegna all'UART un altro byte da inviare. Gli UART 8250 e 16450 hanno un buffer di 1 solo byte. Questo significa che ogni volta che 1 byte viene inviato o ricevuto la CPU viene interrotta. A velocità basse può andare bene. Ma ad alta velocità la CPU diventa così occupata a dialogare con l'UART che non ha più tempo di servire gli altri task. In alcuni casi la CPU non riesce a gestire tutti gli interrupt generati dall'UART e il byte nel buffer viene sovrascritto, poiché i dati arrivano troppo velocemente. <sect>Risoluzione dei Problemi <sect1>Ricevo sempre il messaggio ``line <em/NNN/ of inittab invalid'' <p> Assicuratevi che state utilizzando la corretta sintassi per la vostra versione di <tt/init/. Le differenti versioni di <tt/init/ che sono state rilasciate utilizzano sintassi differenti per il file <tt>/etc/inittab</tt>. Assicuratevi che state anche usando la corretta sintassi per la vostra versione di <tt/getty/. <sect1>Quando provo ad effettuare una chiamata all'esterno, ricevo il messaggio ``/dev/cua<EM/N/: Device or resource busy'' <p> Questo problema è dovuto al fatto che il DCD o il DTR non sono impostati correttamente. Il DCD deve essere impostato unicamente quando persiste una connessione ( per esempio quando qualcuno si è collegato a voi chiamando dall'esterno ), e non quando <tt/getty/ sta monitorando la porta. Controllate che il vostro modem sia configurato per impostare il DCD solo quando avviene una connessione. Il DTR deve essere invece usato quando qualunque altra cosa sta monitorando la porta, come ad esempio <tt/getty/, <tt/kermit/, o qualche altro programma. Un'altra causa dell'errore ``device busy'' è che avete impostato la vostra porta seriale con un interrupt già in uso da qualche altra periferica hardware. Quando ogni periferica viene inizializzata questa richiede al kernel il permesso di usare il suo interrupt hardware. Il sistema operativo tiene traccia di quali interrupts sono assegnati e a chi, e se il vostro interrupt è già in uso, la vostra periferica non verrà inizializzata correttamente. In realtà essa non ha la minima idea di cosa stia succedendo, e l'unica cosa che può fare è rispondere con ``device-busy'' quando tentate di usarla. Controllate tutti gli interrupt di tutte le vostre periferiche ( porte seriali, schede ethernet, controller SCSI, ecc. ). Evitate conflitti di questo genere. <sect1>Continuo a ricevere il messaggio ``Getty respawning too fast: disabled for 5 minutes'' <p> Assicuratevi che il vostro modem sia configurato correttamente. Controllate i registri <tt/E/ e <tt/Q/. Questo errore può capitare quando il modem cerca di dialogare con <tt/getty/. <p> Assicuratevi anche che avete lanciato <tt/getty/ nel modo corretto dal vostro <tt>/etc/inittab</tt>. Usando una sintassi errata oppure una periferica sbagliata si possono verificare seri problemi. <p> Verificate che la sintassi del vostro <tt>/etc/gettydefs</tt> sia corretta usando questa procedura: <tscreen><verb> linux# getty -c /etc/gettydefs </verb></tscreen> <p> Questo errore si verifica anche quando fallisce l'inizializzazione di <tt/uugetty/. Fate riferimento alla sezione <REF id="nowork" name="getty o uugetty ancora non funzionano">. <sect1>Le periferiche seriali sono lente, oppure funzionano in un sola direzione. <p> Molto probabilmente avere un conflitto di IRQ. Assicuratevi che non ci sia qualche IRQ condiviso. Verificate tutte le schede ( porte seriali, schede ethernet, controller SCSI, ecc. ). Controllate le impostazioni dei vari jumper e che i parametri per il programma <tt/setserial/ siano corretti per tutte le vostre periferiche. Inoltre controllate <tt>/proc/ioports</tt> e <tt>/proc/interrupts</tt> per eventuali conflitti. <sect1>Il mio modem è bloccato dopo che qualcuno effettua una chiamata <p> Questo può accadere quando il vostro modem non effettua il reset quando il DTR cade. Io vedo i miei LED RD e SD letteralmente impazzire quando questo accade a me. Avete bisogno di resettare il vostro modem. Molti modem Hayes-compatibili eseguono questa operazione con <tt/&D3/, ma sul mio USR Courier devo impostare <tt/&D2/ e <tt/S13=1/. Controllate sul manuale del vostro modem. <sect1>Ho un terminale connesso al mio PC, ma quando tento di effettuare un login tutto si blocca. <p> <itemize> <item>Se state usando <tt/getty/: Molto probabilmente non avete <tt/CLOCAL/ nel vostro <tt>/etc/gettydefs</tt> per il vostro terminale, e molto probabilmente non state usando un cavo pienamente null-modem. Avete bisogno di <tt/CLOCAL/, che indica a Linux di ignorare i segnali di controllo del modem. Ecco come dovrebbe apparire il tutto: <tscreen><verb> # 38400 bps Dumb Terminal entry DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # 19200 bps Dumb Terminal entry DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # 9600 bps Dumb Terminal entry DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 </verb></tscreen> Successivamente <tt>terminate</tt> il processo <tt/getty/ in modo che uno nuovo entrerà in esecuzione con le nuove impostazioni. <item>Se state usando <tt/agetty/: Aggiungete il flag <tt/-L/ alla linea di <tt/agetty/ nel vostro <tt>/etc/inittab</tt>. Questo farà ignorare i segnali di controllo del modem. Quindi riavviate <tt/init/ digitando <tt/init q/. La configurazione dovrebbe essere più o meno così: <tscreen><verb> s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 </verb></tscreen> </itemize> <sect1>Ad alta velocità il mio modem perde alcuni dati <p> Se state tentando di utilizzare il vostro modem a una velocità superiore ai 38400 bps e non avete una UART 16550 allora dovete aggiornarla. Leggete la sezione <REF id="uart" name="Cosa sono le UART?">. <sect1>All'avvio del sistema Linux non riporta le periferiche seriali come le ho in precedenza configurate <p> Questo è vero solo in parte. Linux non effettua nessuna verifica degli IRQ al momento del boot, effettua solo un rilevamento di periferiche seriali. Quindi, con una corretta impostazione, io ottengo questo all'avvio della macchina: <tscreen><verb> Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A </verb></tscreen> Dovete usare <tt/setserial/ per comunicare a Linux quale IRQ state usando. <sect1><tt/rz/ e/o <tt/sz/ non funzionano quando chiamo la mia macchina Linux con un modem. <p> Se Linux cerca la periferica <tt>/dev/modem</tt> quando tentate di trasferire file, controllate i file <tt>/etc profile</tt> o <tt>/etc csh.cshrc</tt>. Probabilmente esiste una serie di alias definiti qui in alcune distribuzioni, come ad esempio Slackware. Questi alias confondono l'operato dei programmi zmodem. Eliminateli, oppure correggeteli. <sect1>Il mio schermo visualizza alcuni buffi caratteri <p> Questo accade su console virtuali su cui sono inviate informazioni di tipo binario direttamente allo schermo, oppure anche attraverso connessioni seriali. Il modo per risolvere questo problema è di digitare <tt>echo ^v^[c</tt>. Per la serie con tutti i caratteri, ecco qua: <tscreen><verb> linux% echo <ctrl>v<esc>c </verb></tscreen> <sect1><tt/getty/ o <tt/uugetty/ ancora non funzionano<label id="nowork"> <p> Esiste una opzione chiamata <tt/DEBUG/ inclusa in <tt/getty_ps/. Editate il vostro file di configurazione <tt>/etc/conf.{uu}getty.ttyS</tt><EM/N/ e aggiungete <tt/DEBUG=/<EM/NNN/. Dove <em/NNN/ è una delle seguenti combinazioni di numeri a seconda di cosa state cercando di debuggare: <tscreen><verb> D_OPT 001 option settings D_DEF 002 defaults file processing D_UTMP 004 utmp/wtmp processing D_INIT 010 line initialization (INIT) D_GTAB 020 gettytab file processing D_RUN 040 other runtime diagnostics D_RB 100 ringback debugging D_LOCK 200 uugetty lockfile processing D_SCH 400 schedule processing D_ALL 777 everything </verb></tscreen> Impostare <tt/DEBUG=010/ è un buon punto di partenza. <p> Se state esegueneo <tt/syslogd/, informazioni di debug appariranno nei vostro file di log. Se non state eseguendo il <tt/syslogd/ queste informazioni appariranno in <tt>/tmp/getty:ttyS</tt><EM/N/ per debuggare <tt/getty/ e <tt>/tmp/uugetty:ttyS</tt><EM/N/ per <tt/uugetty/, e in <tt>/var/adm/getty.log</tt>. Osservate attraverso queste informazioni di debug che cosa sta accadendo. Molto spesso avrete bisogno di perfezionare qualche impostazione o qualche parametro nella vostra configurazione, oppure di riconfigurare il vostro modem. <p> Potete anche provare <tt/mgetty/. Alcune persone hanno più fortuna usando questo software. <sect>Altre fonti di informazione <p> <itemize> <item>Le pagine man di: <tt/agetty(8)/, <tt/getty(1m)/, <tt/gettydefs(5)/, <tt/init(1)/, <tt/login(1)/, <tt/mgetty(8)/, <tt/setserial(8)/ <item>Il manuale del vostro modem o terminale <item>NET-3 HOWTO: tutto sulle reti di comunicazione, inclusi SLIP, CSLIP e PPP <item>PPP HOWTO: un aiuto con il PPP <item>Printing HOWTO: Come impostare una stampante seriale <item>Serial-Programming-HOWTO: per alcuni aspetti della programmazione seriale <item>Term HOWTO: tutto quello che desiderate sapere sul programma <tt/term/ <item>Text-Terminal-HOWTO: come funzionano e come installaree configurare un terminale testuale <item>UPS HOWTO: configurare un UPS connesso alla vostra porta seriale <item>UUCP HOWTO: per informazioni su come configurare UUCP <item>Newsgroups di UseNet: <tscreen><verb> comp.os.linux.answers FAQs, How-To's, READMEs, tutti riguardanti Linux. comp.os.linux.hardware Compatibilità hardware con il sistema operativo Linux. comp.os.linux.networking Reti e comunicazioni con Linux. comp.os.linux.setup l'installazione di Linux e l'amministrazione del sistema. comp.terminals </verb></tscreen> <item>The Linux serial mailing list. Per iscriversi inviate una email a <tt><htmlurl url="mailto:majordomo@vger.rutgers.edu" name="majordomo@vger.rutgers.edu"></tt>, cpn ``<tt/subscribe linux-serial/'' nel corpo del messaggio. Se inviate ``<tt/help/'' nel corpo del messaggio riceverete un messaggio di aiuto. Il server inoltre gestisce altri mailing lists su Linux. Inviate il comando ``<tt/lists/'' per una lista delle Mailing Lists presenti. <item>FAQs sui Modem:<newline> <url url="http://web.aimnet.com/˜jnavas/modem/faq.html" name="Navas 28800 Modem FAQ"><newline> <url url="http://www.teleport.com/˜curt/modems.html" name="Curt's High Speed Modem Page"> <item>Programmazione seriale: Serial-Programming-HOWTO <newline> <url url="http://heg-school.aw.com/cseng/authors/stevens/advanced/advanced.nclk" name="Advanced Programming in the UNIX Environment">, di W. Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley) <newline> <url url="http://www.ora.com/catalog/posix/"> name="POSIX Programmer's Guide">, di Donald Levine (ISBN 0-937175-73-0; O'Reilly) </itemize> <sect>Contributi <p> Gran parte dell'HOWTO originale è stata scritta da Greg Hankins <tt><htmlurl url="mailto:greg.hankins@cc.gatech.edu" name="greg.hankins@cc.gatech.edu"></tt>. Ha anche riscritto un gran numero di contributi inviati da altri collaboratori per mantenere la fluidità e lo stile del documento. Ecco le sue parole: "Ringrazio tutti coloro che hanno contribuito o commentato questo documento, la lista di tutte queste persone è troppo grande ( spesso oltre la centinaia di persone ). Ringraziamenti a Ted per aver risposto alle domanda sui driver per le schede seriali, a Kris Gleason che mantiene <tt/getty_ps/, e Gert Döring che mantiene <tt/mgetty/." <p> FINE DEL SERIAL HOWTO </article>