Premessa
Questa guida si rivolge a chi
possiede un modem Digicom Michelangelo USB CX, un modem Atlantis Land AU1-A01 oppure qualsiasi altro modem con chipset Conexant-Access Runner;
- si può connettere ad internet solo riuscendo a far funzionare questo modem, cioè non ha una connessione ad internet alternativa attiva in Ubuntu (perchè chi ha una connessione alternativa potrebbe usare comandi specifici per scaricare file e pacchetti).
Introduzione
I modem adsl usb, come molti altri dispositivi hardware, funzionano grazie ad un piccolo programma, detto firmware, che li gestisce.
Spesso un modem adsl usb non possiede una memoria permanente contenente il firmware, ma è invece equipaggiato con una memoria volatile, che perde il suo contenuto con lo spegnimento del modem. Per questo il firmware va scritto nella memoria ad ogni accensione del pc.
Il problema sta proprio nel caricamento del firmware perché:
- sono i driver che si occupano di fare questo, e spessissimo col modem vengono forniti solo driver per sistemi operativi Windows;
- il produttore spesso non rilascia il codice sorgente che renderebbe possibile la scrittura dei driver per altri sistemi operativi.
Fortunatamente da questo sito si possono scaricare dei driver che sono idonei al funzionamento dei modem con chipset Conexant-Access Runner. A questo punto bisogna solo imparare ad installare questi driver.
Guida per Ubuntu Dapper (6.06) e successive o kernel 2.6.15 e successivi
Per chi ha Ubuntu Dapper e versioni del kernel uguali o superiori alla 2.6.15 non è necessaria la ricompilazione poiché i driver che vogliamo sono già contenuti nel nostro kernel. L'installazione quindi si riduce a queste poche semplici azioni.
Se si possiede una connesione ad internet con ubuntu (ad esempio un 56k) si può usare un piccolo programma che scarica il materiale occorrente ed estrae il firmware automaticamente. Prima di tutto assicuratevi di avere installato il pacchetto build-essential fondamentale per compilare il programmino estrattore del firmware, quindi se non l'avete installatelo da synaptic (o da adept per chi ha kubuntu).
Fatto ciò scaricate il programma qui facendo click con il tasto destro e poi salva destinazione con nome. Salvatelo nella home, poi aprite il terminale (su gnome Applicazioni -> Accessori -> Terminale) e date il comando
sudo python ./conexant-0.1.py
Se dopo aver riavviato ubuntu quando il programma ve lo chiede, dando il comando da terminale
cat /proc/net/atm/cxacru\:0
la risposta è Line Up allora siamo collegati alla linea e potete passare alla sezione Impostazione della Connessione.
Se non avete una connessione attiva su ubuntu, allora scarichiamo l'estrattore del firmware da qui da un pc con una connessione funzionante e lo salviamo su un dispositivo di memoria rimovibile (cd, chiavetta usb o altro).
Entriamo quindi in Ubuntu e spostiamo il nostro file dal nostro dispositivo alla nostra cartella home, cosa che si può fare con un semplice copia/incolla.
Se per qualsiasi motivo non possiamo usare il file contenuto nel link qui sopra seguiamo in alternativa la seguente procedura |
Apriamo http://accessrunner.cvs.sourceforge.net/accessrunner/ e clicchiamo sulla cartella utils, dopodiché scarichiamo il file makefile e il file cxacru-fw.c nella nostra cartella.
Apriamo un terminale da Applicazioni -> Accessori -> Terminale e inseriamo:
sudo make
per compilare il programma e renderlo eseguibile.
Ora dovremmo avere nella cartella /home/ un file chiamato cxacru-fw
Adesso dobbiamo copiare il file CnxEtU.sys che possiamo trovare sul cd di installazione per Windows nella nostra cartella privata:
sudo cp /media/cdrom0/DRIVER/WINDOWS/WAN/CNXETU.SYS /home/vostronomeutente/
ed estraiamo il firmware con il comando
sudo ./cxacru-fw CnxEtU.sys cxacru-fw.bin
Copiamo ora il firmware nella cartella /lib/firmware/versione_del_kernel
sudo cp /home/vostronomeutente/cxacru-fw.bin /lib/firmware/$(uname -r)
Nota: "uname -r" è in realtà un comando che usiamo per identificare la versione del kernel. Sarebbe analogo inserire in terminale uname -r e poi scrivere ciò che abbiamo ricevuto come risposta dopo "/firmware/" nell'istruzione precedente. In questa maniera però snelliamo molto il nostro lavoro.
Importante - su Edgy Eft dovrebbe essere sufficiente inserire il firmware in /lib/firmware senza specificare il particolare kernel in uso.
A questo punto possiamo riavviare e se sul modem si accende anche una seconda lucina (sono due o più, una dovrebbe essere già accesa) vuol dire che il modem è collegato!
Per essere sicuri di essere collegati date dal terminale il seguente comando:
cat /proc/net/atm/cxacru\:0
Se la risposta è Line Up allora siamo collegati alla linea.
Da questo punto in avanti possiamo passare alla sezione [Impostazione della connessione] poichè la procedura è comune.
Configurazione della connessione
L'ultimo passo per la connessione ad internet è l'impostazione della connessione. Nel terminale digitiamo
cd /etc/ppp sudo gedit options
e scriviamo queste righe in fondo al file:
lock debug kdebug 1 noauth maxfail 3 ipparam ppp0 noipdefault usepeerdns defaultroute noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp persist plugin /usr/lib/pppd/2.4.4b1/pppoatm.so 8.35 user vostronomeutente
Ora prestiamo attenzione alla riga "user", dopo la quali dobbiamo scrivere il nostro username che usiamo per la connessione (solamente la parte precedente la @). Alla riga "plugin", tra plugin e 8.35, dobbiamo inserire il percorso del plugin pppoatm.so, se non siamo sicuri della sua locazione digitiamo
locate pppoatm.so
nel terminale.
Dopo aver salvato il file diamo il comando: (usare gedit con ubuntu, kate o kedit con kubuntu e mousepad con xubuntu)
sudo gedit /etc/ppp/chap-secrets
e scriviamo questa riga in fondo al file
vostrousername * vostrapassword
cambiando i dati nell'esempio con i nostri username (sempre la parte prima della @) e password di connessione, stando attenti a lasciare degli spazi, poi un asterisco, e poi altri spazi fra i due dati.
La stessa riga va ora scritta in fondo ad un altro file, che apriamo col comando
sudo gedit /etc/ppp/pap-secrets
Dopo aver modificato e salvato anche questo file, se abbiamo libero (questo passaggio non serve se usiamo alice) diamo il comando
sudo gedit resolv.conf
e scriviamo le seguenti righe
domain libero.it nameserver 193.70.152.15 nameserver 193.70.152.25
A fianco alla parola domain nella prima riga dobbiamo indicare il nostro dominio (che puo essere tiscali.it, alice.it ecc in base alla nostra connessione). Nella seconda a riga vicino nameserver dobbiamo inserire il DNS primario del nostro provider; nella terza riga mettiamo invece il DNS secondario. L'esempio si riferisce alle impostazioni valide per Libero, in ogni caso con una veloce ricerca in internet saremo in grado di trovare i dati che fanno al caso
vostrousername@vostrodominioseserve * vostrapassword
cambiando i dati nell'esempio con i nostri username e password di connessione, stando attenti a lasciare degli spazi, poi un asterisco, e poi altri spazi fra i due dati.
Connessione
Finalmente abbiamo sistemato tutto quello che c'era da sistemare per creare un'efficace connessione ad internet col nostro modem; ora non ci resta nient'altro da fare che riavviare il pc e far partire il sistema operativo col kernel modificato, e avviare la connessione. Vi consiglio di verificare che all'avvio il led rosso del modem lampeggi e poi rimanga stabilmente acceso: questo significa che il modem s'è agganciato alla portante ed è sincronizzato con la centrale telefonica; in altre parole significa che è pronto per la connessione, e questo lo si può verificare anche col comando cat /proc/net/atm/cxacru\:0 da dare una volta che il led è fisso e che deve restituire qualcosa del tipo
ADSL USB MODEM (usb-0000:00:07.2-2) MAC: 00:06:4f:17:1c:7a AAL5: tx 3865 ( 0 err ), rx 4467 ( 1 err, 0 drop ) Line up
A questo punto avviamo la connessione col comando
pppd
nel terminale e... SIAMO IN RETE! Per terminare la connessione dovrebbe bastare il comando
killall pppd
ma consiglio di verificare l'effettiva disconnessione a chi non ha una connessione flat ma a pagamento.
Infine, ecco un pratico script che fa tutto questo per noi, con simpatici messaggi. Dovrebbe dirvi anche il tempo di connessione
# CONNESSIONE CON ZENITY BY NoWhereMan :) pppd %0 disc=1 start=`date +%s` while [[ $disc != 0 ]]; do zenity --notification --text "Connesso." end=`date +%s` elapsed=`expr $end - $start` mins=`expr $elapsed / 60` secs=`expr $elapsed % 60` zenity --question --text "Connesso da $mins Minuti e $secs Secondi. Disconnettere ? "; disc=$? done; killall pppd
Copiate il testo, salvatelo in un file, per esempio "connect". Dategli permessi di esecuzione con
chmod +x connect
ora potete per esempio creare un'icona di avvio per il desktop. Fate doppio clic su questo script, e apparirà una piccola "(i)" accanto all'orologio: siete connessi. Un clic su di essa, e un messaggio vi chiederà se volete disconnettervi, informandovi di quanto tempo è passato da quando vi siete connessi.
Il consiglio di verificare la disconnesione rimane. Se ciò non fosse avvenuto, al solito,
killall pppd