vediamo se mi riesce di scrivere un piccolo howto sull’argomento.
ho preso come base il post di uomolosco che tratta lo stesso argomento, e che è già piuttosto particolareggiato, a cui ho aggiunto qualche modifica e qualche precisazione per chi è alle prime armi con la compilazione del kernel, alcune tratte da http://www.hackerjournal.it/hj/index.php?name=PNphpBB2&file=viewtopic&t=11383
// Per prima cosa: verifichiamo se il nostro modem è supportato:
Collegare il modem ad una porta usb. Se è presente una spia tipo “power” si accenderà (speriamo ;-)). In un terminale digitare
cat /proc/bus/usb/devices
si otterrà una serie di informazioni su tutte le porte usb che avete nel pc. Se la lista è lunga mettete il comando in pipe con un pager: ‘more’ o, meglio ‘less’ (vedi ‘man less’):
cat /proc/bus/usb/devices |less
La parte che ci interessa è questa:
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=cb00 Rev= 0.01 <<< ID del vendor ed ID del prodotto
S: Manufacturer=-
S: Product=ADSL USB MODEM
S: SerialNumber=55473201
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 7 Cls=00(>ifc ) Sub=00 Prot=00 Driver=cxacru <<< Driver che gestisce il dispositivo
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
Voi dovreste avere “Driver=none” per ovvi motivi.
Controllate se Vendor e Product ID del vostro modem corrispondono ad un modem supportato alla pagina:
http://accessrunner.sourceforge.net/modems.shtml
se corrispondono ottimo, se non lo sono niente panico, ricordate che “la fortuna favorisce la mente preparata”.
// Per iniziare i componenti richiesti per l’installazione sono i seguenti:
//--------------------------------------------------------------------------------------------------------------------
- Il sorgente del nostro kernel o comunque di un kernel >=2.6.10. nota bene: la patch usbatm che andremo ad applicare non funzionerà se la versione del kernel è inferiore alla 2.6.10. le versioni successive vanno tutte bene (io ho testato la 2.6.11, ma si parla già di una possibile inclusione della patch nell’albero dei sorgenti del kernel, quindi verificate nella homepage del progetto: http://accessrunner.sourceforge.net/ ).
Se non lo possediamo lo possiamo scaricare dal sito della nostra distro, nel nostro caso http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/SRPMS/
- Scaricare il nuovo ATM da applicare sotto l’albero relativo del nostro kernel appena scompattato. Conviene sempre prendere l’ultima versione disponibile. L’esempio fa riferimento a “usbatm-20050216.tar.bz2” che dovrebbe essere l’utlimo disponibile al momento. Di questo non esiste l’rpm.
Lo potete scaricare qui http://sourceforge.net/project/show…?group_id=47406.
- Il driver per Windows del vostro modem che avete in dotazione al modem o che oppure potete scaricare dal sito della hamlet se volete essere sicuri che si tratti dell’ultima versione. Potete scaricare inoltre il driver dal sito della Atlantis che usa lo stesso chipset della Hamlet. Il sito è http://www.atlantis-land.com/firmwa...V099.085WAN.zip.
- Una connessione a internet funzionante
- Il compilatore gcc funzionante.
//--------------------------------------------------------------------------------------
// Possiamo iniziare l’installazione del nostro modem.
//--------------------------------------------------------------------------------------
//
// INSTALLAZIONE DEL KERNEL
//
- Installare il file rpm del sorgente del nostro kernel o dall’interfaccia grafica oppure da terminale con il comando rpm -ivh kernel-2.6.11-1.1369_FC4.src.rpm…(per veder la propria versione del kernel digitare uname-r)
2)Poi digitare rpmbuild -bp --target=noarch /usr/src/redhat/SPECS/kernel-2.6.spec e il sorgente si trova qui /usr/src/redhat/BUILD/kernel-2.6.11/
- Spostatevi nella directory in cui avete scompattato il kernel e applicate la patch, in questo caso:
cd /usr/src/redhat/BUILD/kernel-2.6.11/
tar xvfj /dir/dove/avete/messo/usbatm-20050216.tar.bz2
nota bene: non usate mai la directory /usr/src/linux/ che dovrebbe essere un link simbolico ai sorgenti del kernel che state usando. se tutto il nostro procedimento funzionerà, alla fine cambierete il link in modo che punti ai sorgenti giusti.
- 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 /boot dovrebbe chiamarsi config- o simili: sempre dalla directory principale dei sorgenti del kernel digitate
cp /boot/config .config
in questo modo avrete un albero dei sorgenti configurato esattamente come il vostro attuale kernel, e da qui potete fare solo le modifiche che vi servono.
-
A questo punto prima di compilare dobbiamo abilitare alcune opzioni del kernel. Eseguire il comando da terminale in modalità root “make menuconfig” oppure se correttamente installato, make xconfig per usufruire dell’interfaccia grafica.
-
Andare sotto la voce Device Drivers -> USB support -> USB DSL modem support ed attivate USB DSL modem support & Conexant AccessRunner USB support. Questo attivera’ anche il supporto per hotplug (di cui dovete ovviamente aver installato il pacchetto, ma che non dovrebbe mancare in nessuna distribuzione attuale) ed il caricatore per il firmware.
nota: il driver cxacru deve essere compilato come modulo perché, probabilmente a causa di un bug, se compilato nel kernel spesso viene inizializzato prima che il firmware sia disponibile e restituisce l’errore “firmware not found” anche se in realtà l’avete messo nel posto giusto. il fatto è che non potendo fare “rmmod cxacru && modprobe cxacru” per farlo reinizializzare non vi resta che staccare fisicamente il modem dalla porta usb e riattaccarlo, dopo ogni reboot, e questo può essere parecchio scocciante!
-
Andare sotto la voce Networking support -> PPP support e configurare come di seguito
PPP support
PPP sync tty < potrebbero volerci
PPP async tty < tutti e due
PPP deflate < non obbligatorio
PPP BSD-Compression < non obbligatorio
PPP over ATM
-
Andare sotto la voce Networking option e configurare come di seguito
Asyncronous Transfer Mode
Classical IP over ATM
Do NOT send ICMP if no neighbour
Cmq dovrebbe essere gia abbastatnza settato.
-
A questo punto eseguire “make clean” per ripulire da precedenti compilazioni.
-
Eseguire poi “make bzImage” per dare inizio alla compilazione del kernel. La compilazione impiega circa 10-15 minuti dipende dal processore.
-
Poi eseguire “make modules” per la compilazione dei moduli. La compilazione impiega circa 20 minuti in un pc recente (il mio portatile PII 300MHz impiega circa 45 min).
-
Poi eseguire “make modules_install” per installare i moduli nella cartella /lib/modules/[versione del kernel].
-
Poi eseguire “make install” per copiare l’immagine del kernel e il file System.map nella cartella /boot.
13b) A questo punto dovete istruire il bootloader (lilo o grub) per fargli caricare il nuovo kernel al prossimo reboot.
Per esempio, se usate lilo dovrete modificare il file /etc/lilo.conf (man lilo.conf), salvarlo, ed eseguire lilo.
13c) shutdown -r now (cioè effettuate il reboot con il nuovo kernel)
//
// INSTALLAZIONE DEL DRIVER DEL MODEM
//
14) Ora rimanendo sempre nella cartella dei sorgenti del nostro kernel, andiamo a prendere l’utility per estrarre il firmware dal cvs e poi compiliamolo. Digitiamo i seguenti comandi da terminale impostato come root.
cvs -z3 -d:server:[email protected]:/cvsroot/accessrunner co -P utils
cd utils
make
…questo ovviamente se avete la fortuna di poter accedere alla rete…altrimenti come ho fatto io è necessario andare sul sito della sourceforge con un’altra macchina…e prenderli.
15) Copiare i file presi sopra in una qualsiasi Cartella
16) Estraiamo dal driver di windows il file “CnxEtU.sys” e copiamolo nella Cartella. Ora da terminale eseguamo il seguente comando
./cxacru-fw CnxEtU.sys cxacru-fw.bin
Verrà creato il file “cxacru-fw-bin” che altro non sarebbe che il firmware del nostro modem.
- Copiare il file “cxacru-fw.bin” sotto la cartella /lib/firmware o dove hotplug lo può trovare, in debian /usr/lib/hotplug/firmware (provate man hotplug).
17b) Nel caso in cui il vostro modem si identifichi con il’ID 0xcafe (0x sta per esadecimale), vi serve anche la ROM di boot che scaricate ad esempio così
wget http://www.olitec.com/pub/USBADSLV151-1008fr.tar.gz
estraete il file WBoot.hex
tar xvfz USBADSLV151-1008fr.tar.gz && cp USBADSL/WBoot.hex .
e poi create un programmino C per convertire il file esadecimale in binario così:
echo "int main(int argc, char ** argv)
{
unsigned int bp] = {
#include “WBoot.hex”
};
write(1, bp, sizeof(bp));
}
" > programmino.c
compilatelo e rendetelo eseguibile:
gcc programmino.c -o programmino
chmod +x programmino
ed eseguitelo in questo modo:
./programmino > cxacru-bp.bin
ora mettete il file cxacru-bp.bin così ottenuto nella stessa dir dove avete messo il firmware (cxacru-fw-bin)
-
N.B. Nel caso, una volta caricato il firmware, riceviate il messaggio:
cxacru 1-1:1.0: poll status: error -5
significa che occorre una versione più recente del vostro firmware. Dovete quindi cercare una versione aggiornata anche da produttori diversi da quello del modem in vostro possesso.
-
A questo punto il driver del nostro modem dovrebbe già essere in funzione e il led ADSl del nostro modem dovrebbe lampeggiare per cercare la sincronizzazione con la linea. Mentre il led lampeggia avrete che:
cat /proc/net/atm/cxacru:0
appariranno di seguito queste informazioni
ADSL USB MODEM (usb-0000:00:07.2-1)
MAC: xx:yy:zz:bla bla bla
AAL5: tx 9363 ( 0 err ), rx 14299 ( 0 err, 0 drop )
Line down
e anche:
tail /var/log/messages
Oct 5 08:06:00 muretto kernel: ATM dev 0: ADSL line: attempting to activate
Oct 5 08:06:10 muretto kernel: ATM dev 0: ADSL line: down
Oct 5 08:06:15 muretto kernel: ATM dev 0: ADSL line: attempting to activate
Oct 5 08:06:35 muretto kernel: ATM dev 0: ADSL line: down
Oct 5 08:06:40 muretto kernel: ATM dev 0: ADSL line: attempting to activate
Oct 5 08:08:00 muretto kernel: ATM dev 0: ADSL line: channel analysis
Oct 5 08:08:05 muretto kernel: ATM dev 0: ADSL line: up (4832 kb/s down | 320 kb/s up)
qui alle 8.08.00 il modem si è sincronizzato con il segnale ADSL
- Una volta agganciato il segnale ADSL, scrivere da terminale
cat /proc/net/atm/cxacru:0
appariranno di seguito queste informazioni
ADSL USB MODEM (usb-0000:00:07.2-1)
MAC: xx:yy:zz:bla bla bla
AAL5: tx 9363 ( 0 err ), rx 14299 ( 0 err, 0 drop )
Line up
Ci siamo: il driver del modem è perfettamente funzionante
NB probabilmente avrete un rallentamente di tutta l’interfaccia grafica di linux poiché forse non è ancora corretta la connessione causando tale disagio.
//
// IMPOSTAZIONE DELLA CONNESSIONE ADSL
//
Prima di iniziare dobbiamo sapere:
- la nostra “userid” e “password” che di solito per Telecom Alice sono “userid=aliceadsl” e “password=aliceadsl”
- VPI e VCI del nostro provider che nel caso di Telecom Alice sono 8 e 35.
- IP e DNS del nostro provider nel caso di una connessione con IP statico.
Iniziamo con la configurazione.
-
Creiamo il file “adsl” nella cartella /etc/ppp/peers/ e scriviamoci al suo interno quello di seguito:
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.2/pppoatm.so 8.35
user aliceadsl
-
Aprite il file /etc/ppp/pap-secrets ed inserite il vostro userid e password come di seguito:
Secrets for authentication using PAP
client server secret IP addresses
aliceadsl * aliceadsl
####### redhat-config-network will overwrite this part!!! (begin) #####
####### redhat-config-network will overwrite this part!!! (end) #######
- Aprite il file /etc/ppp/chap-secrets ed inserite il vostro userid e password come di seguito:
Secrets for authentication using PAP
client server secret IP addresses
aliceadsl * aliceadsl
####### redhat-config-network will overwrite this part!!! (begin) #####
####### redhat-config-network will overwrite this part!!! (end) #######
-
A questo punto scrivete sul terminale “/usr/sbin/pppd call adsl” ed il gioco è fatto. Ora se aprite mozilla o firefox ed avete eseguito senza errori la procedura, navigate regolarmente. Io poi mi sono fatto un collegamento sul Desktop poiché ogni volta che accendete il computer, occorre rieseguire “/usr/sbin/pppd call adsl” per avviare la connessione.
-
Controllate su /var/log/messagges se appaiono scritte del genere
Jun 3 00:07:40 localhost pppd[5101]: Plugin /usr/lib/pppd/2.4.2/pppoatm.so loaded.
Jun 3 00:07:40 localhost kernel: CSLIP: code copyright 1989 Regents of the University of California
Jun 3 00:07:40 localhost kernel: PPP generic driver version 2.4.2
Jun 3 00:07:40 localhost pppd[5101]: PPPoATM plugin_init
Jun 3 00:07:40 localhost pppd[5101]: PPPoATM setdevname_pppoatm - SUCCESS:8.35
Jun 3 00:07:40 localhost su(pam_unix)[5095]: session closed for user root
Jun 3 00:07:40 localhost pppd[5126]: pppd 2.4.2 started by root, uid 0
Jun 3 00:07:40 localhost pppd[5126]: Using interface ppp0
Jun 3 00:07:40 localhost pppd[5126]: Connect: ppp0 <–> 8.35
Jun 3 00:07:40 localhost pppd[5126]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Jun 3 00:07:43 localhost pppd[5126]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Jun 3 00:07:43 localhost pppd[5126]: PAP authentication succeeded
Jun 3 00:07:43 localhost pppd[5126]: local IP address 82.59.0.222
Jun 3 00:07:43 localhost pppd[5126]: remote IP address 192.168.100.1
Jun 3 00:07:43 localhost pppd[5126]: primary DNS address 80.17.212.208
Jun 3 00:07:43 localhost pppd[5126]: secondary DNS address 151.99.125.1
-
Controllate su /etc/resolv.conf se i dns sono corretti altrimenti li dovrete inserire a mano.
; generated by /sbin/dhclient-script
search pool8251.interbusiness.it
nameserver 80.17.212.208
per chi ha libero adsl ne file resolv.conf deve scrivere
search libero.it
nameserver 193.70.192.25
nameserver 193.70.152.25
Riferimenti:
Sito del progetto - http://accessrunner.sourceforge.net/
Mailing List del progetto (utilissima) - http://sourceforge.net/mailarchive/forum.php?forum_id=43894
L’uomolosco spera di essere stato di aiuto.
e anch’io lo spero
tindal