223
contributi
m (→Introduzione: typo) |
(→Installazione del firmware: aggiunte note su installazione firmware) |
||
Riga 1: | Riga 1: | ||
==Introduzione== | ==Introduzione== | ||
Questa guida | Questa guida � dedicata all'installazione dei modem USB contenenti il chipset Conexant su Debian Sarge, ma pu� essere utile anche per l'installazione in release diverse (o, con opportune modifiche di configurazione, in distribuzioni diverse). | ||
I driver utilizzati provengono dal progetto [http://accessrunner.sourceforge.net/ Accessrunner], sono stati rilasciati con licenza GPL e recentemente inclusi nell'albero principale del kernel Linux (dalla versione 2.6.13). | I driver utilizzati provengono dal progetto [http://accessrunner.sourceforge.net/ Accessrunner], sono stati rilasciati con licenza GPL e recentemente inclusi nell'albero principale del kernel Linux (dalla versione 2.6.13). | ||
I modem con questo chipset necessitano per funzionare di un modulo del kernel (prima chiamato driver) di nome cxacru che | I modem con questo chipset necessitano per funzionare di un modulo del kernel (prima chiamato driver) di nome cxacru che � stato scritto per versioni del kernel Linux dalla 2.6.10 in poi. | ||
Esistono versioni precedenti dello stesso progetto funzionanti per kernel della serie 2.4 e anche qualche adattamento per kernel della serie 2.6 precedenti al 2.6.10, ma non sono | Esistono versioni precedenti dello stesso progetto funzionanti per kernel della serie 2.4 e anche qualche adattamento per kernel della serie 2.6 precedenti al 2.6.10, ma non sono pi� mantenuti e pertanto se ne consiglia l'utilizzo solo ad utenti esperti o molto coraggiosi. | ||
Oltre al driver, questi modem necessitano per funzionare anche di un firmware, che in questo caso non | Oltre al driver, questi modem necessitano per funzionare anche di un firmware, che in questo caso non � altro che un sistema operativo real-time (si, potrebbe funzionare anche linux, esiste un progetto a riguardo, ma al momento nessuno ha avuto successo con esso. Trovate qualche riferimento alla homepage gi� citata). | ||
A complicare il tutto c' | A complicare il tutto c'� il fatto che sono state rilasciate, sotto forma di binari gi� compilati, due versioni differenti di questo firmware: una usa "celle ATM impacchettate in frame USB" mentre l'altra usa "frame ethernet su USB". Il progetto Accessrunner supporta solo il primo di questi protocolli. | ||
Se vi capitasse di avere un modem che viene equipaggiato solo con il firmware del secondo tipo (di solito nei CD di installazione ci sono tutti e due), allora per usare il driver accessrunner dovete procurarvi un firmware del primo tipo da qualche parte in rete (eventualmente provate a postare nel forum). | Se vi capitasse di avere un modem che viene equipaggiato solo con il firmware del secondo tipo (di solito nei CD di installazione ci sono tutti e due), allora per usare il driver accessrunner dovete procurarvi un firmware del primo tipo da qualche parte in rete (eventualmente provate a postare nel forum). | ||
==Verificare se il modem | ==Verificare se il modem � supportato== | ||
Prima di iniziare l'installazione | Prima di iniziare l'installazione � necessario verificare che il modem in possesso sia supportato dal progetto. Per fare questo � necessario collegare il modem ad una porta usb. In un terminale digitiamo | ||
<pre>$ less /proc/bus/usb/devices </pre> | <pre>$ less /proc/bus/usb/devices </pre> | ||
si | si otterr� una serie di informazioni su tutte le periferiche usb che avete nel pc. | ||
La parte che ci interessa | La parte che ci interessa � questa: | ||
<pre> | <pre> | ||
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 | T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 | ||
Riga 35: | Riga 35: | ||
</pre> | </pre> | ||
Prendiamo nota dalla riga <tt>P:</tt> dei campi <tt>Vendor</tt> e <tt>ProdID</tt> che identificano il chipset del modem e notiamo che alla voce <tt>Driver</tt> c' | Prendiamo nota dalla riga <tt>P:</tt> dei campi <tt>Vendor</tt> e <tt>ProdID</tt> che identificano il chipset del modem e notiamo che alla voce <tt>Driver</tt> c'� scritto <tt>none</tt>, segno che in effetti state seguendo questa guida per qualcosa ;-). | ||
Controllate se Vendor e Product ID del vostro modem corrispondono ad uno dei [http://accessrunner.sourceforge.net/modems.shtml modem supportati]. | Controllate se Vendor e Product ID del vostro modem corrispondono ad uno dei [http://accessrunner.sourceforge.net/modems.shtml modem supportati]. | ||
Se corrispondono ad un modem non supportato, provate a fare una ricerca nella [http://sourceforge.net/mailarchive/forum.php?forum_id=43894 mailing list del progetto] per vedere se (ed eventualmente come) qualcun altro | Se corrispondono ad un modem non supportato, provate a fare una ricerca nella [http://sourceforge.net/mailarchive/forum.php?forum_id=43894 mailing list del progetto] per vedere se (ed eventualmente come) qualcun altro � riuscito a risolvere il vostro problema. | ||
==L'occorrente per l'installazione== | ==L'occorrente per l'installazione== | ||
Se il | Se il � modem supportato possiamo procedere, ma saranno necessarie ancora alcune cose: | ||
*Il compilatore gcc funzionante. Se non l'avete installatelo ( | *Il compilatore gcc funzionante. Se non l'avete installatelo (� presente nel primo cd di installazione, non vi serve internet): | ||
<pre> | <pre> | ||
aptitude install gcc | aptitude install gcc | ||
</pre> | </pre> | ||
*Il driver per Wi.. (mi spiace non riesco a scriverlo ;-)) che dovreste avere in dotazione al modem. Se non l'avete cercate in rete un firmware compatibile per esempio alla Hamlet e saltate il prossimo punto. | *Il driver per Wi.. (mi spiace non riesco a scriverlo ;-)) che dovreste avere in dotazione al modem. Se non l'avete cercate in rete un firmware compatibile per esempio alla Hamlet e saltate il prossimo punto. | ||
*L'utility per estrarre il firmware dal driver Wi... ( | *L'utility per estrarre il firmware dal driver Wi... (� pi� forte di me :-D). Se avete una connessione ad internet funzionante potete mettervi in una directory in cui avete diritto di scrittura e digitate | ||
<pre> | <pre> | ||
$ cvs -z3 -d:server:anonymous@cvs.sourceforge.net:/cvsroot/accessrunner co -P utils | $ cvs -z3 -d:server:anonymous@cvs.sourceforge.net:/cvsroot/accessrunner co -P utils | ||
</pre> | </pre> | ||
altrimenti dovrete usare un'altro computer connesso ad internet, aprire [http://cvs.sourceforge.net/viewcvs.py/accessrunner/ questa pagina] (che | altrimenti dovrete usare un'altro computer connesso ad internet, aprire [http://cvs.sourceforge.net/viewcvs.py/accessrunner/ questa pagina] (che � la simulazione web del cvs) e scaricare i quattro file contenuti nella cartella <tt>utils</tt>. | ||
Ad ogni modo dopo esserci procurati le utils dobbiamo compilarle: | Ad ogni modo dopo esserci procurati le utils dobbiamo compilarle: | ||
<pre> | <pre> | ||
Riga 56: | Riga 56: | ||
$ make | $ make | ||
</pre> | </pre> | ||
*Nel caso in cui il modem si identifichi con il'ID <tt>0xcafe</tt> (<tt>0x</tt> sta per esadecimale), vi serve anche la ROM di boot che scaricate ad esempio | *Nel caso in cui il modem si identifichi con il'ID <tt>0xcafe</tt> (<tt>0x</tt> sta per esadecimale), vi serve anche la ROM di boot che scaricate ad esempio cos� | ||
<pre> | <pre> | ||
$ wget http://www.olitec.com/pub/USBADSLV151-1008fr.tar.gz | $ wget http://www.olitec.com/pub/USBADSLV151-1008fr.tar.gz | ||
Riga 64: | Riga 64: | ||
$ tar xvfz USBADSLV151-1008fr.tar.gz && cp USBADSL/WBoot.hex . | $ tar xvfz USBADSLV151-1008fr.tar.gz && cp USBADSL/WBoot.hex . | ||
</pre> | </pre> | ||
e poi create un programmino C per convertire il file esadecimale in binario | e poi create un programmino C per convertire il file esadecimale in binario cos�: | ||
<pre> | <pre> | ||
$ echo "int main(int argc, char ** argv) | $ echo "int main(int argc, char ** argv) | ||
Riga 84: | Riga 84: | ||
./programmino > cxacru-bp.bin | ./programmino > cxacru-bp.bin | ||
</pre> | </pre> | ||
*Purtroppo nella attuale stable (sarge) trovate il kernel 2.6.8 quindi, a meno che non abbiate | *Purtroppo nella attuale stable (sarge) trovate il kernel 2.6.8 quindi, a meno che non abbiate gi� installato un kernel 2.6.13 o superiore dovrete usare un PC connesso ad internet per scaricare uno dei seguenti pacchetti: | ||
**il sorgente di un kernel >=2.6.10 nella forma di un pacchetto kernel-source (o linux-source, nella nomenclatura | **il sorgente di un kernel >=2.6.10 nella forma di un pacchetto kernel-source (o linux-source, nella nomenclatura pi� recente) | ||
**un pacchetto kernel-image >=2.6.10 (o linux-image) | **un pacchetto kernel-image >=2.6.10 (o linux-image) gi� compilato, e il pacchetto linux-headers corrispondente, per compilare il modulo fuori dal kernel | ||
**un pacchetto linux-image >=2.6.13 da installare direttamente | **un pacchetto linux-image >=2.6.13 da installare direttamente | ||
*Nel caso si decida per la compilazione di un kernel <2.6.13 (ma, ribadisco, sempre >=2.6.10) o anche del solo modulo cxacru | *Nel caso si decida per la compilazione di un kernel <2.6.13 (ma, ribadisco, sempre >=2.6.10) o anche del solo modulo cxacru � necessario scaricare la patch usbatm che trovate [http://sourceforge.net/project/showfiles.php?group_id=47406 qui]. Conviene sempre prendere l'ultima versione disponibile, che al momento � il file usbatm-20050216.tar.bz2. | ||
Se siete poco pratici di debian, e installare il modem | Se siete poco pratici di debian, e installare il modem � una delle prime cose che fate sulla vostra nuova sarge, devo avvisarvi che il fatto di aggiornare il kernel da 2.6.8 a 2.6.12 o superiori comporta qualche difficolt� tecnica. A breve vedr� di scrivere una piccola guida per questa migrazione, ma nel frattempo, prima di avventurarvi per questa strada: cercate informazioni nel forum ;-) | ||
Da questo punto in avanti supporremo di aver messo tutti i file necessari all'installazione in una directory di lavoro all'interno della vostra home: ~/work/ | Da questo punto in avanti supporremo di aver messo tutti i file necessari all'installazione in una directory di lavoro all'interno della vostra home: ~/work/ | ||
Riga 100: | Riga 100: | ||
</pre> | </pre> | ||
Nota: qui si | Nota: qui si � supposto che il modem in questione rappresenti il vostro unico collegamento ad internet. Se invece avete accesso direttamente ad internet potete fare affidamento per l'installazione ad [[Indice_Guide#Gestione_dei_Pacchetti | apt]], che gestir� automaticamente le eventuali dipendenze. | ||
Verificate che il bootloader, lilo o grub, punti alle giuste immagine del kernel e dell'initrd (vedi [[Debian_Kernel_Howto#Installazione_nuovo_kernel | installazione nuovo kernel]]) e fate un reboot con il nuovo kernel. | Verificate che il bootloader, lilo o grub, punti alle giuste immagine del kernel e dell'initrd (vedi [[Debian_Kernel_Howto#Installazione_nuovo_kernel | installazione nuovo kernel]]) e fate un reboot con il nuovo kernel. | ||
Riga 108: | Riga 108: | ||
Se il kernel che avete installato non comprende ancora il modulo cxacru, potete compilarlo e installarlo a parte. Per questo sono sufficienti gli headers del kernel, ma vanno bene anche i sorgenti completi. | Se il kernel che avete installato non comprende ancora il modulo cxacru, potete compilarlo e installarlo a parte. Per questo sono sufficienti gli headers del kernel, ma vanno bene anche i sorgenti completi. | ||
Nota: alcuni kernel tendono ad essere particolarmente esigienti riguardo la versione del compilatore con cui compilate il modulo, e rifiuteranno di caricarlo se usate una versione di gcc diversa da quella con cui | Nota: alcuni kernel tendono ad essere particolarmente esigienti riguardo la versione del compilatore con cui compilate il modulo, e rifiuteranno di caricarlo se usate una versione di gcc diversa da quella con cui � stato compilato il kernel (controllate con <tt>cat /proc/version</tt> per il kernel corrente). In particolare il 2.6.12 richiede che usiate il gcc-3.3. | ||
Se avete scaricato i pacchetti deb con gli headers (di solito sono due pacchetti: uno generico e uno relativo alla vostra architettura) dovete installarli: | Se avete scaricato i pacchetti deb con gli headers (di solito sono due pacchetti: uno generico e uno relativo alla vostra architettura) dovete installarli: | ||
Riga 115: | Riga 115: | ||
</pre> | </pre> | ||
ora si | ora si pu� procedere con la compilazione e installazione del modulo, dopo averlo scompattato: | ||
<pre> | <pre> | ||
# cd ~/work/ | # cd ~/work/ | ||
Riga 126: | Riga 126: | ||
</pre> | </pre> | ||
Se tutto | Se tutto � andato bene potete saltare il paragrafo sulla compilazione e passare all'installazione del firmware. | ||
==Compilazione e installazione del kernel== | ==Compilazione e installazione del kernel== | ||
Riga 134: | Riga 134: | ||
# dpkg -i ~/work/linux-source-2.6.x-xx-xxx.deb | # dpkg -i ~/work/linux-source-2.6.x-xx-xxx.deb | ||
</pre> | </pre> | ||
questo | questo installer� un archivio compresso contenente il kernel nella directory <tt>/usr/src/</tt>. Andiamo a scompattarlo e applichiamo la patch: | ||
<pre> | <pre> | ||
# cd /usr/src | # cd /usr/src | ||
Riga 142: | Riga 142: | ||
</pre> | </pre> | ||
C' | C'� chi sostiene che scompattare il file usbatm direttamente nel kernel sia assolutamente sbagliato, per il rischio di sovrascrivere qualcosa. Ma considerando che l'operazione ha senso solo per 3 versioni del kernel, e successivamente i file contenuti nel pacchetto sono stati inclusi nell'albero dei sorgenti esattamente nella stessa posizione in cui li abbiamo messi noi, penso che siano timori infondati, a patto di non sbagliare la versione del kernel ;-). | ||
'''nota bene''': mentre sperimentate con la compilazione del kernel <u>non usate mai</u> la directory <tt>/usr/src/linux</tt> che dovrebbe essere un link simbolico (<tt>man ln</tt>) ai sorgenti del kernel attualmente in uso. Se tutto il nostro procedimento | '''nota bene''': mentre sperimentate con la compilazione del kernel <u>non usate mai</u> la directory <tt>/usr/src/linux</tt> che dovrebbe essere un link simbolico (<tt>man ln</tt>) ai sorgenti del kernel attualmente in uso. Se tutto il nostro procedimento funzioner�, alla fine cambierete il link in modo che punti ai sorgenti giusti. Per approfondimenti sull'argomento vedere il [[Debian_Kernel_Howto | debian kernel howto]] | ||
Invece di compilare un kernel da zero (impresa a dir poco titanica) conviene recuperare il config relativo al kernel che state usando, che dovrebbe essere presente nella directory <tt>/boot</tt>, e dovrebbe chiamarsi <tt>config-<versione del kernel></tt> o simili: sempre dalla directory principale dei sorgenti del kernel digitate | Invece di compilare un kernel da zero (impresa a dir poco titanica) conviene recuperare il config relativo al kernel che state usando, che dovrebbe essere presente nella directory <tt>/boot</tt>, e dovrebbe chiamarsi <tt>config-<versione del kernel></tt> o simili: sempre dalla directory principale dei sorgenti del kernel digitate | ||
Riga 159: | Riga 159: | ||
Andate alla voce <tt>Device Drivers -> USB support -> USB DSL modem support</tt> ed attivate <tt>USB DSL modem support</tt> e <tt>Conexant AccessRunner USB support</tt>. | Andate alla voce <tt>Device Drivers -> USB support -> USB DSL modem support</tt> ed attivate <tt>USB DSL modem support</tt> e <tt>Conexant AccessRunner USB support</tt>. | ||
'''Nota''': il driver cxacru deve essere compilato come modulo | '''Nota''': il driver cxacru deve essere compilato come modulo perch�, probabilmente a causa di un bug, se compilato nel kernel in molti casi viene inizializzato prima che il firmware sia disponibile, e restituisce l'errore "<tt>firmware not found</tt>" anche se in realt� l'avete messo nel posto giusto. Il fatto � che non potendo fare "<tt>rmmod cxacru && modprobe cxacru</tt>", per farlo reinizializzare non vi resterebbe che staccare fisicamente il modem dalla porta usb e riattaccarlo, dopo ogni reboot, e questo pu� essere parecchio seccante! | ||
Il resto della configurazione dovrebbe essere | Il resto della configurazione dovrebbe essere gi� a posto, ma controllate per sicurezza. | ||
Alla voce <tt>Device Drivers -> Networking support </tt> | Alla voce <tt>Device Drivers -> Networking support </tt> | ||
<pre> | <pre> | ||
Riga 192: | Riga 192: | ||
'''Aggiornamento''': solo recentemente (23/11/2005) sono riuscito nell'intento di far funzionare correttamente il driver cxacru anche se | '''Aggiornamento''': solo recentemente (23/11/2005) sono riuscito nell'intento di far funzionare correttamente il driver cxacru anche se � compilato all'interno del kernel :-D. Questo permette di costruire un kernel monolitico e di disabilitare il supporto per i moduli, cosa senz'altro desiderabile nelle situazioni in cui � necessario un certo grado di sicurezza (per es. per un PC che fa da firewall-router). | ||
Poich� la cosa non � per niente banale, e comporta la compilazione di un kernel recente (minimo 2.6.12, ma io ho testato il 2.6.14) e la creazione di un initramfs personalizzato (oltre a qualche configurazione minore in udev), consiglio la cosa solo ad utenti particolarmente avventurosi. Chi vuole cimentarsi mi pu� contattare sul forum. | |||
==Installazione del firmware== | ==Installazione del firmware== | ||
Riga 204: | Riga 204: | ||
/lib/modules/2.6.x/kernel/drivers/usb/atm/cxacru.ko | /lib/modules/2.6.x/kernel/drivers/usb/atm/cxacru.ko | ||
</pre> | </pre> | ||
se non restituisce nulla significa che c' | se non restituisce nulla significa che c'� stato un errore nei precedenti passaggi. | ||
Se tutto | Se tutto � andato per il meglio proseguiamo andando a recuperare il CD dei driver per w... ehm, quell'altro S.O. | ||
Cercate nel CD il file <tt>CnxEtU.sys</tt> e copiatelo nella Cartella di lavoro. Ora estraete il firmware e copiatelo nella directory dove hotplug (o udev se usate un sistema | Cercate nel CD il file <tt>CnxEtU.sys</tt> e copiatelo nella Cartella di lavoro. Ora estraete il firmware e copiatelo nella directory dove hotplug (o udev se usate un sistema pi� recente) si aspetta di trovarlo: | ||
<pre> | <pre> | ||
# cd ~/work | # cd ~/work | ||
Riga 213: | Riga 213: | ||
# cp ~/work/cxacru-fw.bin /lib/firmware | # cp ~/work/cxacru-fw.bin /lib/firmware | ||
</pre> | </pre> | ||
Se il vostro modem ha il chipset <tt>0xcafe</tt> copiate nella stessa directory anche la ROM di boot, | Se il vostro modem ha il chipset <tt>0xcafe</tt> copiate nella stessa directory anche la ROM di boot, cio� il file <tt>cxacru-bp.bin</tt>. | ||
A questo punto togliete il modulo <tt>cxacru</tt>, nel caso sia caricato: | A questo punto togliete il modulo <tt>cxacru</tt>, nel caso sia caricato: | ||
Riga 219: | Riga 219: | ||
# rmmod cxacru | # rmmod cxacru | ||
</pre> | </pre> | ||
staccate il modem dalla porta USB nel caso sia attaccato, e poi riattaccate il modem alla porta usb e ricaricate il driver. Tutto questo perche | staccate il modem dalla porta USB nel caso sia attaccato, e poi riattaccate il modem alla porta usb e ricaricate il driver. Tutto questo perche � sempre megio togliere il modulo dal kernel prima di staccare il modem. | ||
Ora controllate che sia stato trovato il firmware: | Ora controllate che sia stato trovato il firmware: | ||
<pre> | <pre> | ||
Riga 233: | Riga 233: | ||
cxacru 1-1:1.0: poll status: error -5 | cxacru 1-1:1.0: poll status: error -5 | ||
</pre> | </pre> | ||
significa che occorre una versione | significa che occorre una versione pi� recente del vostro firmware. In effetti non � assolutamente detto che i driver forniti dal produttore del modem siano aggiornati, ma potete senz'altro trovare un firmware aggiornato in rete (o eventualmente postando nel forum). | ||
Ora il driver del modem dovrebbe | Ora il driver del modem dovrebbe gi� essere in funzione e il led relativo alla linea ADSL dovrebbe lampeggiare, segno che sta cercando la sincronizzazione con la linea. Mentre il led lampeggia avrete che: | ||
<pre> | <pre> | ||
$ cat /proc/net/atm/cxacru\:0 | $ cat /proc/net/atm/cxacru\:0 | ||
Riga 254: | Riga 254: | ||
Oct 5 08:08:05 muretto kernel: ATM dev 0: ADSL line: up (4832 kb/s down | 320 kb/s up) | Oct 5 08:08:05 muretto kernel: ATM dev 0: ADSL line: up (4832 kb/s down | 320 kb/s up) | ||
</pre> | </pre> | ||
qui alle 8.08.00 il modem si | qui alle 8.08.00 il modem si � sincronizzato con il segnale ADSL . | ||
Una volta agganciato il segnale ADSL si | Una volta agganciato il segnale ADSL si avr�: | ||
<pre> | <pre> | ||
$ cat /proc/net/atm/cxacru\:0 | $ cat /proc/net/atm/cxacru\:0 | ||
Riga 265: | Riga 265: | ||
Line up | Line up | ||
</pre> | </pre> | ||
Ci siamo: il driver del modem | Ci siamo: il driver del modem � perfettamente funzionante. | ||
==Impostazione della connessione== | ==Impostazione della connessione== | ||
Riga 301: | Riga 301: | ||
# pon adsl | # pon adsl | ||
</pre> | </pre> | ||
ed il gioco | ed il gioco � fatto. | ||
Controllate in <tt>/var/log/messagges</tt> se tutto funziona regolarmente: | Controllate in <tt>/var/log/messagges</tt> se tutto funziona regolarmente: |
contributi