<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Linux Serial HOWTO: Risoluzione dei Problemi</TITLE> <LINK HREF="Serial-HOWTO-15.html" REL=next> <LINK HREF="Serial-HOWTO-13.html" REL=previous> <LINK HREF="Serial-HOWTO.html#toc14" REL=contents> </HEAD> <BODY> <A HREF="Serial-HOWTO-15.html">Avanti</A> <A HREF="Serial-HOWTO-13.html">Indietro</A> <A HREF="Serial-HOWTO.html#toc14">Indice</A> <HR> <H2><A NAME="s14">14. Risoluzione dei Problemi</A></H2> <H2><A NAME="ss14.1">14.1 Ricevo sempre il messaggio ``line <EM>NNN</EM> of inittab invalid''</A> </H2> <P>Assicuratevi che state utilizzando la corretta sintassi per la vostra versione di <CODE>init</CODE>. Le differenti versioni di <CODE>init</CODE> che sono state rilasciate utilizzano sintassi differenti per il file <CODE>/etc/inittab</CODE>. Assicuratevi che state anche usando la corretta sintassi per la vostra versione di <CODE>getty</CODE>. <P> <H2><A NAME="ss14.2">14.2 Quando provo ad effettuare una chiamata all'esterno, ricevo il messaggio ``/dev/cua<EM>N</EM>: Device or resource busy''</A> </H2> <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 <CODE>getty</CODE> 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 <CODE>getty</CODE>, <CODE>kermit</CODE>, o qualche altro programma. <P>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. <P> <P> <H2><A NAME="ss14.3">14.3 Continuo a ricevere il messaggio ``Getty respawning too fast: disabled for 5 minutes''</A> </H2> <P>Assicuratevi che il vostro modem sia configurato correttamente. Controllate i registri <CODE>E</CODE> e <CODE>Q</CODE>. Questo errore può capitare quando il modem cerca di dialogare con <CODE>getty</CODE>. <P> <P>Assicuratevi anche che avete lanciato <CODE>getty</CODE> nel modo corretto dal vostro <CODE>/etc/inittab</CODE>. Usando una sintassi errata oppure una periferica sbagliata si possono verificare seri problemi. <P> <P>Verificate che la sintassi del vostro <CODE>/etc/gettydefs</CODE> sia corretta usando questa procedura: <BLOCKQUOTE><CODE> <PRE> linux# getty -c /etc/gettydefs </PRE> </CODE></BLOCKQUOTE> <P> <P>Questo errore si verifica anche quando fallisce l'inizializzazione di <CODE>uugetty</CODE>. Fate riferimento alla sezione <A HREF="#nowork">getty o uugetty ancora non funzionano</A>. <P> <H2><A NAME="ss14.4">14.4 Le periferiche seriali sono lente, oppure funzionano in un sola direzione.</A> </H2> <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 <CODE>setserial</CODE> siano corretti per tutte le vostre periferiche. Inoltre controllate <CODE>/proc/ioports</CODE> e <CODE>/proc/interrupts</CODE> per eventuali conflitti. <P> <H2><A NAME="ss14.5">14.5 Il mio modem è bloccato dopo che qualcuno effettua una chiamata</A> </H2> <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 <CODE>&D3</CODE>, ma sul mio USR Courier devo impostare <CODE>&D2</CODE> e <CODE>S13=1</CODE>. Controllate sul manuale del vostro modem. <P> <H2><A NAME="ss14.6">14.6 Ho un terminale connesso al mio PC, ma quando tento di effettuare un login tutto si blocca.</A> </H2> <P> <UL> <LI>Se state usando <CODE>getty</CODE>: Molto probabilmente non avete <CODE>CLOCAL</CODE> nel vostro <CODE>/etc/gettydefs</CODE> per il vostro terminale, e molto probabilmente non state usando un cavo pienamente null-modem. Avete bisogno di <CODE>CLOCAL</CODE>, che indica a Linux di ignorare i segnali di controllo del modem. Ecco come dovrebbe apparire il tutto: <BLOCKQUOTE><CODE> <PRE> # 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 </PRE> </CODE></BLOCKQUOTE> Successivamente <CODE>terminate</CODE> il processo <CODE>getty</CODE> in modo che uno nuovo entrerà in esecuzione con le nuove impostazioni. </LI> <LI>Se state usando <CODE>agetty</CODE>: Aggiungete il flag <CODE>-L</CODE> alla linea di <CODE>agetty</CODE> nel vostro <CODE>/etc/inittab</CODE>. Questo farà ignorare i segnali di controllo del modem. Quindi riavviate <CODE>init</CODE> digitando <CODE>init q</CODE>. La configurazione dovrebbe essere più o meno così: <BLOCKQUOTE><CODE> <PRE> s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 </PRE> </CODE></BLOCKQUOTE> </LI> </UL> <P> <H2><A NAME="ss14.7">14.7 Ad alta velocità il mio modem perde alcuni dati</A> </H2> <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 <A HREF="Serial-HOWTO-13.html#uart">Cosa sono le UART?</A>. <P> <H2><A NAME="ss14.8">14.8 All'avvio del sistema Linux non riporta le periferiche seriali come le ho in precedenza configurate</A> </H2> <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: <BLOCKQUOTE><CODE> <PRE> Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A </PRE> </CODE></BLOCKQUOTE> <P>Dovete usare <CODE>setserial</CODE> per comunicare a Linux quale IRQ state usando. <P> <H2><A NAME="ss14.9">14.9 <CODE>rz</CODE> e/o <CODE>sz</CODE> non funzionano quando chiamo la mia macchina Linux con un modem.</A> </H2> <P>Se Linux cerca la periferica <CODE>/dev/modem</CODE> quando tentate di trasferire file, controllate i file <CODE>/etc profile</CODE> o <CODE>/etc csh.cshrc</CODE>. 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. <P> <H2><A NAME="ss14.10">14.10 Il mio schermo visualizza alcuni buffi caratteri</A> </H2> <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 <CODE>echo ^v^[c</CODE>. Per la serie con tutti i caratteri, ecco qua: <BLOCKQUOTE><CODE> <PRE> linux% echo <ctrl>v<esc>c </PRE> </CODE></BLOCKQUOTE> <P> <H2><A NAME="nowork"></A> <A NAME="ss14.11">14.11 <CODE>getty</CODE> o <CODE>uugetty</CODE> ancora non funzionano</A> </H2> <P>Esiste una opzione chiamata <CODE>DEBUG</CODE> inclusa in <CODE>getty_ps</CODE>. Editate il vostro file di configurazione <CODE>/etc/conf.{uu}getty.ttyS</CODE><EM>N</EM> e aggiungete <CODE>DEBUG=</CODE><EM>NNN</EM>. Dove <EM>NNN</EM> è una delle seguenti combinazioni di numeri a seconda di cosa state cercando di debuggare: <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> Impostare <CODE>DEBUG=010</CODE> è un buon punto di partenza. <P>Se state esegueneo <CODE>syslogd</CODE>, informazioni di debug appariranno nei vostro file di log. Se non state eseguendo il <CODE>syslogd</CODE> queste informazioni appariranno in <CODE>/tmp/getty:ttyS</CODE><EM>N</EM> per debuggare <CODE>getty</CODE> e <CODE>/tmp/uugetty:ttyS</CODE><EM>N</EM> per <CODE>uugetty</CODE>, e in <CODE>/var/adm/getty.log</CODE>. 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 <CODE>mgetty</CODE>. Alcune persone hanno più fortuna usando questo software. <P> <HR> <A HREF="Serial-HOWTO-15.html">Avanti</A> <A HREF="Serial-HOWTO-13.html">Indietro</A> <A HREF="Serial-HOWTO.html#toc14">Indice</A> </BODY> </HTML>