Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 644

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>The Linux Modem-HOWTO: Risoluzione di problemi </TITLE>
 <LINK HREF="Modem-HOWTO-17.html" REL=next>
 <LINK HREF="Modem-HOWTO-15.html" REL=previous>
 <LINK HREF="Modem-HOWTO.html#toc16" REL=contents>
</HEAD>
<BODY>
<A HREF="Modem-HOWTO-17.html">Avanti</A>
<A HREF="Modem-HOWTO-15.html">Indietro</A>
<A HREF="Modem-HOWTO.html#toc16">Indice</A>
<HR>
<H2><A NAME="trouble_shoot"></A> <A NAME="s16">16. Risoluzione di problemi </A> </H2>

<H2><A NAME="cant_find_modem"></A> <A NAME="ss16.1">16.1 Il mio modem &egrave; fisicamente al suo posto ma non pu&ograve; essere trovato </A>
</H2>

<P>I messaggi di errore potrebbero essere qualcosa del tipo "No modem detected" (nessun modem rilevato)
, "Modem non responding" (il modem non risponde), o (strano) "You are already online" (Sei gi&agrave;
collegato) (da minicom). Se avete installato un modem interno (con la porta seriale inclusa nel modem)
o ne state usando uno esterno e non sapete a che porta 
seriale sia connesso il problema &egrave; cercare la porta seriale.
Vedere 
<A HREF="#cant_find_port">La mia porta seriale &egrave; fisicamente presente ma non pu&ograve; essere trovata</A>.
Questa sezione riguarda come scoprire quale porta seriale ha un modem ad essa connesso.
<P>C'&egrave; un programma che cerca i modem sulle porte seriali comunemente usate chiamato
"wvdialconf". Digitate semplicemente "wvdialconf &lt;un-nuovo-nome-file&gt;".
Verr&agrave; creato il nuovo file come file di configurazione ma non avrete bisogno di
esso a meno che non andiate ad usare "wvdial" per telefonare.
Vedere 
<A HREF="Modem-HOWTO-9.html#wvdial_">Cos'&egrave; wvdialconf ?</A>. Sfortunatamente, se il vostro modem &egrave; in 
modalit&agrave; "online data", wvdialconf visualizzer&agrave; "No modem detected". Vedere 
<A HREF="#no_AT">Nessuna risposta ad AT</A>.
<P>
<P>Il vostro problema potrebbe
essere dovuto ad un winmodem (o simile) che non pu&ograve; essere usato con Linux. 
Vedere 
<A HREF="Modem-HOWTO-2.html#soft_modem">Evitare la maggior parte dei software modem</A>. Il programma "setserial" 
potrebbe essere usato per identificare le porte seriali ma non rilever&agrave; se ci sono
modem collegati ad esse. Quindi &egrave; meglio provare ad usare prima "wvdialconf".   
<P>Un altro modo di vedere se c'&egrave; un modem su una porta &egrave; lanciare "minicom" sulla porta
(dopo avere precedentemente impostato minicom sulla corretta porta seriale -- dovrete
salvare le impostazioni, quindi uscire da minicom e farlo ripartire).
Poi digitate "AT" e dovreste vedere OK (o 0 se
&egrave; impostato per restituire codici numerici di risultato ("digit result codes")). 
I risultati potrebbero essere:
<UL>
<LI> Nessuna risposta. Vedere 
<A HREF="#no_AT">Nessuna risposta ad AT</A></LI>
<LI> Se ci vogliono parecchi secondi per ottenere una risposta (incluso anche solo il cursore che
si sposta di una riga) allora vedere 
<A HREF="#slow_">Estremamente lento: il testo appare sullo schermo lentamente e dopo lunghi ritardi</A></LI>
<LI> Alcuni strani caratteri appaiono, ma non in risposta ad AT. Questo con ogni probabilit&agrave; significa
che il vostro modem &egrave; ancora connesso a qualcosa dall'altra parte della line telefonica che sta 
inviando alcuni criptici pacchetti o simile.</LI>
</UL>
<P>
<H3><A NAME="no_AT"></A> Nessuna risposta ad AT </H3>

<P> Il modem dovrebbe inviarvi un "OK" in risposta al vostro "AT", che digitate al modem (usando 
minicom o simile). Se non vedete "OK" (e in parecchi casi non vedete neppure "AT" che avete digitato)
il modem non sta rispondendo (dando per scontato che ci sia davvero un modem 
verso la porta sulla quale state digitando).
<P>Una ragione per la quale un vero modem non risponde &egrave; che si trova in modo "online data" dove non
pu&ograve; accettare alcun comando AT. Potrebbe essere in uso con un altro processo. Se detto processo 
&egrave; in esecuzione sulla porta, potreste vederlo digitando "ps -t ttyS2" o simile. Comunque il 
processo che sta usando la porta seriale (dove si trova il modem) potrebbe essere in esecuzione
su di un terminale tipo /dev/ttyS1 e non sar&agrave; individuato usando il comando sopracitato.
<P>Potreste stare usando il modem ed improvvisamente siete stati bruscamente disconnessi (come ad
esempio "uccidendo" il processo con segnale 9). In quel caso il vostro modem non viene 
reimpostato a modalit&agrave; comandi dove pu&ograve; interagire con i comandi AT.
Ecco quindi il messaggio di minicom "You are already online, hangup first" (siete gi&agrave; in linea, 
interrompete la comunicazione prima).
Bene, sembra che siate in linea ma potreste non essere collegati con nessuno attraverso la 
linea telefonica, wvdial visualizzer&agrave; "modem not responding" (il modem non risponde) nella 
medesima situazione.
<P>Per risolvere questo problema come soluzione estrema spegnete e riavviate il computer. Un altro
modo &egrave; inviare +++ al modem per dirgli di ritornare a modalit&agrave; comandi dalla modalit&agrave; in linea.
Da entrambe le parti della sequenza +++ deve esserci circa 1 secondo di ritardo (nulla inviato
durante il "guard time"). Questo potrebbe non funzionare se un altro processo sta usando il 
modem visto che la sequenza +++ potrebbe essere attaccata ad altri caratteri inseriti prima o
dopo il +++ (durante il "guard time"). Ironicamente, anche se la linea del modem fosse inattiva,
inviandogli un inaspettato +++ probabilmente si dar&agrave; il via ad uno scambio di pacchetti (o simile)
che violeranno il richiesto "guard time" cos&igrave; che +++ non fa quello che voi avreste voluto. +++ in 
genere si trova nella stringa che viene chiamata "hangup string" (stringa di interruzione) cos&igrave;
se dite a minicom (o simile di interrompere la comunicazione) potrebbe funzionare. Un altro modo
di fare questo &egrave; semplicemente quello di uscire da minicom e poi rilanciarlo.
<P>
<H2><A NAME="ss16.2">16.2 Non posso avvicinarmi ai 56K dal mio modem a 56K</A>
</H2>

<P> Deve esserci un livello di disturbo molto basso sulla linea perch&eacute; il modem possa
solo avvicinarsi ai 56K. Alcune linee telefoniche sono cos&igrave; cattive che le velocit&agrave;
ottenibili sono molto pi&ugrave; lente di 56K (tipo 28.8 od anche meno). Alcune volte telefoni
supplementari connessi alla stessa linea possono causare problemi. Per controllare 
questo potreste cercare di connettere il vostro modem direttamente nel punto dove la
linea telefonica si immette nell'edificio, disconnettendo qualsiasi altra cosa che 
quella linea alimenti (se nessuno ha qualcosa in contrario).
<P>
<H2><A NAME="ss16.3">16.3 L'invio o lo scarico di file &egrave; lento o interrotto.</A>
</H2>

<P> Il controllo di flusso (per il PC e/o da modem a modem) potrebbe non essere 
abilitato. Per il caso dell'invio di file:
Se avete impostato un'altra velocit&agrave; DTE (tipo 115.2K) allora il flusso dal 
vostro modem al vostro PC potrebbe funzionare bene ma molto del flusso di invio nell'altra direzione 
non passer&agrave; completamente a causa del collo di bottiglia della linea telefonica.
Questo risulter&agrave; in molti errori e nel reinvio dei pacchetti. Potrebbe anche volerci
un tempo oltremodo lungo per spedire un file. In alcuni casi, i file non arrivano neppure.
<P>Per il caso dello scarico di file:
Se state scaricando dei grandi file non compressi o delle pagine web,
(ed il vostro modem usa la compressione dei dati) oppure se avete impostata una 
bassa velocit&agrave; DTE, allore lo scarico potrebbe essere interrotto a causa della 
mancanza del controllo di flusso.
<P>
<H2><A NAME="ss16.4">16.4 Ricevendo una chiamata continuo a ricevere "line NNN of inittab invalid"</A>
</H2>

<P>Ovvero: <CODE>riga NNN di inittab non valida</CODE>
<P>Assicuratevi di usare la sintassi corretta per la vostra versione di 
<CODE>init</CODE>.  I diversi <CODE>init</CODE> esistenti usano sintassi differenti nel file
<CODE>/etc/inittab</CODE>.  Assicuratevi di usare la sintassi corretta
per la vostra versione di <CODE>getty</CODE>. 
<P>
<P>
<H2><A NAME="ss16.5">16.5 Continuo a ricevere ``Id "S3" respawning too fast&colon; disabled for 5 minutes''</A>
</H2>

<P> Id "S3" &egrave; solo un esempio. In questo caso cercate la riga che inizia con "S3" in
<CODE>/etc/inittab</CODE>. Questa &egrave; la causa del problema. Assicuratevi che la sintassi
per questa riga sia corretta, che il dispositivo (ttyS3) esista e che possa essere trovato.
<P>Assicuratevi che il vostro modem sia configurato correttamente. Guardate i 
registri <CODE>E</CODE> e <CODE>Q</CODE>.  
Questo pu&ograve; capitare quando il vostro modem sta "chiaccherando" con <CODE>getty</CODE>.
<P> 
Per uugetty, verificate che la sintassi del vostro <CODE>/etc/gettydefs</CODE> sia corretta 
eseguendo il seguente comando: 
<BLOCKQUOTE><CODE>
<PRE>
linux# getty -c /etc/gettydefs
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Questo pu&ograve; anche capitare quando l'inizializzazione di <CODE>uugetty</CODE> fallisce.
Vedere la sezione  
<A HREF="#nowork">uugetty non funziona ancora</A>.
<P>
<H2><A NAME="ss16.6">16.6 Il mio modem &egrave; bloccato dopo che qualcuno ha agganciato, oppure uugetty non riparte</A>
</H2>

<P>  Questo pu&ograve; capitare quando il vostro modem non effettua il reset dopo che &egrave; 
caduto il DTR. 
Greg Hankins ha visto i suoi led RD e SD impazzire quando questo &egrave; successo. 
Dovete fare resettare il vostro modem. Molti modem Hayes compatibili fanno 
questo con <CODE>&amp;D3</CODE>, ma sul suo USR Courier, ha dovuto impostare 
<CODE>&amp;D2</CODE> e <CODE>S13=1</CODE>.  Controllate il manuale del modem (se ne avete uno).
<P>
<H2><A NAME="nowork"></A> <A NAME="ss16.7">16.7 uugetty non funziona ancora </A>
</H2>

<P>Esiste un'opzione <CODE>DEBUG</CODE> all'interno di <CODE>getty_ps</CODE>. Modificate 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> &egrave; una delle seguenti combinazioni 
di numeri a seconda di quello che state cercando di debuggare:
<P>
<BLOCKQUOTE><CODE>
<PRE>
D_OPT   001            impostazione opzioni
D_DEF   002            elaborazione file di default
D_UTMP  004            elaborazione di utmp/wtmp 
D_INIT  010            inizializzazione della linea (INIT)
D_GTAB  020            elaborazione del file gettytab 
D_RUN   040            altre diagnostiche di runtime 
D_RB    100            ringback debugging
D_LOCK  200            elaborazione del lockfile di uugetty 
D_SCH   400            elaborazione schedule 
D_ALL   777            tutto
</PRE>
</CODE></BLOCKQUOTE>

Impostare <CODE>DEBUG=010</CODE> &egrave; un buon punto da cui partire.
<P>Se avete in esecuzione <CODE>syslogd</CODE>, le informazioni di debugging appariranno nei 
vostri file di log.  Se non avete in esecuzione <CODE>syslogd</CODE> le informazioni appariranno 
in <CODE>/tmp/getty:ttyS</CODE><EM>N</EM> per il debugging <CODE>getty</CODE>
e <CODE>/tmp/uugetty:ttyS</CODE><EM>N</EM> per <CODE>uugetty</CODE> ed in 
<CODE>/var/adm/getty.log</CODE>. Controllate la informazioni di debugging e vedete 
cosa sta succedendo. Molto probabilmente, dovrete regolare alcuni parametri nel 
vostro file di configurazione e riconfigurare il modem.
<P>Potete anche provare <CODE>mgetty</CODE>. Alcune persone hanno avuto miglior fortuna con 
quest'ultimo. 
<P>Change log:
Apr. 00: 2 porte allo stesso indirizzo
<H2><A NAME="ss16.8">16.8 Le seguenti sottosezioni sono sia nel Serial che nel Modem HOWTO:</A>
</H2>

<H2><A NAME="cant_find_port"></A> <A NAME="ss16.9">16.9 La mia porta seriale &egrave; fisicamente l&igrave; ma non pu&ograve; essere trovata</A>
</H2>

<P> Se un dispositivo (tipo un modem) pare funzionare allora la porta seriale &egrave; stata trovaata. 
Se non funziona per niente, allora occorre assicurarsi che la vostra porta seriale
possa essere trovata.
<P>Controllate i men&ugrave; ed i messaggi del BIOS. Per i bus PCI usate lspci
Se &egrave; una porta seriale PnP su bus ISA
provate "pnpdump --dumpregs" e/o consultate il Plug-and-Play HOWTO. Usando "scanport" otterrete
una esplorazione di tutte le porte sul bus ISA e potreste scopire una porta sconosciuta che
potrebbe essere una porta seriale (ma la porta non viene verificata). Il PC potrebbe bloccarsi.
Potreste provare a rilevarla con setserial. Vedere 
<A HREF="Modem-HOWTO-9.html#probing_ss">Probing</A>. Se nulla sembra passare attraverso la porta, essa  potrebbe esserci ma avere un 
interrupt sbagliato. 
Vedere 
<A HREF="#slow_">Estremamente lento: il testo appare sullo schermo lentamente e dopo lunghi ritardi</A><P>Se due porta hanno lo stesso indirizzo IO allora la verifica indicher&agrave; in modo errato solo una porta.
La rilevazione Plug-and-play trover&agrave; entrambe le porte cos&igrave; questo potrebbe essere un problema solo 
se almeno una delle porte non &egrave; Plug-and-play. Errori di tutti i tipi potrebbero verificarsi
per i dispositivi che stanno "condividendo una porta" ma il fatto che ci siano due dispositivi sulla
stessa porta non sembra essere stato rilevato (eccetto, si spera, da voi). Se gli IRQ sono diversi
la rilevazione dell'IRQ con setserial potrebbe "scopire" questa situazione non riuscendo a rilevare
un IRQ. Vedere 
<A HREF="Modem-HOWTO-9.html#probing_ss">Rilevamento</A>.
<P>
<P>
<H2><A NAME="slow_"></A> <A NAME="ss16.10">16.10 Estremamente lento: il testo appare sullo schermo lentamente e dopo lunghi ritardi</A>
</H2>

<P> &Egrave; probabilmente un conflitto od una errata impostazione di interrupt. Ecco alcuni
sintomi di quello che potrebbe succedere la prima volta che cercate di usare un modem,
terminale o stampante. In alcuni casi digitate qualcosa ma sullo schermo 
non appare nulla se non dopo parecchi secondi. Solo l'ultimo carattere digitato potrebbe apparire.
Potrebbe anche essere solo un
invisibile carattere di &lt;return&gt; cos&igrave; tutto quel che noterete sar&agrave; che il cursore 
scende di una riga)
In altri casi dove dovrebbero comparire molti dati sullo schemo, sono un gruppo di circa
16 caratteri compare. Poi c'&egrave; un'attesa di parecchi secondi per il prossimo gruppo di
caratteri. Potreste anche ricevere messaggi di errore di "input overrun" (o trovarli
nei file di log)
<P>Per ulteriori dettaglio sui sintomi e perch&eacute; questo accade vedere il Serial-HOWTO 
sezione "Interrupt Problems Details".
<P>Se la cosa coinvolge anche dispositivi Plug-and-Play, vedere anche il Plug-and-Play HOWTO.
<P>Come veloce controllo per vedere se veramente si tratta di un problema di interrupt,
impostate l'IRQ a zero con "setserial". Questo dice al driver di non usare gli 
interrupt ma il polling. Se sembra che questo
risolva i problemi di "lentezza", allora si tratta di un problema di interrupt. 
Dovreste comunque cercare di risolverlo visto che il polling usa
esagerate risorse del computer. 
<P>Cercare di trovare il conflitto di interrupt potrebbe non essere semplice visto che
si suppone che Linux non consenta alcun conflitto di interrupt e di conseguenza vi invii
un errore di 
<A HREF="#busy_err">/dev/ttys?: Device or resource busy (Dispositivo o risorsa impegnata)</A>
se pensa che stiate tentando di creare un conflitto. Ma un vero conflitto pu&ograve; essere 
creato se "setserial" dispone di informazioni errate. Quindi usare "setserial" non far&agrave; rilevare
alcun conflitto (e neppure guardando in /proc/interrupts che basa le suo informazioni
su "setserial"). Dovete quindi sapere quello che "setserial" pensa cos&igrave; che possiate
evidenziare quello che &egrave; sbagliato e cambiarlo quando avrete determinato quello che &egrave; veramente
impostato nell'hardware.
<P>Quello che dovete fare &egrave; verificare come &egrave; impostato l'hardware controllando i "jumper" od
usando software PnP per controllare le vere impostazioni dell'hardware. Per il PnP potete lanciare
"pnpdump --dumpregs" (se &egrave; un bus ISA)  o "lspci" (bus PCI). Confrontate i risultati 
con quello che Linux pensa sia impostato nell'hardware.
<P>
<P>
<H2><A NAME="ss16.11">16.11 Abbastanza lento: Mi aspettavo che fosse un poco pi&ugrave; veloce</A>
</H2>

<P> Una ragione potrebbe essere che qualunque cosa sia sulla porta seriale (tipo un modem,
un terminale, una stampante) non funziona cos&igrave; veloce come pensate che dovrebbe.
Un modem a 56k raramente funziona a 56k ed Internet spesso &egrave; congestionata ed ha colli di
bottiglia che rallentano le cose. Se il modem dall'altra parte non ha una connessione digitale alla
linea telefonica (ed usa uno speciale "modem digitale" non in vendita nella maggior parte
dei negozi di computer), allora le velocit&agrave; oltre i 33,6k non sono possibili.
<P>Un'altra possibile ragione &egrave; che il driver seriale pensa che abbiate una porta seriale 
obsoleta (UART 8250, 16450, o le prime 16550). Vedere 
<A HREF="Modem-HOWTO-15.html#uart_">Cosa sono le UART?</A>.
Usate "setserial -g /dev/ttyS*".
Se mostra qualsiasi cosa meno di 16550A, allora &egrave; probabilmente proprio questo il problema.
Se invece "setserial" lo identifica cos&igrave; sbagliando, modificatela. Vedere 
<A HREF="Modem-HOWTO-9.html#set_serial">Cos'&egrave; Serial?</A> per maggiori informazioni. Naturalmente se avete veramente una porta 
obsoleta, mentire a setserial su questo non far&agrave; altro che peggiorare le cose.
<P>
<P>
<H2><A NAME="irqs_shown_wrong"></A> <A NAME="ss16.12">16.12 La schermata di avvio mostra IRQ sbagliati per le porte seriali.</A>
 </H2>

<P> Linux non esegue nessuna identificazione di IRQ in avvio. Quando il modulo di 
setserial si carica esegue semplicemente una rilevazione del dispositivo seriale.
Quindi non fate caso a quello che dice circa l'IRQ, perch&eacute; sta semplicemente assumendo
gli IRQ standard. Cos&igrave; &egrave; fatto, perch&eacute; l'identificazione degli IRQ &egrave; inaffidabile e
potrebbe essere ingannevole. Ma se e quando setserial viene lanciata da uno script di
avvio, cambia gli IRQ e visualizza il nuovo (ed auspicabilmente corretto) stato nella
schermata di partenza. Se l'IRQ sbagliato non viene corretto da una seguente visualizzazione
sullo schermo, allora avete un problema.
<P>Quindi, anche se ho la mia <CODE>ttyS2</CODE> impostata ad IRQ 5, continuo a vedere
<BLOCKQUOTE><CODE>
<PRE>
ttyS02 at 0x03e8 (irq = 4) is a 16550A
</PRE>
</CODE></BLOCKQUOTE>

all'inizio quando parte Linux (i vecchi kernel potrebbero mostrare "ttyS02" come "tty02")
Dovete usare <CODE>setserial</CODE> per dire a Linux che IRQ state usando.
<P>
<H2><A NAME="ss16.13">16.13 "Cannot open /dev/ttyS?: Permission denied"</A>
</H2>

<P>Ovvero: <CODE>Impossibile aprire /dev/ttyS?: Permesso negato</CODE>
<P> Controllare i permessi su questa porta con "ls -l /dev/ttyS?".
Se siete i proprietari di questa ttyS? allora dovete avere i permessi di lettura e
scrittura: crw con il c (Character device) in colonna 1. Se non siete i proprietari
dovreste invece vedere rw- nelle colonne 8 e 9 che significa che tutti hanno diritti
di lettura e scrittura su di esso. Usate "chmod" per cambiare i permessi. Ci sono 
modi pi&ugrave; complicati per ottenere accessi tipo appartenere ad un "gruppo" che ha
permessi di gruppo.
<P>
<H2><A NAME="ss16.14">16.14 "Operation not supported by device" per ttySx</A>
</H2>

<P>Ovvero: <CODE>Operazione non supportata dal dispositivo</CODE>
<P> Questo vuol dire che un operazione richiesta da setserial, stty, ecc. non 
pu&ograve; essere effettuata perch&eacute; il kernel non la supporta.
In precedenza questo era spesso causato dal fatto che il modulo seriale non era stato 
caricato. Ma con l'avvento del PnP, potrebbe pi&ugrave; probabilmente dire che non 
c'&egrave; un modem (od altro dispositivo seriale) all'indirizzo dove il driver (e setserial)
pensa che sia. Se non c'&egrave; un modem l&igrave;, i comandi inviati a quell'indirizzo 
ovviamente non vengono eseguiti.
Vedere 
<A HREF="Modem-HOWTO-6.html#io-irq_in_hdw">Cos'&egrave; impostato nell'hardware della mia porta seriale?</A>.
<P>Se il modulo seriale non era caricato ma "lsmod" mostra che ora &egrave; caricato potrebbe 
essere il caso che sia stato caricato adesso ma non lo era quando si &egrave; ricevuto il 
mesasggio di errore. In molti casi il modulo verr&agrave; automaticamente caricato quando 
necessario (se si riesce a trovare). Per forzare il caricamento del modulo seriale si
potrebbe elencarlo nel file /etc/modules.conf o /etc/modules. Il vero modulo dovrebbe
risiedere in /lib/modules/.../misc/serial.o.
<P>
<H2><A NAME="ss16.15">16.15 "Cannot create lockfile. Sorry" (Spiacente, non posso creare il file di lock)</A>
</H2>

<P>Ovvero: <CODE>Spiacente, impossibile creare il file di lock.</CODE>
<P> Quando viene "aperta" una porta da un programma viene creato un file di lock in 
/var/lock. Errati permessi per la directory lock non consentiranno la
creazione di un file di lock.
Usare "ls -ld /var/lock" per vedere se i permessi sono a posto: in genere
rwx per tutti (ripetuto 3 volte). Se &egrave; sbagliato, usate "chmod" per mettere a posto lo cose.
Naturalmente, se non esiste una directory di lock nessun file di lock potr&agrave; esservi creato.
Vedere la sottosezione del Serial-HOWTO: "What Are Lock Files". 
<P>
<H2><A NAME="ss16.16">16.16 "Device /dev/ttyS? is locked." (Il dispositivo /dev/ttyS? &egrave; bloccato)</A>
</H2>

<P>Ovvero: <CODE>Il dispositivo </CODE>dev/ttyS? &egrave; bloccato./
<P> Questo vuol dire che qualcun altro (o qualche altro processo) sta presumibilmente usando
la porta seriale. Ci sono diversi modi per cercare di scoprire quale processo la sta usando.
Un modo &egrave; dare un occhiata al contenuto del file di lock (/var/lock/LCK...). Dovrebbe essere
l'identificativo del processo. Se l'identificativo &egrave; diciamo 261 digitate "ps 261" per scoprire
cosa sia. Poi, se il processo non &egrave; pi&ugrave; necessario, potrebbe essere gentilmente eliminato da
"kill 261". Se si rifiuta di essere eliminato usate "kill -9 261" per forzare l'eliminazione,
ma in questo caso il file di lock non sar&agrave; rimosso, e dovrete provvedere manualmente. Naturalmente
se non c'&egrave; un processo 261 allora basta che rimuoviate il file di lock, ma nella maggior parte
dei casi il file di lock dovrebbe esser stato automaticamente rimosso se contiene un 
identificativo di processo chiuso (come 261).
<P>
<H2><A NAME="busy_err"></A> <A NAME="ss16.17">16.17 "/dev/ttyS?: Device or resource busy" (Dispositivo o risorsa occupati) </A>
</H2>

<P>Significa che il dispositivo al quale state tentando di accedere (o usare) &egrave; presumibilmente
occupato (in uso) o che una risorsa di cui necessita (tipo un IRQ) &egrave; presumibilmente in uso da
parte di un altro dispositivo. Talvolta &egrave; davvero occupato ma in altri casi sembra erroneamente 
in uso.
<P>"resource busy" (risorsa impegnata) spesso vuol dire (ad esempio per <CODE>ttyS2</CODE>) "Non puoi usare 
<CODE>ttyS2</CODE> visto
che un altro dispositivo sta usando l'interrupt di ttyS2". Il potenziale conflitto di interrupt &egrave;
determinato da quello che pensa "setserial". Un messaggio di errore pi&ugrave; accurato dovrebbe essere "Non
posso usare <CODE>ttyS2</CODE> visto che i dati di setserial (e quelli del kernel) indicano che un 
altro dispositivo sta usando l'interrupt di <CODE>ttyS2</CODE>". Se due dispositivi usano lo stesso IRQ e voi
fate partire uno solo dei due dispositivi, tutto &egrave; a posto perch&eacute; non c'&egrave; ancora conflitto. Ma
quando in seguito cercate di lanciare il secondo dispositivo (senza chiudere il primo) otterrete il
messaggio di errore "... resource busy". Questo perch&eacute; il kernel tiene traccia solamente di quale
IRQ &egrave; realmente in suo e i conflitti non capitano a meno che i dispositivi siano in uso (aperti)
<P>Ci sono due casi: Potrebbe esserci un vero conflitto di interrupt che si sta evitando.  
Ma se setserial ha sbagliato, allora non dovrebbe esserci alcuna ragione perch&eacute; <CODE>ttyS2</CODE> non possa essere
usata, eccetto che setserial ha erroneamente previsto un conflitto. Quello che occorre fare &egrave; scoprire
quale interrupt setserial pensa che stia usando <CODE>ttyS2</CODE>. Pi&ugrave; facile a dirsi che a farsi visto
che non potete usare il comando "setserial" per <CODE>ttyS2</CODE> visto che l'IRQ per ttyS2 &egrave; presumibilmente
occupato ed otterreste lo stesso messaggio di errore "... busy". Per risolvere o eseguite un riavvio
oppure: uscite od eliminate tutti i processi che potrebbero cauasre il conflitto. Se riavviate: 1.
osservate i messaggi in fase di avvio relativi alle porte seriali. 2. Sperate che il file che lancia
"setserial" all'avvia non sia esso stesso a creare ancora lo stesso conflitto.
<P>Se pensate di sapere quale IRQ stia usando <CODE>ttyS2</CODE> allora potreste dare uno sguardo a 
/proc/interrupts per scoprire chi altro sta attualmente usando questo IRQ.
Potreste anche voler fare un doppio controllo perch&eacute; qualsiasi IRQ mostrato qui (e da "setserial")
sia corretto (lo stesso di quello impostato nell'hardware). Un modo per provare se c'&egrave; o meno un 
conflitto di interrupt &egrave; impostare l'IR1 a 0 (polling) usando "setserial". Se il messaggio di 
risorsa occupata (busy) scompare, probabilmente c'&egrave; un potenziale conflitto di interrupt. Non
&egrave; una buona idea lasciarlo permanentemente impostato a 0 visto verranno usate pi&ugrave; risorse della CPU.
<P>Questo paragrafo &egrave; principalmente per il caso in cui un modem &egrave; usato sia per chiamare che per
ricevere chiamate. Se il segnale DSD &egrave; inviato alla porta, quello porta penser&agrave; che sia occupata.
Questo problema pu&ograve; sorgere quando state cercando di chiamare con un modem quando DTC o DTR non
sono implememntati correttamente. DCD dovrebbe essere attivo quando c'&egrave; una effettiva connessione
(ad esempio qualcuno ci ha chiamati), non quando <CODE>getty</CODE> sta guardando la porta.
Assicuratevi che il vostro modem sia configurato per attivare DCD solo quando c'&egrave; una connessione. 
DTR dovrebbe essere attivo ogniqualvolta qualcuno sta usando o guardando la linea, tipo <CODE>getty</CODE>,
<CODE>kermit</CODE>, o qualche altro programma di comunicazione.
<P>
<P>
<H2><A NAME="ss16.18">16.18 Strumenti per la risoluzione dei problemi</A>
</H2>

<P>Questi sono alcuni dei programmi che potreste aver bisogno di usare per la risoluzione dei
problemi:
<UL>
<LI> "lsof /dev/ttySx" far&agrave; un elenco delle porte seriali che sono aperte.</LI>
<LI> "setserial" mostra ed imposta la configurazione hardware a basso livello di una porta
(quella che il driver pensa che sia). Vedere 
<A HREF="Modem-HOWTO-9.html#set_serial">Cos'&egrave; setserial</A>.</LI>
<LI> "stty" mostra ed imposta la configurazione di una porta (ad eccezione di quanto gestito
da "setserial").
Vedere la sezione del Serial-HOWTO: "Stty", </LI>
<LI> "modemstat" o "statserial"
che mostrano lo stato corrente dei vari segnali di linea (tipo DTR, CTS, ecc.)
di segnale (tipo DTR, CTS, ecc)</LI>
<LI> "irqtune" dar&agrave; agli interrupt della porta seriale una priorit&agrave; maggiore 
per migliorare le prestazioni.</LI>
<LI> "hdparm" per la messa a punto dell'hard-disk potrebbe fornire un ulteriore aiuto</LI>
<LI> "lspci" mostra gli effettivi IRQ, ecc, dell'hardware del bus PCI.</LI>
<LI> "pnpdump --dumpregs" mostra gli effettivi IRQ, ecc., dell'hardware per i 
dispositivi PnP sul bus ISA.</LI>
<LI> Alcuni "file" nella directory /proc (tipo ioports e interupts).</LI>
</UL>
<P>
<P>
<HR>
<A HREF="Modem-HOWTO-17.html">Avanti</A>
<A HREF="Modem-HOWTO-15.html">Indietro</A>
<A HREF="Modem-HOWTO.html#toc16">Indice</A>
</BODY>
</HTML>