In questa pagina racconterò la travagliata vicenda che mi ha consentito di usare una connessione Libero adsl sotto Linux. Il setup non è difficile, ma richiede qualche modifica qua e la per sistemare qualche difetto. La macchina è un PC x86 con kernel 2.4.27 e Debian 3.0. Ciò che scrivo rappresenta solo quello che ho fatto personalmente sul mio computer (e qualche consiglio datomi da altre persone) ma non mi assumo responsabilità per eventuali problemi che potrebbero nascere seguendo questi passi. Detto questo...
Purtroppo, per una serie di ragioni ho ricevuto il modem adsl con connessione usb anziché ethernet.
A sentire quelli di Libero, l'apparecchio è un Aethra StarModem (come del resto riportano confezione
e case stesso del modem). In realtà quel nome non vuol dire niente, perché quel che mi serviva
sapere era costruttore e modello dell'elettronica interna. Primo problema, dunque: capire cosa mi avessero
portato. Con le utility usb di Linux si ricava che il VendorID e ProductID del modem sono rispettivamente
0x1110 e 0x9022; ho usato questi valori per fare una ricerca in rete, sperando di capitare sulla pagina di
qualche driver che supportasse l'apparecchio. La ricerca è stata abbastanza lunga, ma alla fine ho
trovato il progetto eagle-usb, che però è totalmente
in francese e non supporta ufficialmente il nostro modem. Comunque nei sorgenti compariva la coppia
VendorID/ProductID corretta, e quindi ho compilato e installato ugualmente il driver, che si è
rivelato quello giusto. La configurazione richiede una modifica "ad hoc", perché lo script di
configurazione eagleconfig
non permette di scegliere i valori vpi e vci corretti. Perciò
ho scelto i valori più simili e ho successivamente modificato /etc/eagle-usb/eagle-usb.conf
,
cambiando le righe interessate in
VPI=00000008 VCI=00000023
Non so in realtà cosa siano quei valori, ne quanto siano importanti: li ho presi dal programma di installazione del modem per Win, che li riporta in fase di installazione.
Davide mi dice che eagle-usb è già presente tra
i pacchetti di Mandrake 10.1, per cui chi usa questa distribuzione può evitare di scaricarlo e compilarlo.
Per la configurazione, consiglia di non usare il centro di controllo di mandrake, bensì eagleconfig
.
Durante l'installazione il driver eagle-usb configura il ppp automaticamente, ma è necessaria una
modifica manuale al file /etc/ppp/peers/adsl
. Bisogna cambiare i valori mtu e mru
ponendoli a 1500, altrimenti la connessione funziona malissimo (grazie ad Andrea Simion per la dritta ;-). Gia che c'ero
ho tolto le opzioni che vietavano la compressione (come novj
) ma non so quanto questo influisca e non ho
provato a rimetterle. Alcuni mi hanno scritto che non cambia nulla.
Ora la configurazione è completa. Per connettersi bisogna caricare il modulo eagle-usb
(conviene farlo durante il boot), poi eseguire eaglectrl -d
, aspettare che il led sul modem smetta di
lampeggiare e quindi eseguire startadsl
. Per disconnettersi, eseguire stopadsl
.
Ho fatto uno script che fa tutto questo automaticamente
(il mio server si connette in fase di boot e resta sempre connesso). Il mio giudizio sulla connessione è positivo:
veloce e stabile. Unico difetto: lasciando il modem collegato per diversi giorni può capitare che "muoia"
facendo saltare la connessione (forse un problema di interferenze, o l'overflow di qualche timer interno); in
tal caso l'unica possibilità è resettarlo, per esempio togliendo il modulo eagle-usb e il modulo del controller usb,
rimetterli e rifare la procedura per la connessione.
A titolo di debugging riporto l'output di dmesg
dopo le varie operazioni.
Connessione del modem alla porta usb (il modem non ha firmware, e si presenta come un device usb "fittizio"):
hub.c: new USB device 00:07.2-2, assigned address 2 usb.c: USB device 2 (vend/prod 0x1110/0x9022) is not claimed by any active driver.
Caricato il modulo eagle-usb (il modulo invia il firmware e resetta il modem, che poi si riconnette con i corretti VendorID/ProductID):
[eagle-usb] driver V1.9.9 loaded usb.c: registered new driver eagle-usb [eagle-usb] New pre-firmware modem detected [eagle-usb] Uploading firmware.. [eagle-usb] Binding eu_instance_t to USB 001/002 usb.c: USB disconnect on device 00:07.2-2 address 2 [eagle-usb] Pre-firmware modem removed hub.c: new USB device 00:07.2-2, assigned address 3 [eagle-usb] New USB ADSL device detected, waiting for DSP code... [eagle-usb] created proc entry at : /proc/driver/eagle-usb/001-003
Eseguito eaglectrl -d
(viene inviato il "dsp code", che non ho ben capito cosa sia; il modem inizia a prendere la linea):
[eagle-usb] ioctl EU_IO_OPTIONS received [eagle-usb] ioctl EU_IO_DSP received [eagle-usb] Loading DSP code to device... [eagle-usb] DSP code successfully loaded to device
Il led della linea inizia a lampeggiare, segno che il modem sta allineandosi. Dopo qualche secondo smette di lampeggiare:
[eagle-usb] Modem operational !! [eagle-usb] Ethernet device eth1 created.
A questo punto si può eseguire startadsl
.
I geek dovrebbero guardare in /proc/driver/eagle-usb/
: c'è un file pieno di informazioni interessanti sullo
stato del modem. Tramite questo file si può anche capire quando il modem ha completato l'allineamento ed è quindi pronto
per la connessione (vedi lo script sopra).
Ultima modifica: 12/01/2006