Alcatel SpeedTouch USB
Alcatel Speedtouch ADSL USB: installation façon libre :)
Introduction
Cet article décrit l'installation des drivers Opensource du modem ADSL Alcatel Speedtouch USB.
Dans un [speedtouchusb.php3 autre article] ainsi qu'un [speedtouch2.php3 témoignage] présents sur Léa, on décrit comment installer et configurer ce même modem, mais la méthode est assez compliquée (il faut patcher le kernel, le recompiler, compiler plusieurs applications externes sont nécessaires, et configurer le tout est complexe) ; de plus le résultat est médiocre (plantage systématique lors d'un reboot), et surtout cette méthode est basée sur les drivers propriétaires livrés par Alcatel qui ne sont pas libres du tout, pas stables et peu souvent mis à jour.
Mais Benoît Papillault a eu la bonne d'idée d'écrire des drivers LIBRES, et qui sont de plus stables et très faciles à installer. Un grand merci à lui !
Si vous utilisez une Mandrake (à partir de la 8.1), cet article ne vous concerne pas à priori. Cette distribution fournit en effet les drivers de B. Papillault et vous propose de les configurer soit lors de son installation soit après celle-ci. Dans ce dernier cas il vous suffit d'utiliser le Mandrake Control Center (DrakConf), d'aller à Réseau et Internet / Connexion, de clicker sur le bouton Configurer (en bas à droite) puis de suivre les instructions à l'écran !
La seule autre chose que vous ayez à faire est de copier ensuite le fichier mgmt.o dans le répertoire /usr/share/speedtouch
(si vous ne savez pas comment récupérer ce fichier, consultez alors cet article).
Cependant un bug affecte la MDK 8.2 : l'installation des drivers ne fonctionne pas lors de l'installation de la distribution. Il faut juste s'assurer que les fichiers de config sont bons (voir ci-dessous), et si tel est le cas, tout baigne, même si le message lors du boot dit [FAILED] lors de l'établissement de la connexion.
Voici une méthode alternative pour [../trucs/lire.php3?id=132 une installation rapide sur une Mandrake (à partir de la 8)].
Pré-requis et détection du modem
Support USB
Si vous utilisez d'autres périphériques USB ou si vous avez une distribution gérant déjà l'USB, vous pouvez passer ce paragraphe. [#verif Vérifiez juste que le modem est détecté].
Dans un premier temps, nous allons configurer notre système pour accepter le modem USB et le faire détecter.
On suppose que vous avez un noyau récent (en fait à partir du 2.2.18), compilé avec le support USB correspondant au chipset de votre carte mère, gérant l'USB soit en natif, soit en module.
Si vous ne savez pas quel chipset vous avez, assurez vous juste que votre noyau est compilé avec ces options :
Preliminary USB device filesystem (CONFIG_USB_DEVICEFS) [Y]
UHCI (Intel PIIX4, VIA, ...) support (CONFIG_USB_UHCI) [M]
UHCI Alternate Driver (JE) support (CONFIG_USB_UHCI_ALT) [M]
OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support (CONFIG_USB_OHCI) [M]
La plupart du temps, si votre carte mère est récente, c'est le module usb-uhci qu'il faut charger (chipset Intel ou via, les plus répandus).
Dans le cas d'une carte USB additionnelle, ou sur un Apple (iMac, iBook...), il se peut que ça soit le module usb-ohci. Vérifiez de toute façon sur la notice de votre carte mère ou de votre carte additionnelle le type de port USB que vous avez ; dans le doute prenez tous les modules UHCI et OHCI.
Si le module correspondant à votre type de port USB n'est pas chargé (cela se vérifie avec la commande lsmod), chargez-le.
Vérifiez que votre modem est bien détecté. Pour cela faites un :
Si ça vous dit que le système de fichier est déjà monté, ça n'est pas grave.
Tapez alors :
Et vous devriez voir apparaître alors des messages du style :
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=usbdevfs
I: If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
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
...
Ok notre modem est bien détecté.
En cas de problèmes, débranchez le modem (au niveau USB), puis rebranchez-le. Déjà, si les deux LEDs vertes s'allument, c'est qu'il est normalement détecté.
Par contre s'il ne s'allume pas du tout (aucune LED) ou s'il y a juste la LED rouge c'est qu'il y a un problème, vérifiez que le module USB est bien chargé, et que vous avez bien chargé celui correspondant à votre matériel (OHCI ou UHCI).
Support PPP
Le support ppp est intégré au noyau de toutes les distributions récentes : debian, Mandrake, RedHat, Slackware. En général, vous pouvez passer à la suite.
Il va vous falloir aussi le support PPP dans votre kernel. La plupart du temps la aussi, dans les distributions récentes, ce support est déjà présent. Sachez que si vous utilisez auparavant une connexion par modem RTC (modem traditionnel sur la ligne téléphonique) c'est que vous avez déjà le support PPP. Dans ce cas, vous pouvez passer ce paragraphe.
Pour vérifier quand même au cas où, tapez dans une console :
Si vous voyez des caractères bizarres s'afficher (du style %:/lm....) c'est bon : vous avez le support ppp. Appuyer sur CTRL-C pour stopper pppd.
Par contre si vous avez un message du type :
c'est que vous n'avez pas le support PPP dans votre kernel. Dans ce cas, compilez votre kernel avec ces options :
PPP support for sync tty ports (CONFIG_PPP_SYNC_TTY) [M]
Dernière vérification à faire, vérifiez que votre kernel possède bien le support HDLC (là aussi c'est normalement le cas pour les distributions récentes) en essayant de charger le module :
Si le support n'est pas présent, recompilez votre kernel avec les options suivantes :
[*] Non-standard serial port support
HDLC line discipline support
[*] Unix98 PTY support
Enfin, automatisons le chargement des modules, et définissons les alias des modules en ajoutant dans le fichier /etc/modules.conf :
alias tty-ldisc-3 ppp_async
alias tty-ldisc-13 n_hdlc
alias tty-ldisc-14 ppp_synctty
Et tant qu'on y est, ajoutons aussi les lignes suivantes dans ce fichier (ce sont les protocoles de compression) :
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
Voilà, passons maintenant à l'installation des drivers.
Installation des drivers
Drivers
Il va falloir récupérer les drivers, pour cela allez sur : http://benoit.papillault.free.fr/speedtouch/user.php3
Récupérez la dernière version ! Puis détarrez / dézippez-la (tar zxvf speedtouch-VERSION.tar.gz), placez-vous dans le répertoire ainsi obtenu et compilez le tout :
$ make
$ su
Password:
# make install
# exit
(En étant root pour pouvoir installer bien sûr).
Firmware
Il va nous falloir aussi un des fichiers des drivers officiels d'Alcatel (il s'agit en fait du FIRMWARE qui est le programme chargé dans le microprocesseur du modem lui-même), seule partie des drivers que Benoît n'a pas pu écrire, car ils sont le secret d'Alcaltel, et réécrire un firmware ne sert à rien.
Pour cela, allez sur cette page.
Et copiez ce firmware.bin dans /usr/local/share/speedtouch/ (ce répertoire a été créé par l'installation des drivers) puis renommez le mgmt.o.
Remarque : si vous utilisez Windows, vous pouvez aussi copier le fichier alcaudsl.sys que l'on trouve dans c:\windows ou un sous-répertoire, vers /usr/local/share/speedtouch/mgmt.o
Bon maintenant configurons la connexion elle-même.
Configuration de la connexion
Pour cette partie, vous allez avoir besoin des paramètres de configuration de votre connexion que votre fournisseur d'accès vous a fournis. Allez dans le répertoire /etc/ppp/peers (créez-le s'il n'existe pas), et créez un fichier /etc/ppp/peers/adsl comprenant :
noipdefault
pty "/usr/local/bin/pppoa3 -c -m 1 -vpi VPI -vci VCI"
sync
noaccomp
nopcomp
noccp
novj
holdoff 4
maxfail 25
persist
usepeerdns
user "votre login"
defaultroute
debug
kdebug 1
Avec comme valeurs :
- VPI : 8
- VCI : 35
ATTENTION : Ces valeur VPI / VCI sont valables pour la France, ils se sont sûrement pas bons si vous habitez un pays francophone ou étranger, DOM, TOM, etc... Pour trouver votre VPI / VCI, sous Windows, vous devez avoir une petite icone verte représentant votre modem USB à gauche de l'horloge, double cliquez dessus, puis cliquez sur la flèche verte intitulé MORE (ou plus d'info...), les paramètres de connexions apparaissent alors. sur l'onglet "Connexion", notez les valeurs VPI et VCI. Mettez alors ces mêmes valeurs dans le fichiers /etc/ppp/peers/adsl décrit ci dessus.
Si vous n'utilisez pas Windows, les valeurs suivantes pourront peut-être vous aider :
Hollande : 8.48
France : 8.35 (ou 8.67)
Belgique : 8.35
Italie : 8.35
Grande Bretagne : 0.38
Pour la valeur de "votre login" mettez le user COMPLET sans oublier le @FAI souvent obligatoire.
Par exemple dans mon cas, une connexion Wanadoo (fti = France Telecom Interactive), mon login est de la forme :
Note : pour éviter de commettre des erreurs, vous pouvez utiliser de préférence comme base le fichier adsl.ppp-peersample fournit avec le driver.
Créez maintenant un fichier /etc/ppp/chap-secrets (ou ajoutez dans celui existant) avec dedans :
# client server secret IP addresses
"votre_login" "*" "mot_de_passe" "*"
ainsi qu'un fichier /etc/ppp/pap-secrets :
# client server secret IP addresses
"votre_login" "*" "mot_de_passe" "*"
Là aussi le login doit être complet.
Voilà tout est prêt pour tester !
Remarques :
Le fichier /etc/ppp/options n'est pas ici mentionné, pourtant celui de certaines distributions (Woody par exemple) est inadéquat. Dans ce cas il faut le remplacer par le fichier suivant :
# /etc/ppp/options
usepeerdns
noauth
lock
noipdefault
Testez le tout !
Pour cette partie, allez chercher votre gri-gri favori, votre trèfle à 4 feuilles et, très important, déposez 3 gousses d'ail sur le moniteur de votre PC (si y'en a un qui le fait qu'il m'envoie une photo SVP ;).
Lancez alors les commandes suivantes :
Attendez un petit moment, que la LED verte de droite ne clignote plus. S'il vous avez un message d'insulte et que la LED de droite passe a l'orange, retapez la commande (il arrive que le modem ne s'initialise pas bien la première fois). Si la LED de droite est verte et ne clignote plus, lancez alors cette commande :
Si vous avez un message avec des adresses IPs, c'est bon : ça marche !!! (Note de Jice : chez moi il n'y a aucun message : pppd call adsl rend la main tout de suite, il établit la connexion en arrière plan, et cela fonctionne.) ;)
Essayez alors de surfer sur la vague du web !
Pour automatiser la connexion dès le démarrage, vous pouvez placer ces 2 commandes dans un script de démarrage, ou voyez ce que vous pouvez faire avec le script /usr/local/share/speedtouch/adsl.sh
Remarque : si vous avez des problèmes de résolution DNS, renommer le fichier /etc/resolv.conf en resolv.conf.backup par exemple, et tapez la commande:
Essayez de nouveau (mais normalement les DNS sont récupérés automatiquement à la connexion, c'est l'option usepeerdns vue plus haut).
Et voilà ! Bon surf à haut débit avec votre manchot favori !
Le driver du kernel
Depuis peu (kernel 2.5.x, 2.6.x et backport vers le 2.4.22+), il existe un autre driver pour les SpeedTouch : le driver du kernel. Je ne sais pas lequel est préférable. Celui de Benoît Papillaut semble plus facile à installer, mais d'après les développeurs du driver du kernel ce driver est plus performant (ils affirment qu'il a de meilleures performances et une latence plus faible). Pour l'instant le driver du kernel utilise la partie "modem_run" du driver de Benoît pour charger le firmware (qui est le même). Si vous voulez tester ce dernier pour vous faire une idée, voici la marche à suivre pour ce qui est du la connexion utilisant "ppp over atm" (il en existe une autre : ppp over ethernet, mais je ne l'ai pas essayé).
Ce qu'il nous faut
- Le firmware, par exemple celui-ci.
- La partie "utilisateur" du driver : speedbundle.
- Les sources du kernel 2.4.22 (ou plus !).
Configuration du kernel
Il faut configurer le kernel (au moins pour les 2.22 et plus) de la maniére suivante :
- Code Maturity Level Options
- Prompt for development and/or incomplete code/drivers [Y]
- Loadable Module Support
- Enable Loadable Module Support [Y]
- General Setup
- Support for hot-pluggable devices [Y]
- Networking Options
- Packet Socket [Y]
- Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) [Y/M]
- Network Device Support
- PPP (Point-to-Point Protocol) Support [Y/M]
- PPP Deflate Compression [Y/M]
- USB Support
- Support for USB [Y]
- Preliminary USB Device Filesystem [Y]
- UHCI (Intel PIIX4, VIA,...) Support [Y/M]
- OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support [Y/M]
- Network Device Support
- PPP Over ATM (EXPERIMENTAL) [Y/M]
Pour le reste, configurez correctement votre kernel.
Puis, compilez et installez, les modules et le kernel comme d'habitude :
make clean
make bzImage
make install
make modules
make modules_install
Compilation des utilitaires
Tout d'abord on décompresse : speedbundle :
[user ~] $ cd speedbundle-1.0
[user speedbundle-1.0] $ _
Ensuite, comme on a une bonne version du kernel, il faut désactiver la compilation des modules du kernel (ils sont déjà compilés) :
[user speedbundle-1.0] $ grep -v "kernel_module" configure > configure.new
[user speedbundle-1.0] $ mv Makefile Makefile.old
[user speedbundle-1.0] $ mv configure configure.old
[user speedbundle-1.0] $ mv Makefile.new Makefile
[user speedbundle-1.0] $ mv configure.new configure
Il faut encore copier les firmware au bon endroit :
Normalement, à partir d'ici, on pourrait taper make && make install, mais cela ne va pas fonctionner complètement. Pour ne pas s'énerver, on va finir la configuration.
Pour cela, il faut se rendre dans le répertoire : ppp_scripts
[user ppp_scripts] $ _
Puis on va copier speedtch-pppoatm sur speedtch :
Puis, vous éditez ce fichier speedtch, et vous remplacez "username" par "fti/xxxxxxx@fti" (ie: votre 'login') ainsi que 0.0 par le VCI.VPI dont on a parlé plus haut (pour wanadoo : 8.35).
Enfin, vous éditez (toujours dans ce répertoire ppp_scripts) : chap-secrets et pap-secret pour remplacer dedans : username par "votrelogin" et password par "votremotdepasse". Notez la présence de "" pour évitez les problèmes de login ou de mot de passe contenant des espaces.
Voilà, il ne reste plus qu'à compiler :
[user speedbundle-1.0] $ ./configure
[user speedbundle-1.0] $ make && make install
Ça y est, tout est prêt ou presque, rebootez avec votre nouveau kernel.
Vérifions
Après le reboot, vérifions que tout va bien :
[root user] # modprobe speedtch
[root user] # modem_run -k -f /usr/lib/speedtouch/firmware.bin &
[root user] # pppd call speedtch
Plugin pppoatm.so loaded.
PPPoATM plugin_init
PPPoATM setdevname - remove unwanted options
PPPoATM setdevname_pppoatm - SUCCESS:8.35
Using interface ppp0
Connect: ppp0 <--> 8.35
CHAP authentication succeeded: CHAP authentication success, unit 789
local IP address 81.48.215.163
remote IP address 81.48.215.1
primary DNS address 193.252.19.3
secondary DNS address 193.252.19.4
Toutes les dernières lignes peuvent être différentes chez vous.
Vérifiez que vous êtes connectés à internet (par un petit ping, ou la consultation d'une page web). Si ce n'est pas le cas, essayez de taper une nouvelle fois la ligne pppd call speedtch
Hotplug
Il est possible d'utiliser le Hotplug pour que la connexion s'établisse quand vous branchez votre modem (ou quand vous allumez votre PC), il suffit pour cela de créer le script /etc/hotplug/usb/speedtch :
case $ACTION in
add)
if /usr/sbin/modem_run -k -f /usr/lib/speedtouch/firmware.bin ; then
sleep 5
for i in 1 2 3 4 5 ; do
/usr/sbin/pppd call speedtch
cnx=$(/sbin/ifconfig | /bin/grep ppp)
if [ -n "$cnx" ] ; then
exit 0
fi
sleep $[i*10]
done
fi
;;
esac
Voilà, vous pouvez maintenant tester ce driver et surfer sur le net.
Copyright
Copyright © 10/09/2001, Serge Tchesmeli
Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la Licence pour documents libres, Version 1.1 publiée par la La Guilde des Doctorants. Pour plus d'informations consulter la LDL sur le site de La Guilde des Doctorants. |