Warning: include(../chromemenu.htm) [function.include]: failed to open stream: No such file or directory in /datas/vol2/w4a134915/var/www/sysadmin.lliseil.fr/htdocs/linux/hardw/speedtouch_et_modems_usb_adsl.php on line 32

Warning: include(../chromemenu.htm) [function.include]: failed to open stream: No such file or directory in /datas/vol2/w4a134915/var/www/sysadmin.lliseil.fr/htdocs/linux/hardw/speedtouch_et_modems_usb_adsl.php on line 32

Warning: include() [function.include]: Failed opening '../chromemenu.htm' for inclusion (include_path='.:/opt/alt/php53/usr/share/pear') in /datas/vol2/w4a134915/var/www/sysadmin.lliseil.fr/htdocs/linux/hardw/speedtouch_et_modems_usb_adsl.php on line 32
^M

Speedtouch Linuxspeedtouch et modems usb sous Linux

 

 

Trucs / astuces de base

Modems RTC intégrés "Winmodems"

Les portables sont souvent équipés de Winmodems qui sont solidaires de la carte mère, ce sont ceux qui sont, le plus souvent non reconnus.

Le site suivant vous indique ceux qui sont malgré tout supportés : +++>http://www.linmodems.org/

Modems ADSL

Préférez les externes connectés via Ethernet, leur installation est transparente (quelques clics voire entièrement automatique).

Drivers Open Source de Benoit Papillault

Auteurs : Sylvain Trias | Edouard Gomez | Bernard Brandl
Le modem ADSL SpeedTouch d'Alcatel n'a pas toujours été reconnu automatiquement par les distribs Linux. En suivant cet article ou les liens indiqués, on espère que vous trouverez une solution rapide et efficace à ce problème.

Dernieres Modifications : 29 mars 2005 (liens)

Autres guides et autres modems :

Sommaire

  1. Télécharger (mdk)
  2. Prérequis
  3. Compilation
  4. Configuration (mdk)
  5. Lancement de la connexion
  6. Trouver de l'aide (supplémentaire)

[mdk] Utilisateurs de Mandrake (Mandriva) 8x et + :
Cette distrib est deja configurée pour le speedtouch -> Vous devez seulement : installer le fichier du microcode ( = soit mgmt.o, soit alcaudsl.sys), & vérifier la configuration de PPPD (point 4).
C'est donc quasiment dans la poche 9 fois /10 ! Cliquez les 2 liens et lisez l'aide.

Le problème de configuration est réglé depuis la Mandrake 9

Ce How to décrit la procédure d'installation des drivers du Speedtouch Alcatel sous GNU/Linux.

1- Téléchargement

les drivers de benoit

Récupérez la version la plus récente des drivers sur le »» site «« oficiel du projet
Le fichier se nomme speedtouch-1.1.tar.gz (ou ~.~.bz2).

le microcode du modem Alcatel

Ce que vous voulez récupérer, c'est le microcode qui est fourni avec les drivers d'Alcatel. Vous avez deux possibilités :

Tips :

2- Prérequis

Note sur les versions des noyaux

Vous devez toujours préférer la dernière version du noyau linux, parce que le support USB devient de plus en plus stable. A l'heure actuelle, il s'agit du noyau 2.4.5. Toutes les options suivantes sont normalement présentes dans les noyaux précompilés (c'est le cas du noyau distribué avec la Linux Mandrake 8.x, RH 7.x, Debian Potato/Woody/Sid). Donc ne vous inquiétez pas trop devant la longue liste d'options. Sachez que les drivers de Benoit marchent avec la série 2.4.x du noyau linux, il est possible d'utiliser les drivers avec les 2.2.18 et supérieurs car le code USB provient de la serie 2.4.x.
Il est toutefois conseillé de compiler son propre noyau pour des raisons que je ne peux expliquer dans ce guide, donc dès que vous vous sentez suffisament à l'aise avec votre système GNU/Linux n'hésitez à compiler un noyau personalisé. De plus cette compilation permettra de réparer un bug dans un module du noyau Linux qui empêche une reconnection automatique en cas de coupure.

NB : essayez d'éviter le noyau 2.4.5 qui a une fâcheuse tendance à swapper continuellement

cool La partie suivante a été mise à jour (aout 2002) à partir du site de Benoît. J'ai suivi le schéma suivant:
        - en (a) les recommandations du tutoriel original ;
        - en (b) les ajouts faits par Benoit

support USB

a) Il faut que votre kernel supporte bien evidemment l'USB pour pouvoir profiter du modem Alcatel Speedtouch USB.

Selon votre controlleur USB, il faudra choisir entre 2 types de modules: UHCI ou OHCI.
Sans rentrer dans des détails techniques trop poussés, sachez qu'il s'agit de 2 normes USB incompatibles entre elles.
C'est pourquoi il est obligatoire de savoir quel type de bus USB vous utilisez.

Pour connaitre le chipset USB sur votre carte mère, tapez :
# lspci -v | grep USB (lspcidrake fonctionne également sur Mdk)
Vous obtiendrez une ligne du genre :
usb-ohci : CMD technologies Inc|USB0670
usb-uhci : USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00 [UHCI])

Si votre controleur utilise la norme OHCI, Linux ne vous permettra d'utiliser votre matériel USB qu'à travers le module usb-ohci (chipset K7S5A, ..).
Par contre s'il utilise la norme UHCI (chipstes VIA par ex.), Linux vous propose 2 choix, à savoir : usb-uhci ou uhci. Si par un malheureux hasard votre controleur USB fonctionne mal avec l'un des 2 modules UHCI, tentez d'utiliser le second ; on ne sait jamais !

b) Assurez vous que votre noyau a été compilé avec les options suivantes:

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]

Pour le vérifier, "mount" doit vous donnez une ligne du style:
none on /proc/bus/usb type usbdevfs (rw)
Sinon, tapez:
mount -t usbdevfs none /proc/bus/usb
Ensuite, vérifiez que votre modem est là avec la commande:
cat /proc/bus/usb/devices

Cela vous donnera quelque chose de similaire à :

T: Bus=02 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=e800
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=e400
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#= 4 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=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
I: If#= 1 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
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=usbdevfs
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

Si vous ne voyez pas la ligne concernant votre modem, refaites les manips depuis le début. si ça ne donne rien ne vous acharnez pas ;), allez voir la FAQ.

support PPP

Vérifiez également les options suivantes dans votre noyau (si besoin, compiler ces drivers) :

PPP (point-to-point protocol) support (CONFIG_PPP) [M]
PPP support for sync tty ports (CONFIG_PPP_SYNC_TTY) [M]

Si pppd vous donne le message d'erreur suivant
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. If PPP was included as a
module, try `/sbin/modprobe -v ppp'. If that fails, check t
essayez modprobe ppp_generic.
Si pppd vous donne le message d'erreur suivant
Couldn't set tty to PPP discipline: Invalid parameter
essayez modprobe ppp_synctty.
Pour que les modules soient chargés automatiquement, ajoutez ces lignes dans le fichier /etc/modules.conf:
alias char-major-108 ppp_generic
alias tty-ldisc-14 ppp_synctty

support HDLC

a) Cette partie est un peu plus délicate, en effet pour permettre la reconnection, il faut patcher ce module.
Pas d'inquiètude cependant. Au sein de l'archive des drivers, vous trouverez de quoi appliquer le patch, faites :
# cd /usr/src/linux
# patch -p1 --dry-run < /repertoire des drivers/n_hdlc.c.diff 
( il y a 2 tirets avant dry-run)

Si aucun message d'erreur n'est renvoyé par le programme patch, tapez cette commande pour effectuer le patch du source :

#patch -p1 < /repertoire des drivers/n_hdlc.c.diff

b) Voila, vérifiez & compilez si nécessaire ces modules pour votre kernel :

<-- Character devices --->
[*] Non-standard serial port support
HDLC line discipline support
[*] Unix98 PTY support

 

Vous devez charger modprobe n_hdlc ou ajoutez ces lignes dans votre fichier /etc/modules.conf:
alias tty-ldisc-13 n_hdlc
topofpage

3 - Compilation

Mise en place des drivers

La mise en place des drivers est très simple.

Rappel pour compiler des fichiers sources, vous devez avoir les sources de votre noyau dans /usr/src/linux (cela peut-être un lien symbolique vers les sources réelles). En fait, seules les entêtes sont nécessaires (il existe un paquet rpm dans certaines distributions contenant seulement les entêtes du noyau.
-> sur une Mandrake, vous aurez besoin des paquets kernel-2.x.x-xmdk.i586.rpm & kernel-headers-2.x.x-xmdk.i586.rpm)

Décompressez l'archive des drivers grâce à la commande :

# tar xvzf speedtouch-xxx.tar.gz

Placez vous dans le repertoire nouvellement crée et tapez les commandes suivantes :

# ./configure && make

Si tout s'est bien passé, logguez vous sous root et procédez a l'installation en tapant :

# make install

Ce driver est soumis à la license GPL, donc il est distribué sous forme de fichiers source. Cela signifie que vous devez le compiler avant de pouvoir l'utiliser.

Félicitations les drivers doivent maintenant ecirc;tre installés sur votre systeme.

topofpage

4 - Configuration

Vous avez besoin des informations suivantes:
votre login (sous la forme fti/xxx@fti par exemple)
votre mot de passe
votre couple vpi.vci (exemple: 8.35 pour la France)
le chemin vers mgmt.o (ou équivalent)

A - Création des devices PPP

cool Déja effectué sur les Mandrake 8 & 9 (et plus)

Placez vous dans le repertoire /dev :

# cd /dev

Vérifiez la présence des devices ppp :

# ls *ppp*

Si vous avez une liste de fichiers passez a la suite, sinon tapez cette commande :

# ./MAKEDEV ppp

B - Configuration de pppd

cool Déja effectué sur les Mandrake 8 & 9  si vous avez configuré la connexion ADSL (à l'installation de linux-mdk ou après dans le Mandrake Control Center ). Vérifiez simplement le contenu des 4 fichiers.

Verifiez la version de pppd installé sur votre systeme en tapant :

# pppd --version.

Les drivers ont été testé avec pppd 2.4.0 et 2.4.1. Les drivers fonctionnent aussi avec des versions plus anciennes, par exemple la 2.3.11 fournie avec la Debian Potato GNU/Linux.

Pour configurer pppd, vous devez éditer les fichiers suivants :

1er fichier : /etc/ppp/peers/adsl

Si il n'est pas là, créez-le :

# mkdir /etc/ppp/peers
# touch /etc/ppp/peers/adsl

Copier/coller ce qui suit sans les marquages de début et de fin de fichier

-------------------Debut du fichier /etc/ppp/peers/adsl--------------
#
#
# This file could be rename but its place is under /etc/ppp/peers
# To connect to Internet using this configuration file
# pppd call adsl, where "adsl" stands for the name of this file
#

debug
kdebug 1
noipdefault
defaultroute
pty "/usr/local/bin/pppoa2 -vpi votre_vpi -vci votre_vci"   (voyez ci-dessous pour pppoa3)
sync
user "votre login"
novjccomp
noaccomp
nopcomp
nomagic
noccp
asyncmap 0
usepeerdns
holdoff 1
persist
maxfail 0
------------------Fin du fichier /etc/ppp/peers/adsl------------------

Notez bien que depuis quelques temps deja, une nouvelle version de pppoa nommée pppoa3 est fonctionnelle. Vous pouvez donc changer la ligne pty "/usr/local/bin/pppoa2 -vpi 8 -vci 35" par pty "/usr/local/bin/pppoa3 -c -m 1 -vpi 8 -vci 35"
Pour plus d'informations sur pppoa3, tapez "man pppoa3".

En france, nous disposons du VCI 35 et duVPI 8 mais il se peut que vous deviez changer leur valeur, c'est dans ce fichier que vous devez le faire.
Pour cela, modifiez les parametres dans la ligne pty "/usr/local/bin/pppoa2 -vpi 8 -vci 35"

Notes sur le VCI/VPI [juste pour info, >>> passez a la suite si vous etes presses ;^)] :

Vu que la connexion passe par ATM, 2 parametres de connexions nouveaux apparaissent :

  • le VPI : Virtual Path ID
  • le VCI : Virtual Circuit ID

A quoi ca sert ?
Bonne question; ca sert a identifier votre connexion de chemin virtuel (VP)et votre connexion de circuit virtuel (VC). C'est pour la commutation des cellules que ces parametres servent a l'operateur.
Cela permet (entre autre) de simplifier la gestion du reseau, de minimiser les delais d'ouverture des connexions et les topologies.
En Gros, on peut voir ca comme cela :

        VC--------|----|-------------|----|--------
        VC--------| VP |             | VP |--------
        VC--------|----| Transmition |----|--------
                    |    Path     |
        VC--------|----|             |----|--------
        VC--------| VP |             | VP |--------
        VC--------|----|-------------|----|--------
2ème fichier :

Sur internet 2 protocoles sont utilisés par les fournisseurs d'accès pour identifier ses utilisateurs : CHAP ou PAP.
Selon le protocole utilisé par votre fournisseur, éditez:

/etc/ppp/chap-secrets ou /etc/ppp/pap-secrets.

Le fichier se presente comme suit :

-------------------Debut du fichier /etc/ppp/chap-secrets-----------------
# client server secret IP addresses
"votre_login_ici" "*" "votre_password_ici" "*"
-------------------Fin du fichier /etc/ppp/chap-secrets-------------------

Tips :
dans certains cas ( pas le mien ), il faut utiliser "fti/xxxx" a la place de "fti/xxx@fti" (cf fcarioca!).
Sachez que Wanadoo utilise le protocole CHAP.

cool Les 2 fichiers suivants ne figurent plus dans le dernier tutorial de Benoît. Par ailleurs ils sont déja configurés sur les Mdk presque à l'identique.

3ème fichier

Vous possédez normalement un fichier /etc/ppp/options, ouvrez le pour l'éditer et ne gardez que ces 4 lignes dans ce fichier (commentez avec un # les lignes superflues).

-----------------Debut du fichier /etc/ppp/options-----------------
usepeerdns
noauth
lock
noipdefault
-----------------Fin du fichier /etc/ppp/options-------------------
4ème fichier :

Ouvrez /etc/modules.conf (ou selon l'ancienneté de votre système /etc/conf.modules) et rajouter les lignes suivantes :

alias char-major-108  ppp_generic
alias /dev/ppp ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-13 n_hdlc
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

Certaines de ces entrées sont inutiles mais mieux vaut les avoir au cas où ...

topofpage

5 - Lancement de la connection

Pour lancer la connection, il faut:
  • Charger le microcode du modem
  • lancer pppd
  • être loggué sous le user "root", c'est obligatoire (enfin presque).

a) Verifications

À faire la 1ere fois seulement !

Assurez vous que tous les modules prenant en compte l'usb soient chargés (s'ils ne sont pas en dur dans le noyau) :

# modprobe ppp_generic
# modprobe ppp_synctty
# modprobe n_hdlc

Ensuite, verifier que le usbdevfs soit monté :

# modprobe usbcore
# mount -t usbdevfs none /proc/bus/usb
# modprobe usb-uhci ou usb-ohci ou uhci

b) Charger le microcode

Pour vous connectez, lancez juste les commandes suivantes (en tant que root et en remplaçant /path/to/mgmt.o par le chemin exact du fichier, qui peut-être mgmt, mgmt.o ou alcaudsl.sys ou n'importe quel fichier contenant le microcode d'Alcatel).

# /usr/local/bin/modem_run -f /path/to//mgmt.o -m
( sur ma Mdk 8.2 il suffit de taper : # modem_run -f /le-chemin-vers/mgmt.o -m )
# pppd call adsl
Attendez quelques secondes (~ 20 secondes maximum) et vérifiez en tapant :
# ifconfig ppp0
Si ifconfig vous détaille la l'interface réseau ppp0, bravo vous venez de vous connecter pour la première fois au net grâce à ces drivers. Lancez votre Navigateur (ou logiciel emails, FTP, ...). Notez que la vitesse est au moins la même que sous Windows.
Si vous n'êtes vraiment pas chanceux et que ifconfig vous donne un message d'erreur, passez à la section suivante (6) pour trouver une aide suplementaire.
Vous avez parfois besoin de configurer votre DNS

En créant un lien symbolique vers /etc/ppp/resolv.conf:

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

Vous devez être connecté maintenant! Sinon, lisez la FAQ!

topofpage

6 - Ou trouver de l'aide ?

Il est possible qu'après avoir réalisé & controllé chaque étape de ce petit guide, votre connexion ne se lance pas. C'est parfois dû à une configuration spéciale, et parfois à un oubli de votre part pendant l'une des étapes ci-dessus.
Dans le 1er cas, les sources suivantes vous permettront de finir la configuration de votre modem en forme de raie verte :

MAN pages

N'hésitez pas a vous servir des man pages, les developpeurs ne les écrivent pas pour rien :-)
man pppoa2, man pppoa3, man modem_run peuvent vous apporter les informations qui vous manquent.

FAQ locale

La FAQ locale rapporte les problemes rencontrés et résolus par divers utilisateurs.

Si malgré les pages Man et ma Faq, vous n'y arrivez vraiment pas, voyiez les liens ci-dessous.

Mailing-list

Si vous cherchez de l'aide de la part d'autres utilisateurs comme vous (l'auteur des drivers et ses collègues sont aussi inscrits sur cette liste). Cette liste de difussion est pour vous, vous pouvez questionner & discuter de tous les sujets autour du modem SpeedTouch USB (hors sujet : Windows, partage de la connexion, configuration du DNS, ...). Les messages en Français et en Anglais sont acceptés, mais pas en HTML :

Tout d'abord, lisez l'archive de la liste de diffusion avant de vous inscrire. Votre probléme a toutes les chances d'avoir une solution. Pour vous inscrire à la liste de diffusion, envoyez un message à speedtouch-request@ml.free.fravec subscribe comme sujet.

IRC

Si vous préférez une aide directe ou souhaitez discuter du design du driver, il y a un channel pour vous. Les discussions sont parfois trés actives ou parfois tout le monde dort. Attention, le français et l'anglais sont mélangés.

Serveur : irc.openprojects.net
Channel : #speedtouch

Les nicks connus: benoit : Benoit PAPILLAULT - francoiss : François ROGLER - GomGom : Edouard GOMEZ

Liens

La page (en francais) de Benoit Papillaut est déplacée sur la page officielle du projet, & la FAQ (les 2 derniers liens sont en anglais)

Linux - BSD
SpeedConnect HomePage "PROJET STOPPÉ CAR J'AI ACQUIS UN MODEM ETHERNET" lol: Quelques scripts pour installer et se connecter facilement au web avec un modem ADSL Alcatel Speedtouch USB.
Le support USB sous Linux
Le support de ATM sous Linux
Le support de PPPoA sous Linux
Autre page sur PPPoA sous Linux
driver Alcatel SpeedTouch USB pour *BSD
Le protocole USB
Windows
Un sniffeur USB sous Windows 98 par tom@wingmanteam.com. La version 0.12 est disponible.
Un sniffeur USB sous Windows 2000
Newsgroup
fr.comp.os.linux.configuration pour la configuration sous Linux.
fr.reseaux.telecoms.adsl pour les questions spécifiques à l'ADSL.
Trop cool pour Internet Explorer