Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Hardware-hard net-pack-xtense


Alcatel Speedtouch ADSL USB: installation façon libre :)

Alcatel Speedtouch ADSL USB: installation façonlibre :)
Installation sous Linux du modem ADSL Alcatel Speedtouch USB

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 :

Support for USB (CONFIG_USB) [M]
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 :

# mount -t usbdevfs none /proc/bus/usb

Si ça vous dit que le système de fichier est déjà monté, ça n'est pas grave.
Tapez alors :

# cat /proc/bus/usb/devices

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 :

# pppd

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 :

pppd: This system lacks kernel support for PPP. This could be because the PPP kernel module could not be loaded, or because PPP was not included in the kernel configuration.

c'est que vous n'avez pas le support PPP dans votre kernel. Dans ce cas, compilez votre kernel avec ces options :

PPP (point-to-point protocol) support (CONFIG_PPP) [M]
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 :

# modprobe n_hdlc

Si le support n'est pas présent, recompilez votre kernel avec les options suivantes :

Character devices --->
[*] 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 char-major-108 ppp_generic
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-21 bsd_comp
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 :

$ ./configure
$ 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 :

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

user "fti/gf3yud@fti"

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 :

# Secrets for authentication using CHAP
# client server secret IP addresses
"votre_login" "*" "mot_de_passe" "*"

ainsi qu'un fichier /etc/ppp/pap-secrets :

# Secrets for authentication using PAP
# 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 :

# /usr/local/bin/modem_run -f /usr/local/share/speedtouch/mgmt.o -m

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 :

# pppd call adsl

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:

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

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

  1. Le firmware, par exemple celui-ci.
  2. La partie "utilisateur" du driver : speedbundle.
  3. 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 dep
make clean
make bzImage
make install
make modules
make modules_install

Compilation des utilitaires

Tout d'abord on décompresse : speedbundle :

[user ~] $ tar xzf speedbundle-1.0.tar.gz
[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" Makefile > Makefile.new
[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 :

[user speedbundle-1.0] $ cp /ou/vous/avez/mis/firmware.bin firmware/firmware.bin
Si votre firmware est mgmt.o ou alcaudsl.sys, vous devez quand-même le copier dans firmware/firmware.bin

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 speedbundle-1.0] $ cd ppp_scripts
[user ppp_scripts] $ _

Puis on va copier speedtch-pppoatm sur speedtch :

[user ppp_scripts] $ cp speedtch-pppoatm 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 ppp_scripts] $ cd ..
[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 :

[user ~] $ su -
[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 :

#!/bin/bash
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
Le script que je propose ici diffère de celui qu'on trouve sur le site www.linux-usb.org car, chez moi la première tentative échoue presque toujours (problème de synchronisation ?). J'ai donc fait une boucle pour qu'il y ait 5 tentatives.

Voilà, vous pouvez maintenant tester ce driver et surfer sur le net.




@ Retour à la rubrique Réseau et sécurité

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Serge Tchesmeli le 10/09/2001.

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.
Affichages
Outils personnels

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA