![]() | Linux Driver per Conexant AccessRunner adsl USB modem GUIDA ALLA CONFIGURAZIONE Sito realizzato da Andrea Storto il 20 marzo 2003 |
|||
|
Questo documento è una traduzione con alcune aggiunte della guida fornita dallo sviluppatore Josep Comas insieme al software per connettere in rete i modem adsl con chipset Conexant AccessRunner USB
Questa mini-guida si riferisce a un progetto portato avanti da uno sviluppatore spagnolo che ha programmato un driver utilizzabile con tutti i modem adsl ad interfaccia USB Conexant AccessRunner, e che supporta i protocolli PPP over ATM e PPP over Ethernet. Alla versione originale in spagnolo (che si trova nella directory /doc del pacchetto cxacru) ho aggiunto qualcosina in funzione delle difficoltà che ho trovato nell'eseguire la configurazione sul mio modem.
Per ogni esigenza di approfondimento rimando ad altre pagine, visto che questa non è e non vuole essere completa ed esaustiva dell'argomento, ma solo una guida per linee generali alla configurazione pratica del proprio modem.
Il Conexant AccessRunner USB è un chipset montato da diversi modem adsl che si collegano al pc attraverso porta USB. Conexant fabbrica questo modem per le altre case produttrici che costruiscono il modem in tutte le sue parti. Nella sezione modem potete trovare una lista, anche se parziale e in continuo aggiornamento, dei modem basati su questo chipset. Personalmente il modem su cui ho provato il driver è un Atlantis I-Storm USB.
Le versioni del software messe a punto finora sono versioni alpha e come tali se ne sconsiglia l'utilizzo in ambienti di produzione; sono state pensate per sviluppatori e beta-testers, ma visto che personalmente non appartengo a nessuna delle due fasce e tuttavia non volevo essere costretto ad utilizzare Windows ogni volta che mi volevo connettere, ho provato a utilizzare questo software che in effetti mi consente la connessione. Le release son disponibili sono due: una del 24/01/2003 consigliata per il protocollo RFC1483/2684 e un'altra del 12/02/2003, consigliata negli altri casi.
Ovviamente avete bisogno di un modem adsl USB basato sul chipset Conexant AccessRunner. Tutto il software e la documentazione presente in questo sito si riferiscono a modem esterni (non PCI) ad interfaccia USB (e non ethernet). In questi altri due casi l'installazione è in genere più semplice, e si rimanda a:
Innazitutto avete bisogno della connessione adsl! I protocolli supportati sono, come già detto:
Ecco tutto quello di cui avete bisogno:
Potete trovare il pacchetto in questi diversi siti:
Vanno bene tutte le distribuzioni che abbiano un kernel 2.4.1 o superiore. Sarebbe preferibile una versione molto recente del kernel (come la 2.4.18 o la 2.4.20) che non ha problemi nel supportare i diversi protocolli ppp e nel contempo non necessita di particolari configurazioni aggiuntive (come precedenti kernel) per il funzionamento dei dispositivi USB. La versione del proprio kernel può essere individuata tramite il comando:
$ uname -r
Bisogna inoltre avere installato una versione stabile del compilatore GCC (per esempio gcc-2.96-110) e il comando make.
Per la compilazione del driver bisogna avere il codice sorgente del kernel relativo alla propria versione. Questo, che comunque non dovrà essere compilato, è fondamentale per la configurazione e la compilazione del driver stesso, e può essere scaricato dal sito www.kernel.org.
L'applicazione ppp deve essere correttamente installata nella versione ppp-2.4.0b2 o 2.4.1, ricordando che per il protocollo PPP over ATM va necessariamente usata la versione 2.4.0b2 perchè soltanto essa include il plugin pppoatm.so. La versione può essere individuata tramite il comando
# pppd --versionPer installare la versione 2.4.0b2 è necessario preliminarmente disinstallare la versione presente nel sistema (p.e. se si ha una distribuzione redhat o mandrake si può procedere cosė:
# rpm -e --nodeps ppp-2.4.xy.rpm # tar xvfz ppp-2.4.0b2.tar.gz # cd ppp-2.4.0b2 # ./configure # make # make installleggete comunque le istruzioni!)
Le operazioni che si devono fare sono in ordine:
Per scaricare i files necessari vedi la precedente sezione sui Requisiti Software oppure vai alla pagina Download del mio sito.
Il codice sorgente relativo al proprio kernel va decompresso e spacchettato nella directory /usr/src. La directory che si crea dovrebbe essere /usr/src/linux; nel caso in cui lo spacchettamento crea una directory /usr/src/linux-2.x.yy dove 2.x.yy è il numero della versione, si dovrà fare un link simbolico
# ln -s /usr/src/linux-2.x.yy /usr/src/linuxSarà poi necessario azzerare la configurazione del kernel e le eventuali dipendenze attraverso il comando
# make mrproperA questo punto si può iniziare la configurazione del kernel attraverso
# make menuconfig(o eventualmente
# make xconfigper la modalità grafica); ricordando preliminarmente che:
[*] = "attivo" (si deve digitare "y") [ ] = "disattivo" (si deve digitare "n") [M] = "caricato attraverso moduli" (si deve digitare "m")si devono ritoccare le seguenti voci:
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
Loadable module support
[*] Enable loadable module support
[*] Set version information on all module symbols
[*] Kernel module loader
Networking options
<*> Packet socket
<*> Unix domain sockets
[*] TCP/IP networking
[*] Asynchronous Transfer Mode (ATM)
USB support
<*> Support for USB
[*] Preliminary USB device filesystem
<M> UHCI
<M> OHCI
L'ultima parte della configurazione dipende dal protocollo utilizzato nella propria connessione:
Networking options
[*] Asynchronous Transfer Mode (ATM)
[*] Classical IP over ATM
Network Device Support
<M> PPP (point-to-point protocol) support
<M> PPP Deflate compression
<M> PPP over ATM
e deselezionare quest'opzione
Processor type and features
[ ] Symmetric multi-processing support
Scaricato cxacru-aaaa-mm-gg-src.tgz si copia, si decomprime il pacchetto nella directory /usr/src:
# mv DIRECTORY_DOVE_STA_IL_PACCHETTO /usr/src # cd /usr/src # tar xvfz cxacru-aaaa-mm-gg-src.tgzSi è così creata la cartella cxacru, nella quale ci spostiamo per la compilazione:
# cd cxacru # makeI programmi e gli scripts dovrebbero essere pronti per l'utilizzo; si può eventualmente verificare la corretta installazione andando in /usr/sbin dove ci saranno i seguenti binari e scripts:
cxinit.bin cxioctl cxload cxload.sh cxnet2down.sh cxnet2up.sh cxnet3down.sh cxnet3up.sh cxnet4down.sh cxnet4up.sh cxnetdown.sh cxnetup.sh cxstart.sh cxstop.sh cxunload.sh
Se il kernel non supporta l'inizializzazione automatica dei dispositivi USB, la si può imporre aggiungendo al file /etc/fstab la riga
none /proc/bus/usb usbdevfs defaults 0 0ed eseguendo momentaneamente il relativo comando mount
$ mount -t usbdevfs /proc/bus/usb(Se tale operazione è stata inutile, al successivo avvio di linux apparirà un messaggio sul fallimento del caricamento dei filesystem di /etc/fstab proprio perchè i dispositivi USB sono già montati in automatico; basterà allora cancellare la riga aggiunta a fstab). Si aggiunge poi una riga contenente la parola "usbcam" nel file /etc/hotplug/blacklist, che perciò avrà questa forma:
... # Syntax: driver name alone (without any spaces) on a line. Other # lines are ignored. # usbcam # uhci ... usb-uhci handles the same pci class usb-uhci ...Il corretto riconoscimento del modem USB può essere verificato leggendo il seguente file:
# less /proc/bus/usb/devicesnel quale ci deve essere una parte relativa al modem adsl:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0572 ProdID=cafe Rev= 0.01 S: Manufacturer=- S: Product=ADSL USB MODEM S: SerialNumber=???????? C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 7 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none) E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=84(I) Atr=03(Int.) MxPS= 8 Ivl=200ms(dopo l'installazione del driver al posto di (none) alla voce Driver dovrebbe apparire Conexant AccessRunner)
Gli indirizzi DNS forniti dall'ISP devono essere aggiunti nel file /etc/resolv.conf. Nel caso esemplificativo della connessione con Tiscali si avrà:
nameserver 195.130.224.18 nameserver 195.130.225.129
Si deve editare il file /etc/cxacru in questo modo (il simbolo # al solito inizia un commento ignorato dal programma):
DRIVER_MODE può assumere il valore 1 o 2 a seconda che siamo in modalità normale (predefinita) o debugPROTOCOL_MODE può assumere il valore 1, 2, 3 o 4 a seconda che il protocollo sia rispettivamente RFC1483/2684 routed, PPP over ATM (RFC2364), RFC1483/2684 bridged o infine ppp over EthernetVPI e VCI sono i valori per il corretto instradamento della connessione; nell'esempio sono assunti pari a 8 e 35 rispettivamente, conviene comunque contattare il fornitore della connessione # # Config file for Conexant AccessRunner # # Driver mode DRIVER_MODE=1 # 1 = normal, 2 = debug # Protocol PROTOCOL_MODE=2 # 1 = RFC1483/2684 routed, 2 = PPP over ATM (pppoa), 3 = RFC1483/2684 bridged, 4 = PPP over Ethernet (pppoe) # Paths BINARY_PATH="/usr/sbin" ATM_PATH="" # ATM VPI=8 VCI=35 # Specific for RFC1483/2684 routed/bridged IP_ADDRESS= NETMASK=255.255.255.0 GATEWAY=
Procedendo alla configurazione di ppp (che deve essere la versione 2.4.0b2 nel caso di protocollo PPP over ATM) si edita il file /etc/ppp/options, aggiungendo le seguenti righe a quella di default "lock":
lock defaultroute noipdefault noauthsync noaccomp nopcomp noccp novj holdoff 4 persist maxfail 25 usepeerdns passive asyncmap 0 lcp-echo-interval 2 lcp-echo-failure 7 name USERNAME_DI_CONNESSIONE user USERNAME_DI_CONNESSIONE plugin /usr/lib/pppd/plugins/pppoatm.so 8.35Avendo sostituito "USERNAME_DI_CONNESSIONE" con il proprio username, la dir /usr/lib/pppd/plugins/pppoatm.so con quella dove sta il plugin pppoatm.so (che di default è quella indicata) e la riga 8.35 con i propri valori VPI.VCI. Per trovare la directory del plugin si può procedere così
$ locate pppoatm.soVanno poi cambiati i file /etc/ppp/pap-secrets e /etc/ppp/chap-secrets relativi all'autenticazione della propria connessione, inserendo
# Secrets for authentication using PAP # client server secret IP addresses USERNAME * PASSWORD *Avendo sostituito "USERNAME" con il proprio username e "PASSWORD" con la propria password di connessione. Bisogna fare attenzione a inserire un "*" (simbolo di asterisco) tra username e password, e dopo password, separando tutti questi elementi da un TAB. Alcuni ISP prevedono che l'USERNAME sia seguito dal simbolo di "chiocciola" (@) e dal dominio dell'ISP stesso (informatevi!)
La connessione si realizza con il comando cxstart.sh; alla fine della connessione o prima di spegnere e/o riavviare il pc si deve dare invece il comando cxstop.sh (altrimenti si verifica un KERNEL PANIC). Per evitare di dover ripetere ogni volta queste operazioni, si può entrare nella directory /usr/src/cxacru ed eseguire il comando
# make add_service(eventualmente
# make remove_service per la disintallazione) attraverso cui si ha automaticamente il caricamento dei moduli, del driver e degli scripts di connessione all'avvio di linux e la sua interruzione allo spegnimento. Ovviamente si consiglia di operare tale impostazione solo dopo aver verificato il corretto funzionamento del driver.
I problemi riscontrati riguardano principalmente l'inizializzazione del modem all'avvio da linux, tanto più se "in uscita" da Windows: a volte l'allineamento del modem sulla linea adsl deve essere ripetuto manualmente comandando prima l'interruzione della connessione (cxstop.sh) e poi ripetendo cxstart.sh.
Sono più che gradite tutte le collaborazioni a livello di sviluppo del software (visitate il sito spagnolo) e a livello di ampliamento e messa a punto della documentazione e del sito (contattatemi)
Tutto il software e la documentazione sono distribuiti sotto licenza GPL.
Per maggiori informazioni visitate i siti:
www.gnu.org
www.softwarelibero.it