Benoît Papillault, Derniére mise à jour : 31/03/2001
Avertissement
Cette page est obsoléte et n'est conservée que pour des raisons
historiques, vous trouverez la dernière version du driver
speedtouch sur sourceforge, à l'adresse :
http://speedtouch.sourceforge.net/.
Il existe deux pilotes pour le modem Speedtouch USB/330 sous Linux :
Modem ALCATEL ADSL SpeedTouch USB
Download
La dernière version de mon code source est disponible dans speedtouch.tar.gz. C'est
la dernière version du code source, habituellement mise à jour
quotidiennement, mais cela peut-être une version qui ne fonctionne
pas. Choisissez!
Utilitaire
L'utilitaire suivant permet de downloader le microcode du modem. Pour le
compiler, il faut installer la librairie
libusb auparavant.
Une fois le microcode uploadé , il faut initialiser la ligne ADSL avec
l'utilitaire suivant modem_diag.
Pour vérifier votre installation du support USB et de la libusb :
- lsmod doit faire apparaître : usbcore et l'un des modules suivants :
usb-uhci, uhci ou ohci. Si ce n'est pas le cas, recompilez votre
noyau et faites un "modprobe usbcore usb-uhci"
- mount doit afficher "none on /proc/bus/usb type usbdevfs (rw)" dans
l'une des ses lignes. Si ce n'est pas le cas, ajouter la ligne
suivante a votre fichier /etc/fstab :
none /proc/bus/usb usbdevfs defaults 0 0
et activer la avec "mount -a"
-
"cat /proc/bus/usb/devices" doit lister vos
périphériques USB sous la forme suivante,
vérifier la présence du modem Alcatel.
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 3 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
S: SerialNumber=d800
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
S: SerialNumber=d400
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=06b9 ProdID=4061 Rev= 0.00
S: Manufacturer=ALCATEL
S: Product=Speed Touch USB
S: SerialNumber=0090D013AAB8
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl= 50ms
I: If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=00 Prot=00 Driver=Alcatel SpeedTouch USB
I: If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=Alcatel SpeedTouch USB
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=07(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
I: If#= 1 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=Alcatel SpeedTouch USB
E: Ad=06(O) Atr=02(Bulk) MxPS= 32 Ivl= 0ms
E: Ad=07(O) Atr=02(Bulk) MxPS= 32 Ivl= 0ms
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
I: If#= 1 Alt= 3 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=Alcatel SpeedTouch USB
E: Ad=06(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
E: Ad=07(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=05(O) Atr=02(Bulk) MxPS= 8 Ivl= 0ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 8 Ivl= 0ms
Format des paquets USB
Après analyse des paquets USB, il apparait qu'ils contiennent
directement une liste de cellules ATM. Cela explique que la taille des
paquets soit toujours un multiple de 53 octets. Dans l'exemple
utilisé, ces cellules ATM contiennent des paquets AAL5, qui
contiennent des paquets PPP, qui contiennent des paquets IP. Le
endpoint USB 0x07 est utilisé pour lire les cellules et le endpoint
0x87 pour les écrire, ou l'inverse.
Exemple de paquet :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69 00 80 02 32 ec 74 65 08 72 6f 6d
0040: 61 6e 77 65 62 03 63 6f 6d 00 00 01 00 01 00 00
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060: 00 00 00 00 00 44 9e 1b 26 04
La taille totale est de 0x6a = 106 = 2*53 = 2 cellules ATM
Cellule 1 :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69
Entete cellule 1 :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69
0 => GFC = 0
0 8 => VPI = 8
0 02 3 => VCI = 35
0 => PT=0, CLP=0
ec => HEC
Remarque : VPI/VCI=8/35 est bien la valeur définie sur le CDROM
d'installation du modem (cf phonebook.ini)
Entete PPP :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69
00 21 : indique que ce paquet PPP contient de l'IP
Entete IP :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69
45 = IPv4, longueur entete = 5 mots de 4 octets donc 20 octets
.... 0x11 => 17, le protocole contenu est UDP (6 pour TCP)
c1 fd db 07 => 193.253.219.7 ( ANice-102-1-2-7.abo.wanadoo.fr)
c1 fc 13 03 => 193.252.19.3 (ns3.wanadoo.fr)
Entete UDP :
0000: 00 80 02 30 ec 00 21 45 00 00 42 00 13 00 00 40
0010: 11 08 94 c1 fd db 07 c1 fc 13 03 04 07 00 35 00
0020: 2e 9c 85 00 01 01 00 00 01 00 00 00 00 00 00 07
0030: 64 79 6e 73 69
04 07 : port source = 1031
00 35 : port destination = 53 (et hop, c'est du DNS, tout correspond!)
Cependant, ce schéma simple masque la couche SAR/AAL5 qui effectue le
découpage des paquets AAL5 variable de 1 a 65535 octets en cellules de
53 octets.
|