FASTRATE USB 100 & Mandrake GNU/Linux  9.2 


Ultima revisione: 30-07-2004

Questo semplice documento si propone di aiutare gli utenti di Mandrake GNU/linux 9.2 
a far funzionare il famigerato FASTRATE USB 100
con l'amato pinguino.


NOTA IMPORTANTISSIMA:
la descrizione su come patchare i driver della BeWAN sono copiati
dal documento di dr feelgood che si trova su http://xoomer.virgilio.it/dr_feelgood/index.html
Senza le sue intuizioni e il suo fondamentale contributo il modem FastRate sarebbe solo un
inutile soprammobile sopra la mia scrivania...  Quindi  GRAZIE  dr feelgood!!!

Innanzitutto ecco le specifiche della macchina (la mia) sulla quale il FastRate funziona perfettamente:

OS:  Mandrake GNU/Linux  9.2  Download Edition
kernel linux:  2.4.23
processore: AMD Athlon 900 MHz
memoria ram: 192 Mb
controller USB: USB UHCI - VIA Tecnologies
versione driver BeWAN: 0.8.7
identificativi chipset modem:
ID 0483:0137 SGS Thomson Microelectronics

(come vedete niente di eccezionale...)


Per ottenere gli identificativi del chipset eseguite:
 
lsusb

[root@macondo stefano]# lsusb
Bus 002 Device 001: ID 0000:0000
Bus 002 Device 002: ID 058f:9254 Alcor Micro Corp. Hub
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 0483:0137 SGS Thomson Microelectronics
Bus 001 Device 003: ID 046d:0850 Logitech, Inc. QuickCam Web


Cosa serve:

*kernel linux => 2.4.22 compilato con il supporto per atm e con i moduli pppoatm e n_hdlc , e relativo sorgente
(il kernel  2.4.21 va patchato - leggete il file README nel pacchetto del driver)
Purtroppo Mandrake 9.2 Download Edition non fornisce i sorgenti del kernel, pertanto è necessario
scaricarne uno ufficiale e compilarlo come si deve. Consiglio di scaricare il 2.4.23 poichè questo tutorial
è il resoconto della mia esperienza POSITIVA con questo kernel.

I seguenti pacchetti presenti nella Mandrake 9.2  Download Edition:

*liblinux-atm1

*ppp

*pppoatm

Potete usare il tool DrakConf per installarli.
 
Naturalmente servono i drivers della BeWAN, scaricabili da:

http://www.bewan.com/bewan/users/downloads/index.php


sotto "Drivers for the BeWAN
ADSL PCI & USB ST",
logicamente quello per Gnu/Linux, che ad oggi è la versione 0.8.7

Iniziamo. (Nota: i comandi preceduti da # si intendono eseguiti da root. I più esperti che
stanno sorridendo per questa banalità, si ricordino di quando erano dei novizi con GNU/linux...).  

Dobbiamo compilare il kernel.

Siccome molti utenti hanno delle difficoltà a impostare le giuste
opzioni per il kernel, vi fornisco il file di configurazione del mio 2.4.23 qui

Questa configurazione contempla già tutte le opzioni necessarie per il
FastRate, ma non è applicabile a tutti i sistemi. Deve essere intesa come base di partenza.

Se avevate già compilato il kernel, è bene  ripulirlo prima di  usare il mio  file config.
Dunque eseguite:

#make mrproper

#make clean

Poi copiate il mio config nella directory /usr/src/linux-versione e rinominatelo .config,
cioè:

# mv -f config-2.4.23 .config

Per aggiungere le opzioni specifiche per il vostro sistema, ad esempio
il tipo di scheda audio o una qualche particolare periferica che utillizzate
e sapete essere supportata dal kernel, eseguite:

#make menuconfig

Fate le vostre modifche e salvate la vostra configurazione personalizzata.
Vi rammento ancora che tutto quello che riguarda il FastRate
e internet è già impostato correttamente.

Dopodichè compilate il kernel così:

#make dep
#make bzImage
#make modules
#make modules_install
#make install

Prima di compilare il driver per il modem, riavviate il sistema con il nuovo kernel !

Nota: se in precedenza avevate installato altri driver
che necessitano dei sorgenti del kernel, come quickcam o nvidia, dovrete reinstallarli.
Inoltre con il kernel ufficiale perderete il boot splash di Mandrake 9.2... ci vorrebbe una patch, ma
è meglio non complicare le cose...

Per chi dovesse avere dei problemi, il consiglio è di aspettare la MDK 10.0, che questa volta fornirà
i sorgenti del kernel.

Il driver della BeWAN deve essere patchato. Per la versione 0.8.7 si deve agire così:

Aprite il file unicorn/include/hard.h cercate le linee:

#define   ATM_DS_CELLS_PER_PKT    8       // ATM downstream cells per ISO packet (alt 1)
#define ATM_READS               8       // max ATM downstream URB outstanding
#define      ATM_DS_ISO_PACKETS      5       // ATM downstream ISO packets per URB

e modificate i valori come segue:

#define    ATM_DS_CELLS_PER_PKT    8       // ATM downstream cells per ISO packet (alt 1)
#define ATM_READS               8      // max ATM downstream URB outstanding
#define       ATM_DS_ISO_PACKETS      8       // ATM downstream ISO packets per URB

Attenzione, non modificate nient'altro in questo file !!!

Salvate e chiudete.

Adesso aprite il file unicorn/unicorn_usb/unicorn_usbdrv.c.

Cercate la definizione:

#define ALT_SETTING 1

e cambiate il valore 1 con  il valore 4

Aggiungete sotto la linea precedente la linea:

#define PACK_SIZE 140

Adesso cercate (con un 'cerca') il numero 128. Ne dovreste trovare ben 4.
Sostituite tutti i 128 con la definizione PACK_SIZE

Adesso andate alla linea 667 circa. Individuate la procedura 'get_ds_packetsize'.
Sostituite tutti i numeri moltiplicatori di USB_CELL_LENGTH (in questa procedura) con 8.
Esempio: 8*USB_CELL_LENGTH
In totale i moltiplicatori sono 4.

Abbiamo finito con le patches.

Adesso compilate il driver per il modem (quello che ci serve è unicorn_usb_atm.o
(o .ko per i kernel 2.6.x) ) MA NON INSTALLATELO (per ora).
Per compilarlo entrate nella directory unicorn e eseguite make.
Per i kernel 2.6.x è necessario essere root per compilare il driver correttamente!

Anche io avevo seguito i vari howto che si trovano in rete; tutti dicono di aggiungere
delle righe in /etc/modules e in /etc/modules.conf , ma è sicuro che caricare il driver al boot,
con o senza il cavo adsl già collegato alla presa telefonica, crea dei problemi sia al sistema
(
MDK almeno) che al regolare funzionamento del driver. Si deve evitare che il driver venga caricato al boot.
Quindi:

1) copiate il driver in /lib/modules/versione_kernel/misc/ o in
/lib/modules/versione_kernel/extra/
ed eseguite:

# depmod -ae

Poi  modificate il file /etc/hotplug/blacklist  aggiungendo semplicemente  il nome del driver
cioè:
unicorn_usb_atm  (senza il suffisso .o).

Se in precedenza avevate aggiunto delle linee riguardanti il driver unicorn nei file
/etc/modules e in /etc/modules.conf, rimuovetele.

Questo impedirà al sistema di caricare al boot il driver.

A questo punto si fa quello che è scritto in tutti gli howto sul tema, cioè:

modificate /etc/ppp/chap-secrets e /etc/ppp/pap-secrets
in questa forma:

"nome_utente"  *  "password"  *

modificate /etc/resolv.conf scrivendo i DNS primario e secondario
del vostro provider (esempio per TELE2):

nameserver 130.244.127.161
nameserver 130.244.127.169

e create un link simbolico

# ln -s /etc/resolv.conf /etc/ppp/resolv.conf

(a volte serve a pppd)

create o modificate il file /etc/ppp/peers/adsl che sarà così:

###Inizio

user "nome_utente"
lock
kdebug 1
ipparam ppp0
noipdefault
noauth
default-asyncmap
usepeerdns
defaultroute
hide-password
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
lcp-echo-interval 20
lcp-echo-failure 3
sync
maxfail 0
persist
plugin /usr/lib/pppd/2.4.1/pppoatm.so 8.35
#mtu 1492

###Fine

Nota: l'ultima impostazione (mtu 1492) suggerita da dr feelgood, con il mio provider, Tele2, è inutile.
Dr feelgood si connette tramite Telecom Italia e usa questa impostazione. Sperimentate...

A questo punto dobbiamo verificare che il modem raggiunga correttamente lo stato di SHOWTIME.
Riavviate il sistema. Se avete seguito il suggerimento il driver non dovrebbe caricarsi.
Assicuratevi che il cavo adsl sia connesso ed eseguite:

# modprobe usb-uhci
# modprobe n_hdlc
# modprobe pppoatm
# modprobe unicorn_usb_atm ActivationMode=X

Nota: probabilmente usb-uhci è già caricato, comunque non fa male essere sicuri...

Il parametro X di ActivationMode è:

1 se il vostro provider vi ha detto che la modulazione è ANSI
2 se G.lite
3 se MULTI
4 se G.dmt


IMPORTANTE: se il modem non si sincronizza (luce rossa accesa e fissa) nel giro di
venti secondi e il driver è stato caricato (devono lampeggiare le luci del modem) è
probabile che dobbiate cambiare modulazione.

IMPORTANTE(2): per cambiare modulazione è FONDAMENTALE
spegnere il modem perchè questo possa fare l'inizializzazione in maniera
pulita. Pertanto dovrete:

# modprobe -r usb-uhci  (oppure usb-ohci a seconda del vostro controller USB)
# modprobe -r unicorn_usb_atm
#
modprobe usb-uhci      (oppure usb-ohci a seconda del vostro controller USB)

Prima di rimuovere usb-uhci, chiudete le eventuali applicazioni che stanno usando periferiche
collegate alle porte USB (es. gqcam con la webcam).

A questo punto potete provare una diversa modulazione.

Tutte queste operazioni possono essere semplificate dall'uso di uno script.

Finalmente dovreste essere riusciti a sincronizzare il modem...
Ecco l'output del comando unicorn_status, un programma
presente nel pacchetto del driver:

[stefano@macondo tools]$ unicorn_status
Modem State               : SHOWTIME_L0
Remote Report             : Showtime
Last Failure              :
Time Connected            : 00:01:00
Modulation                : G.dmt
Rate Us/Ds (Kbps)         :  320  800
Cap. Occupation Us/Ds (%) :   37   12
Noise Margin Us/Ds (dB)   :   28   35
Attenuation Us/Ds (dB)    :    5   14
Output Power Us/Ds (dBm)  :    9   15
FEC Errors Us/Ds          :    0    0
CRC Errors Us/Ds          :    0    0
HEC Errors Us/Ds          :    0    0
Driver Version            : x.x.x
Firmware Version          : USB-AMW-1-1.8-0.1.0.5

Se è così, cioè se unicorn_status vi dice che il modem è in showtime o
semplicemente se il modem ha la luce rossa accesa e fissa,
è tempo di navigare ad alta velocità con il caro pinguino MDK e il FASTRATE.

Eseguite:

# pppd call adsl

e sperate fiduciosi. Dopo 10-15 secondi eseguite
ifconfig per verificare se siete in rete.

Per chiudere la connessione:

# killall -s9 pppd


Una stranezza dedicata agli utenti Mandrake 9.2:
i tools DrakConf e HardDrake sono allergici
al driver unicorn e s'incartano se vengono lanciati quando
questo è caricato.
 

Nota per utenti adsl a consumo: se usate l'adsl solo per scaricare grossi file
e la normale connessione analogica per il resto, kppp o il normale
modem possono avere dei problemi con le impostazioni in /etc/resolv.conf
e /etc/ppp/pap-secrets, /etc/ppp/chap-secrets. Il consiglio è di
svuotarli prima di usare kppp. Lo so: è fastidioso configurarli e poi sbiancarli...
ma tutto si può semplificare con uno script...(con GNU/Linux il solo limite è la nostra fantasia).


RIASSUMENDO:

1) NON CARICATE IL DRIVER UNICORN_USB_ATM AL BOOT,
    MA FATELO IN SEGUITO

2) E' FONDAMENTALE PATCHARE IL DRIVER BEWAN, ALMENO PER I PROVIDER
    TELECOM ITALIA E TELE2

Buona navigazione!

joecondor