FC4 : Modem USB ADSL chipset Conexant Accessrunner

devi aver sbagliato la configurazione o (secondo me più probabilmente) l’installazione del nuovo kernel.

usare un kernel più recente non fa alcuna differenza, a patto di non dimenticare passaggi già fatti: scompattare il kernel, patcharlo, configurarlo, compilare, installare, istruire il bootloader, fare il reboot.
forse ti può essere utile il kernel-howto. se te la cavi con l’inglese dai un’occhiata qui

http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html

se no puoi dare un’occhiata qui

http://www.thomashertweck.de/kernel26i.html

o in qualunque altro posto che trovi con google.
in bocca al lupo!
tindal

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:
//--------------------------------------------------------------------------------------------------------------------

  1. 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/
  2. 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.
  3. 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.
  4. Una connessione a internet funzionante
  5. Il compilatore gcc funzionante.

//--------------------------------------------------------------------------------------
// Possiamo iniziare l’installazione del nostro modem.
//--------------------------------------------------------------------------------------

//
// INSTALLAZIONE DEL KERNEL
//

  1. 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/

  1. 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.

  1. 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.

  1. 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.

  2. 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!

  3. 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

  4. 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.

  1. A questo punto eseguire “make clean” per ripulire da precedenti compilazioni.

  2. Eseguire poi “make bzImage” per dare inizio alla compilazione del kernel. La compilazione impiega circa 10-15 minuti dipende dal processore.

  3. 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).

  4. Poi eseguire “make modules_install” per installare i moduli nella cartella /lib/modules/[versione del kernel].

  5. 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.

  1. 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)

  1. 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.

  2. 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

  1. 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:

  1. la nostra “userid” e “password” che di solito per Telecom Alice sono “userid=aliceadsl” e “password=aliceadsl”
  2. VPI e VCI del nostro provider che nel caso di Telecom Alice sono 8 e 35.
  3. IP e DNS del nostro provider nel caso di una connessione con IP statico.

Iniziamo con la configurazione.

  1. 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

  2. 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) #######

  1. 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) #######

  1. 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.

  2. 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

  3. 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

uomolosco ha effettuato la sua operazione con kernel 2.6.11 su FC4. Inoltre invita a scegliere il file del driver in maniera piu accurata…puo essere anche difettoso.(come era gia successo a uomolosco). Se persisste il problema uomolosco puo inviarti il pachetto del driver gia pronto via email.

uomolosco saluta tutti :smiley:

uomolosco, per ‘driver’ intendi il firmware o il modulo cxacru?

ciao
tindal

uomolosco intende entrambi.

Ciao,
ho letto che hai già estratto il firmware cnxetu.sys, dal driver di qualche modem con chipset conexant accessrunner.
IO ho un Trust Md -3100 con queste caratteristiche:
vendor 0572
product cb06

che è nella lista di quelli supportati dal progetto accessrunner.
Però nel cd di installazione per windows quegli… della Trust hanno messo un eseguibile da cui non riesco ad estrarre il firmware.
Non è che potresti inviarmi il file??
Te ne sarei molto grato
[email protected]
Ciao Ciao

[quote=fernando86]
Ciao,
ho letto che hai già estratto il firmware cnxetu.sys, dal driver di qualche modem con chipset conexant accessrunner.
IO ho un Trust Md -3100 con queste caratteristiche:
vendor 0572
product cb06

che è nella lista di quelli supportati dal progetto accessrunner.
Però nel cd di installazione per windows quegli… della Trust hanno messo un eseguibile da cui non riesco ad estrarre il firmware.
Non è che potresti inviarmi il file??
Te ne sarei molto grato
[email protected]
Ciao Ciao[/quote]

Il Trust MD-3100 ha un chip della conexant e corrisponde all’accessrunner.
Io sono riuscito a far riconoscere il modem usb correttamente, tanto è che aggancia anche la linea…solo che non iresco a nvigare…UFFA! :-?

Ho creato il fild adsl col seguente contenuto:

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

Ma quando lo richiamavo dava errore di file pppoatm.so non trovato.

Ho dato una occhiata a/usr/lib/pppd/2.4.2 e ho scoperto che il file non era li ma nella directory adiacente denominata 2.4.3

Come mai? E’ questione di versione del Kernel?

Ho modificato la linea in:
plugin /usr/lib/pppd/2.4.3/pppoatm.so 8.35

Il modem ha agganciato la linea in un baleno, ma nonriesco a navigare.
Voi che ne dite?
:-?

Sono riuscito a navigare,finalmente e tutto funziona ok!
L’unca cosa è che ho l’impressione che la navigazione sia un po’ piu’ lenta che sotto win XP.

E’ solo un’impressione?
A qualcuno è capitato e se lo ha risolto come ha fatto?
Grazie.
:lol:

uomolosco sottolinea il fatto che il possibile rallentamento possa essere dovuto ad un firewall (i.e. iptables) settato non perfettamente. Se cio non fosse allora resta da dire che è solo una impressione.
Esistono vari tool per osservare tutto cio.