Sophie

Sophie

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

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 SCSI HOWTO: Problemi comuni </TITLE>
 <LINK HREF="SCSI-HOWTO-3.html" REL=next>
 <LINK HREF="SCSI-HOWTO-1.html" REL=previous>
 <LINK HREF="SCSI-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="SCSI-HOWTO-3.html">Avanti</A>
<A HREF="SCSI-HOWTO-1.html">Indietro</A>
<A HREF="SCSI-HOWTO.html#toc2">Indice</A>
<HR>
<H2><A NAME="s2">2. Problemi comuni </A></H2>

<P>Questa sezione fornisce un elenco dei problemi in cui la gente incorre 
comunemente. Se non c'&egrave; nulla qui che risponda alle vostre domande, dovreste
consultare anche le sezioni che riguardano la vostra scheda di 
interfaccia SCSI ed i dispositivi che vi stanno procurando dei 
problemi. 
<P>
<H2><A NAME="Flakiness"></A> <A NAME="ss2.1">2.1 Malfunzionamento generale </A>
</H2>

<P>Se vi capitano errori casuali, le cause pi&ugrave; probabili sono problemi di 
cavi e terminazioni.
<P>Alcuni prodotti, come quelli basati sui pi&ugrave; recenti chip NCR, sono 
caratterizzati da filtraggio digitale e negazione attiva del segnale, e 
non sono molto sensibili ai problemi di cablaggio.
<P>Altri, come Adaptec 154xC, 154xCF, e 274x sono _estremamente_ sensibili ai
problemi di cablaggio e di terminazione e possono dare problemi anche 
con cavi che funzionano con altri sistemi.
<P>Insisto: alcuni adattatori host sono _estremamente_ sensibili ai problemi di 
cablaggio e di terminazione, quindi cavi e terminatori devono essere le 
due cose da controllare per prime nel caso in cui insorgano problemi.
<P>Per minimizzare i vostri problemi, dovreste usare cavi che:
<OL>
<LI> Siano conformi a SCSI-II.</LI>
<LI> Abbiano una impedenza caratteristica di 132 ohm.</LI>
<LI> Provengano tutti dallo stesso produttore, in modo da evitare 
errati accoppiamenti di impedenza. </LI>
<LI> Provengano da un produttore fidato come Amphenol.</LI>
</OL>
<P>La tensione di terminazione dovrebbe essere fornita da tutti i dispositivi 
sul bus SCSI, tramite un diodo, in modo tale da prevenire cali di 
corrente, cosicch&eacute; ci sia sempre potenza sufficiente nella parte 
terminale dei cavi, laddove &egrave; necessaria. Per prevenire danni nel caso in 
cui il bus vada in corto, TERMPWR dovrebbe essere fatto passare tramite 
un fusibile o altri dispositivi di limitazione di corrente.
<P>Se vengono utilizzati dispositivi multipli, cavi esterni, o FAST SCSI 2, 
dovrebbe essere utilizzata su entrambe le estremit&agrave; del bus SCSI una 
perfetta terminazione attiva o forzata.
<P>Per ulteriori infomazioni a riguardo della terminazione attiva
consultate le FAQ di Comp.Periphs.Scsi (disponibili presso tsx-11 in 
pub/linux/ALPHA/scsi).
<P>
<H2><A NAME="ss2.2">2.2 La linea di comandi kernel</A>
</H2>

<P>Altre parti del documento si riferiscono ad una ``linea di comandi kernel''.
<P>La linea di comandi kernel &egrave; un insieme di opzioni che potete specificare 
o dal prompt di LILO dopo il nome di un'immagine, o nel campo append nel 
vostro file di configurazione LILO (in LILO .14 e pi&ugrave; recenti, usate 
/etc/lilo.conf, per versioni pi&ugrave; vecchie, usate /etc/lilo/config).
<P>Eseguite un boot del vostro sistema con LILO, e schiacciate uno dei tasti 
alt, control, o shift quando appare il prompt. LILO dovrebbe rispondere 
con
<P>
<BLOCKQUOTE><CODE>
<PRE>
:
</PRE>
</CODE></BLOCKQUOTE>
<P>A questo prompt potete selezionare un'immagine kernel di cui eseguire il 
boot, od averne un elenco con ?. Ad esempio
<P>
<BLOCKQUOTE><CODE>
<PRE>
:?

ramdisk floppy harddisk
</PRE>
</CODE></BLOCKQUOTE>
<P>Per eseguire il boot di quel kernel con le opzioni della linea di comando
che avete selezionato, semplicemente inserite il nome seguito da una
lista di opzioni separate fra loro da spazi bianchi, terminando con invio.
<P>Le opzioni assumono la forma di:
<P>
<BLOCKQUOTE><CODE>
<PRE>
variabile=lista_di_valori
</PRE>
</CODE></BLOCKQUOTE>
<P>Dove lista_di_valori pu&ograve; essere un singolo valore o una lista di valori 
separati da virgole senza nessuno spazio bianco. Con l'eccezione del 
dispositivo di root, valori individuali sono numeri, e possono essere 
specificati sia in decimale che in esadecimale.
<P>Ad esempio, per eseguire un boot di Linux con un clone Adaptec 1520 non
riconosciuto al bootup, potete digitare
<P>
<BLOCKQUOTE><CODE>
<PRE>
:floppy aha152x=0x340,11,7,1
</PRE>
</CODE></BLOCKQUOTE>
<P>Se non volete digitare tutto questo nel momento del boot, &egrave; anche 
possibile utilizzare l'opzione ``append'' del file di configurazione LILO 
con LILO .13 e versioni pi&ugrave; recenti.
<P>Ad esempio
<P>
<BLOCKQUOTE><CODE>
<PRE>
append="aha152x=0x340,11,7,1"
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss2.3">2.3 Un dispositivo SCSI appare a tutti i possibili ID </A>
</H2>

<P>Se questo &egrave; il caso, avete impostato il dispositivo allo stesso indirizzo
del controller (solitamente 7, anche se alcune schede usano altri 
indirizzi: il 6 viene usato da alcune schede di Future Domain.
<P>Cambiate l'impostazione dei jumper.
<P>
<H2><A NAME="ss2.4">2.4 Un dispositivo SCSI appare a tutti i possibili LUN</A>
</H2>

<P>Il dispositivo ha un firmware difettoso.
<P>Come soluzione temporanea dovreste provare a usare l'opzione della riga
di comando kernel:
<P>
<BLOCKQUOTE><CODE>
<PRE>
max_scsi_luns=1
</PRE>
</CODE></BLOCKQUOTE>
<P>Se funziona c'&egrave; una lista di dispositivi difettosi nel sorgente del
kernel, in drivers/scsi/scsi.c nella variabile blacklist (``lista nera''). 
Aggiungete il vostro dispositivo alla lista e inviate un messaggio a 
Linus Torvalds <CODE>&lt;Linus.Torvalds@cs.Helsinki.FI></CODE>. 
<P>
<P>
<H2><A NAME="ss2.5">2.5 Vi capitano errori di ``sense'' (non viene riconosciuta la presenza dei dispositivi) ma sapete che i dispositivi non hanno problemi</A>
</H2>

<P>Alcune volte questo &egrave; causato da cavi scadenti o da terminazioni 
improprie. 
Vedete la sezione 
<A HREF="#Flakiness">Malfunzionamento Generale</A>.
<P>
<H2><A NAME="ss2.6">2.6 Un kernel configurato con il supporto di rete non funziona</A>
</H2>

<P>Le routine di autorilevamento per molti driver di rete non sono passive, 
e la loro esecuzione interferisce con alcuni dei driver SCSI.
<P>
<H2><A NAME="ss2.7">2.7 Dispositivo individuato, ma non accessibile</A>
</H2>

<P>Un dispositivo SCSI viene individuato dal kernel, ma non siete in grado 
di accedervi, ad esempio mkfs /dev/sdc, tar xvf /dev/rst2, ecc. non 
funzionano.
<P>Non avete un file speciale in /dev per il dispositivo.
<P>I dispositivi Unix sono identificati come dispositivi a blocchi 
(<EM>block</EM>) o a caratteri (<EM>character</EM>) (i dispositivi a blocchi passano 
attraverso un buffer, i dispositivi a carattere no), con un ``numero 
primario'' (<EM>major number</EM>) (che identifica il driver che viene 
utilizzato - block major 8 corrisponde ai dischi SCSI) ed un ``numero
secondario'' (<EM>minor number</EM>) (che corrisponde all'unit&agrave; resa accessibile 
tramite un dato driver - ad esempio character major 4, minor 0 &egrave; la prima 
console virtuale, minor 1 la successiva, eccetera). Comunque, l'accedere 
a questi dispositivi tramite questi nomi sarebbe contrario alla metafora di 
unix/Linux secondo cui ``tutto &egrave; un file'', perci&ograve; vengono creati sotto 
/dev file speciali di dispositivo a blocchi e a caratteri. Questo vi permette
di accedere al terzo disco SCSI (nell'insieme, non ad una partizione) con 
/dev/sdc, alla prima porta seriale come /dev/ttyS0, ecc.
<P>Il metodo preferibile per creare un file &egrave; quello di usare MAKEDEV - 
andate sulla directory /dev (<CODE>cd /dev</CODE>) 
<P>ed eseguite MAKEDEV (come root) per i dispositivi che volete creare; ad 
esempio: 
<P>
<BLOCKQUOTE><CODE>
<PRE>
 ./MAKEDEV sdc
</PRE>
</CODE></BLOCKQUOTE>
<P>anche i caratteri jolly ``dovrebbero'' funzionare, ad esempio:
<P>
<BLOCKQUOTE><CODE>
<PRE>
 ./MAKEDEV sd\*
</PRE>
</CODE></BLOCKQUOTE>
<P>``dovrebbe'' creare tutti i dispositivi di dischi SCSI (facendo
questo dovrebbero essere creati i dispositivi da /dev/sda a /dev/sdp, con 
quindici partizioni ciascuno).
<P>
<BLOCKQUOTE><CODE>
<PRE>
 ./MAKEDEV sdc\*
</PRE>
</CODE></BLOCKQUOTE>
<P>``dovrebbe'' creare /dev/sdc e tutte e quindici le partizioni 
permesse su /dev/sdc, ecc.
<P>Dico ``dovrebbe'' perch&eacute; questo &egrave; il comportamento standard di unix - lo 
script MAKEDEV nella vostra installazione potrebbe non essere conforme a 
questo comportamento, o il numero di dispositivi che andr&agrave; a creare 
potrebbe essere minore.
<P>Se MAKEDEV non far&agrave; la magia giusta per voi, dovrete creare i file di
dispositivo a mano con il comando mknod.
<P>La tipologia blocco/carattere, numeri primari e secondari sono indicati in
maniera specifica per i vari dispositivi SCSI nella sezione 
<A HREF="SCSI-HOWTO-6.html#DevFiles">File di dispositivo</A>.
<P>Prendete quei numeri e usate (come root):
<P>
<BLOCKQUOTE><CODE>
<PRE>
mknod /dev/device b|c major minor
</PRE>
</CODE></BLOCKQUOTE>
<P>ad esempio:
<P>
<BLOCKQUOTE><CODE>
<PRE>
mknod /dev/sdc b 8 32
mknod /dev/rst0 c 9 0
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="SCSISysLockups"></A> <A NAME="ss2.8">2.8 Blocco del sistema SCSI </A>
</H2>

<P>I motivi possono essere molti. Consultate anche la sezione specifica per il 
vostro adattatore host per ulteriori possibili soluzioni. 
<P>Ci sono casi in cui sembra che il blocco avvenga quando pi&ugrave; dispositivi 
sono in funzione contemporaneamente. In questi casi, potete provare a 
mettervi in contatto con il produttore dei dispositivi in modo da vedere 
se ci sono disponibili degli aggiornamenti del firmware in grado di 
risolvere il problema. Se vi &egrave; possibile provate un cavo SCSI diverso, 
oppure provate su un altro sistema. Pu&ograve; dipendere anche da blocchi 
difettosi sui dischi, o da un cattivo utilizzo del DMA da parte della 
scheda madre (per adattatori host che fanno DMA). Ci sono probabilmente 
molte altre possibili cause che possono portare a problemi del genere.
<P>Qualche volta questi problemi insorgono quando sul bus sono in
funzione pi&ugrave; dispositivi contemporaneamente. In questo caso, se il
vostro driver dell'adattatore host supporta la presenza contemporanea
sul bus di pi&ugrave; comandi, provate a ridurne il numero a 1 e vedete se
ci&ograve; porta a dei miglioramenti. Se avete sul bus dispositivi a nastro o
lettori CD lenti, quella appena esposta potrebbe non essere una
soluzione praticabile.
<P>
<H2><A NAME="KernelConfig"></A> <A NAME="ss2.9">2.9 Configurazione e compilazione del kernel </A>
</H2>

<P>Driver SCSI inutilizzati occupano memoria, aggravando il problema della
mancanza di memoria in sistemi piccoli, dato che la memoria kernel &egrave; ``non 
paginabile''. 
<P>La cosa migliore &egrave; quindi costruire un kernel ``personalizzato'' per il 
vostro sistema, con installati solo i driver di cui c'&egrave; effettiva necessit&agrave;.
<P>
<BLOCKQUOTE><CODE>
<PRE>
andate sulla directory /usr/src/linux
</PRE>
</CODE></BLOCKQUOTE>
<P>Se state utilizzando un dispositivo root diverso da quello corrente, o 
uno schermo diverso da VGA 80x25, e state scrivendo un floppy per il 
boot, dovreste editare il makefile, e accertarvi che le righe
<P>
<BLOCKQUOTE><CODE>
<PRE>
ROOT_DEV =
</PRE>
</CODE></BLOCKQUOTE>
   
<P>e
<P>
<BLOCKQUOTE><CODE>
<PRE>
SVGA_MODE =
</PRE>
</CODE></BLOCKQUOTE>
<P>siano come le desiderate.
<P>Se avete installato delle patch, potreste voler essere certi che tutti i 
file siano ricompilati. In questo caso, dovreste digitare
<P>
<BLOCKQUOTE><CODE>
<PRE>
make mrproper  
</PRE>
</CODE></BLOCKQUOTE>
<P>Sia che abbiate eseguito make mrproper sia che non l'abbiate fatto, digitate
<P>
<BLOCKQUOTE><CODE>
<PRE>
make config
</PRE>
</CODE></BLOCKQUOTE>
<P>e rispondete alle domande di configurazione. Poi eseguite
<P>
<BLOCKQUOTE><CODE>
<PRE>
  
make depend
</PRE>
</CODE></BLOCKQUOTE>
<P>e infine
<P>
<BLOCKQUOTE><CODE>
<PRE>
  
make
</PRE>
</CODE></BLOCKQUOTE>
<P>Una volta che la compilazione &egrave; completata, potrete aggiornare la
configurazione di lilo, o scrivere un floppy di boot. Un disco di boot pu&ograve; 
essere fatto eseguendo
<P>
<BLOCKQUOTE><CODE>
<PRE>
make zdisk
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="LunsNot0"></A> <A NAME="ss2.10">2.10 LUN diversi da 0 non funzionano </A>
</H2>

<P>Molti dispositivi SCSI sono terribilmente difettosi, bloccano il bus SCSI, 
e causano altri problemi quando tentate di parlar loro a una unit&agrave; 
logica il cui numero sia diverso da zero.
<P>Quindi normalmente le versioni recenti del kernel di Linux non 
individueranno lun diversi da zero. Per modificare questo comportamento, 
dovete usare l'opzione della riga di comando max_scsi_luns, o ricompilare 
il kernel con l'opzione CONFIG_SCSI_MULTI_LUN. 
Solitamente inserirete sulla vostra riga dei comandi LILO:
<P>
<BLOCKQUOTE><CODE>
<PRE>
max_scsi_luns=8
</PRE>
</CODE></BLOCKQUOTE>
<P>Se dopo aver seguito questo suggerimento i vostri dispositivi multi-LUN non 
sono ancora individuati correttamente (come pu&ograve; essere il caso di molte 
vecchie bridge board SCSI-&gt;MFM, RLL, ESDI, SMD, e simili), il 
problema deriva da questa parte di codice:
<P>
<BLOCKQUOTE><CODE>
<PRE>
/* Some scsi-1 peripherals do not handle lun != 0.
   I am assuming that scsi-2 peripherals do better */
if((scsi_result[2] &amp; 0x07) == 1 &amp;&amp;
   (scsi_result[3] &amp; 0x0f) == 0) break;
</PRE>
</CODE></BLOCKQUOTE>
<P>che si trova in scan_scsis() in drivers/scsi/scsi.c. Cancellate questo 
codice e tutto dovrebbe funzionare a dovere.
<P>
<HR>
<A HREF="SCSI-HOWTO-3.html">Avanti</A>
<A HREF="SCSI-HOWTO-1.html">Indietro</A>
<A HREF="SCSI-HOWTO.html#toc2">Indice</A>
</BODY>
</HTML>