Ethernet-Howto tratta delle schede che si dovrebbero e non si dovrebbero acquistare; di come configurarle, di come usarne più di una e di altri problemi e quesiti frequenti. Comprende informazioni dettagliate sull'attuale livello di supporto di tutte le più comuni schede Ethernet disponibili.
Non comprende l'aspetto software delle cose, che è trattato nel
NET-3 Howto. Si noti anche che quesiti generali, non specifici su Linux,
riguardanti Ethernet, non trovano (o almeno non dovrebbero trovare)
risposta qui. Per quesiti di quel tipo, si vedano le eccellenti
informazioni nelle FAQ di comp.dcom.lans.ethernet, che possono
essere scaricate via FTP da rtfm.mit.edu
come tutte le altre FAQ
dei newsgroup.
Questa revisione tratta i kernel stabili fino alla versione 2.2.7 compresa.
Ethernet-Howto è di:
Paul Gortmaker, p_gortmaker@yahoo.com
Fonte principale di informazioni per la versione iniziale di Ethernet-Howto, disponibile esclusivamente in formato ASCII, è stato:
Donald J. Becker, becker@cesdis.gsfc.nasa.gov
che dovremmo ringraziare per aver scritto la grande maggioranza dei driver attualmente disponibili per Linux per le schede Ethernet. È anche l'autore dell'originario NFS server. Grazie Donald!
Questo documento è Copyright (c) 1993-1999 di Paul Gortmaker. Si vedano la liberatoria e le informazioni sulla copia alla fine di questo documento ( copyright) per informazioni circa la ridistribuzione e le solite questioni legali ``non siamo responsabili per ciò che riuscirai a rompere...''.
Nuove versioni di questo documento possono essere reperite all'indirizzo:
o per chi desidera usare FTP e/o procurarsi formati non HTML:
Questo è il sito ufficiale, ma il documento può anche essere trovato nei diversi mirror WWW/ftp. Gli aggiornamenti vengono fatti appena nuove informazioni e/o driver diventano disponibili. Se la copia che si sta leggendo è vecchia di più di 6 mesi, si dovrebbe controllare per vedere se è disponibile una copia aggiornata.
Questo documento è disponibile in diversi formati (postscript, dvi, ASCII, HTML, ecc.). Personalmente consiglio di leggerlo in HTML (attraverso un browser WWW) o in formato Postscript/dvi. Entrambi contengono riferimenti incrociati che non sono inclusi nel formato ASCII.
Poiché questa guida sta diventando sempre più grande, probabilmente non si vuole sprecare il resto del pomeriggio leggendola per intero. E la buona notizia è che non la si deve leggere tutta. Le versioni HTML e Postscript/dvi hanno un indice che aiuterà senz'altro a trovare ciò di cui si ha bisogno molto più velocemente.
Può essere che si stia leggendo questo documento perché non si riesce a far funzionare le cose e non si sa cosa controllare o verificare. La sezione AIUTO -- Non funziona! è rivolta ai nuovi utenti di Linux e metterà nella direzione giusta.
Tipicamente gli stessi problemi e quesiti sono posti più e più volte da diverse persone. Può essere che il proprio problema specifico sia una delle Frequently Asked Questions (domande frequenti) e trova risposta nella sezione FAQ di questo documento ( Sezione FAQ). Tutti dovrebbero dare un'occhiata a questa sezione prima di inviare una richiesta di aiuto.
Se non si possiede una scheda Ethernet, allora si dovrà in primo luogo scegliere una scheda ( Che scheda si dovrebbe acquistare...).
Se si possiede già una scheda Ethernet, ma non si è sicuri di poterla usare con Linux, allora si dovrà leggere la sezione che contiene informazioni specifiche su ogni produttore e le relative schede ( Informazioni specifiche su...).
Se si è interessati ad alcuni degli aspetti tecnici dei driver dei dispositivi per Linux, allora si può dare una scorsa alla sezione contenente questo tipo di informazioni ( Informazioni tecniche).
Okay, niente panico. Questa sezione vi condurrà per mano nel processo che consente di far funzionare le cose anche se non si hanno precedenti conoscenze di Linux o sull'hardware Ethernet.
La prima cosa da fare è scoprire il modello della propria scheda cosicché si possa determinare se Linux ha un driver per quella particolare scheda. Generalmente schede diverse sono controllate in modo diverso dal computer ospite e il driver per Linux (se ne esiste uno) contiene queste informazioni per il controllo in un formato che permette a Linux di utilizzare la scheda. Se non si ha un manuale o qualcosa del genere che dia informazioni sul modello della scheda, allora si può provare la sezione di aiuto sulle schede misteriose (si veda la sezione Identificare una scheda sconosciuta).
Ora che si sa che tipo di scheda si possiede, si leggano da cima a fondo i dettagli a essa relativi nella sezione sulle specifiche delle schede ( Informazioni specifiche su...) che elenca in ordine alfabetico i produttori di schede, i numeri identificativi dei modelli e se c'è o meno un driver per Linux. Se è catalogata come ``Non supportata'' ci si può pressoché arrendere qui. Se non si riesce a trovare la propria scheda nell'elenco, si controlli per vedere se il suo manuale la cataloga come ``compatibile'' con un altro tipo di scheda conosciuto. Ci sono per esempio centinaia se non migliaia di schede diverse costruite per essere compatibili con il progetto originario NE2000 della Novell.
Assumendo che si sia scoperto che esiste un driver per Linux per la propria scheda, è ora necessario trovarlo e farne uso. Solo perché Linux ha un driver per la propria scheda ciò non significa che esso sia compreso in ogni kernel (il kernel è il nucleo del sistema operativo, la prima cosa caricata all'avvio e contiene, tra le altre cose, i driver per le diverse parti hardware). A seconda di chi ha prodotto la particolare distribuzione di Linux che si sta usando ci possono essere solo alcuni kernel precompilati e un grosso insieme di driver sotto forma di piccoli moduli separati, oppure un sacco di kernel, che coprono un enorme insieme di combinazioni di driver incorporati.
Molte distribuzioni di Linux adesso contengono un gruppo di piccoli moduli, i diversi driver. I moduli necessari tipicamente vengono caricati in un secondo tempo nel processo di avvio o su richiesta non appena serve un driver per accedere ad un particolare dispositivo. Occorrerà inserire questo modulo nel kernel dopo che è stato avviato. Si vedano le informazioni fornite con la propria distribuzione sull'installazione e l'uso dei moduli, oltre alla sezione sui moduli in questo documento ( Usare i driver Ethernet come moduli).
Se non si è trovato né un kernel precompilato con il proprio driver, né il driver in forma modulare, è probabile che si possieda una scheda rara e si dovrà compilare il proprio kernel includendo il driver. Una volta installato Linux, la compilazione di un kernel su misura non è affatto difficile. Essenzialmente si risponde sì o no a cosa si vuole che il kernel contenga e poi gli si dice di compilarlo. Esiste un Kernel-Howto che aiuterà a far questo.
A questo punto si dovrebbe essere riusciti in qualche modo ad avviare un kernel con il proprio driver incorporato o a caricare il driver come modulo. Poiché circa la metà dei problemi che ha la gente è dovuta al non avere caricato il driver né in un modo né nell'altro, ora si potrebbe scoprire che le cose funzionano.
Se non funziona ancora allora è necessario verificare che il kernel
stia effettivamente rilevando la scheda. Per fare questo, dopo che il
sistema si è avviato e sono stati caricati tutti i moduli, fatto il
login, digitare dmesg | more
. Questo permetterà di rivedere
i messaggi che il kernel ha fatto scorrere sullo schermo durante il
processo di avvio. Se la scheda è stata rilevata si dovrebbe vedere da
qualche parte in quell'elenco, un messaggio del driver della propria
scheda che inizia con eth0
e cita il nome del driver e i parametri
hardware per i quali è stata configurata (configurazione degli
interrupt, indirizzo delle porte di input/output, ecc.). Nota:
Linux all'avvio elenca tutte le schede PCI installate nel sistema,
senza badare ai driver disponibili, non si scambi questo per la
rilevazione dei driver che avviene più tardi.
Se non si vede un messaggio di identificazione del driver di questo tipo, allora il driver non ha rilevato la propria scheda e questo è il motivo per il quale le cose non funzionano. Si vedano le FAQ ( Sezione FAQ) per il da farsi se la propria scheda non viene rilevata. Nel caso si possieda una scheda NE2000 compatibile, nella sezione FAQ vi sono anche alcuni suggerimenti specifici per fare in modo che la scheda venga rilevata.
Se la scheda viene rilevata ma il messaggio di rilevamento riporta un errore di qualche tipo, come un conflitto di risorsa, probabilmente il driver non sarà inizializzato correttamente e la scheda continuerà a non essere utilizzabile. Anche i più comuni messaggi di errore di questo tipo sono elencati nella sezione FAQ insieme ad una soluzione.
Se il messaggio di rilevamento sembra corretto, confrontare bene le risorse della scheda riportate dal driver con quelle per le quali la scheda è fisicamente configurata (attraverso dei piccoli ponticelli di colore nero sulla scheda o attraverso delle utilità software fornite dal produttore). Queste devono corrispondere esattamente. Per esempio se la scheda è configurata per IRQ 15 e il driver riporta nei messaggi di avvio IRQ 10, le cose non funzioneranno. La sezione FAQ tratta i casi più comuni di driver che non rilevano correttamente le informazioni di configurazione delle diverse schede.
A questo punto si è riusciti a far sì che la propria scheda sia
rilevata con tutti i parametri corretti e, se tutto va bene, le cose
funzionano. Altrimenti si ha o un errore di configurazione software o
un errore di configurazione hardware. Un errore di configurazione
software è il non configurare correttamente gli indirizzi di rete
usando i comandi ifconfig
e route
e dettagli su come fare
queste cose sono esaurientemente descritti nel Network HowTo e nella
``Network Administrator Guide''. Probabilmente entrambi si trovano nel
CD-ROM che si è usato per l'installazione.
Un errore di configurazione hardware si ha quando un qualche conflitto
di risorsa o errore di configurazione (che il driver non ha rilevato
in fase di avvio) impedisce alla scheda di funzionare
correttamente. Ciò può essere osservato in parecchie situazioni
diverse. (1) Si ha un messaggio di errore quando ifconfig
tenta
di aprire il dispositivo per usarlo, del tipo ``SIOCSFFLAGS: Try
again''. (2) Il driver riporta messaggi d'errore su eth0
(li si può
vedere usando dmesg | more
) o strane incongruenze
ogniqualvolta prova a mandare o ricevere dati. (3) Digitando cat
/proc/net/dev
appaiono numeri diversi da zero in una delle
colonne errs, drop, fifo, frame o carrier corrispondenti a
eth0
. (4) Digitando cat /proc/interrupts
appare un
numero di interrupt nullo per la scheda. Anche la maggior parte dei
tipici errori di configurazione hardware sono discussi nella sezione
FAQ.
Bene, se si è arrivati a questo punto e le cose non funzionano ancora,
si legga la sezione FAQ di questo documento, si legga la sezione sulle
specifiche dei produttori che descrive la propria scheda, e se
ancora non funziona allora si dovrebbe riccorrere all'invio di una
richiesta di aiuto ad un opportuno newsgroup. Se si invia la
richiesta, si descrivano dettagliatamente tutte le
informazioni del caso tipo la marca della scheda, la versione del
kernel, i messaggi del driver all'avvio, l'output di cat
/proc/net/dev
, una chiara descrizione del problema e naturalmente
cosa si è già provato a fare per far funzionare le cose.
Sorprenderebbe sapere quante persone inviano cose inutili del tipo ``Può aiutarmi qualcuno? La mia scheda Ethernet non funziona'' e nient'altro. I lettori dei newsgroup tendono a ignorare queste richieste stupide, mentre una descrizione dettagliata del problema può consentire a un ``Linux-guru'' di individuare immediatamente il problema.