SpeedTouch & Debian
Cette page explique comment installer le modem ADSL Alcatel Speed Touch USB
sous Linux avec une distribution Debian. En effet, ayant eu à réaliser cette
installation, j’ai perdu quelques heures à essayer d’utiliser, par exemple, le
package kernel-patch-2.4-speedtouch
, ou encore à chercher quoi mettre dans
mon /etc/network/interfaces
.
Pas besoin ici de patcher le kernel : on va juste recompiler le noyau, installer un ou deux packages, récupérer un fichier et éditer quelques fichiers de configuration.
- Configuration du noyau
- Installation des pilotes du modem et du microcode
- Configuration
- Connexion et automatisation
Les noyaux 2.6 à partir du 2.6.10 intègrent un mécanisme de chargement de
firmware plus rapide et plus fiable que _modem_run_ : plus la peine
d’installer le package speedtouch
, il faut séparer le fichier mgmt.o
en 2
(le chargeur et le firmware) grâce à l’utilitaire firmware-extractor (cf.
Google), placer les fichiers sous /usr/local/lib/firmware/
, et enfin comme
on fait du pppoatm, créer un fichier /etc/modprobe.d/speedtouch
contenant la
ligne suivante :
install speedtch modprobe pppoatm; modprobe --ignore-install speedtch
Cela a pour effet de remplacer le chargement du module speedtouch par la ligne voulue (il faudra bien sûr avoir compilé le module Speedtouch avec le noyau).
La configuration de l’interface ppp0
devient alors simplement :
iface ppp0 inet ppp
provider adsl
Il faut également modifier le fichier peers/adsl
pour supprimer la ligne
pty ...
et à la place rajouter à la fin du fichier :
plugin pppoatm.so
8.35
Il semble que le seul moyen pour rouvrir la session PPP après la coupure qui a
lieu toutes les 24h soit de mettre un pon adsl
dans la crontab (j’ai essayé
un pon sur le post-down de ppp0, ainsi que les paramètres holdoff et lcp-
restart du fichier de peer, mais plouf).
Enfin le paramétrage en auto
de l’interface pour la monter au démarrage ne
fonctionne pas (il intervient sans doute trop tôt par rapport au chargement du
firmware) ; à la place on peut modifier /etc/init.d/ppp
(voici mon
fichier).
Configuration du noyau
Il est possible que j’oublie ici quelques fonctions déjà activées chez moi et dont je n’ai donc pas ressenti le manque.
Dans le répertoire où l’on a décompressé les sources d’un noyau 2.4, faire un
make xconfig
et choisir les options suivantes.
Support USB
- USB support > Support for USB [M]
- USB support > Preliminary USB device filesystem [Y]
- USB support > UHCI (Intel PIIX4, VIA, …) support [M]
Ici la doc de ma carte-mère indiquait un bus USB compatible Intel Universal HCI ; il est possible que vous ayez plutôt besoin du module OHCI, dans le doute compilez les deux, ça ne coûte rien.
Autres fonctions à activer
- Code maturity level options > Prompt for development and/or incomplete code/drivers [Y]
- Networking options > Asynchronous Transfer Mode (ATM)(EXPERIMENTAL) [Y]
Le support ATM est nécessaire pour faire du PPP over ATM (pppoa) ; il est également possible de faire du PPP over Ethernet (pppoe), mais il paraît que c’est moins bien. - Network device support > PPP (point-to-point protocol) support [M]
- Network device support > PPP support for sync tty ports [M]
- Character devices > HDLC line discipline support [M]
Cela fait, compiler le noyau et les modules, et les installer (make dep clean
bzImage
, puis make modules
et make modules_install
).
Rajouter usb-uhci
(ou usb-ohci
si c’est celui-ci que vous avez choisi,
voire les deux si vous ne savez pas) dans /etc/modules
.
Pour achever l’installation du support USB, rajouter la ligne suivante dans
/etc/fstab
:
none /proc/bus/usb usbdevfs default 0 0
Avec mon 2.4.19, le module n_hdlc
n’était pas correctement installé :
rajouter alias tty-ldisc-13 n_hdlc
dans /etc/modutils/ppp
puis faire
update-modules
pour proprement mettre à jour /etc/modules.conf
.
Rebootez avec votre beau noyau tout neuf ; /proc/bus/usb
doit contenir un
fichier virtuel devices
, sur lequel vous pouvez faire un cat
. Si votre
SpeedTouch est branché, il y a une ligne S: Product=Speed Touch USB
.
Installation des pilotes du modem et du microcode
Là il faut d’une part les pilotes, d’autre part le microcode (firmware) du
modem. J’imagine que le microcode sert d’interface entre le matériel et les
pilotes. Pour ces derniers, il existe d’une part les pilotes propriétaires
Alcatel (c’est à leur utilisation qu’est destiné le package kernel-
patch-2.4-spedtouch
), d’autre part les pilotes OpenSource (leur page est
ici) initialement développés par Benoît
Papillault, censément plus performants, plus stables, et forcément plus
évolutifs.
Pilotes
Ce sont donc ces derniers que nous allons utiliser, d’autant qu’en attendant
le package debian de la dernière version, celui de l’avant-dernière fonctionne
sans problème : speedtouch_1.0-1.1rc2-1_i386.deb. Télécharger et
installer ce package (dpkg --install speedtouch_1.0-1.1rc2-1_i386.deb
).
Microcode
Si vous avez déjà installé le modem sous Windows, vous avez un fichier
[Partition Windows]/windows/system/alcaudsl.sys
. Copiez-le sous le nom
mgmt.o
dans le répertoire /usr/local/share/speedtouch/
que vous aurez créé
(vous pouvez aussi le laisser en place, mais vous devrez adapter la suite de
la configuration).
Si vous n’avez rien installé mais que vous avez les pilotes sous la main, vous
devez pouvoir y trouver ce fichier, par exemple sur le CD du pack Wanadoo
Extense : [CD]/Datas/drivers/SpeedTouch/Driver/alcaudsl.sys
. Copiez-le comme
au paragraphe précédent.
Sinon, allez sur le site d’Alcatel
ici, choisissez Driver Upgrade
for Linux, fournissez les infos demandées, puis Continue, téléchargez la
Binary release (speedmgmt.tar.gz
), décompressez le fichier, et copiez
mgmt.o
dans le répertoire /usr/local/share/speedtouch/
que vous aurez
créé.
Configuration
PPP
Si ce n’est pas déjà fait installez le package ppp
. Puis créez un fichier
/etc/ppp/peers/adsl
ainsi fait, où vous remplacerez xxxxxxx par votre
identifiant de connexion et, si vous n’êtes pas chez Wanadoo (France Télécom
Interactive = fti), fti/xxxxxxx@fti par xxxxxxx@clubadsl1 pour Club-Internet,
xxxxxxx@nerim.fsa pour Nerim, etc. :
# See pppd(8) for details
debug
kdebug 1
noipdefault
defaultroute
pty "/usr/sbin/pppoa3 -m 1 -c -vpi 8 -vci 35"
sync
user "fti/xxxxxxx@fti"
noauth
noaccomp
nopcomp
noccp
novj
holdoff 4
persist
maxfail 25
usepeerdns
Ensuite, stockez votre mot de passe dans /etc/ppp/chap-secrets
(CHAP est le
protocole utilisé par Wanadoo ; si vous avez un autre FAI dont vous ignorez le
protocole éditez de même /etc/ppp/pap-secrets
, pour le protocole PAP utilisé
par exemple par Club-Internet), qui doit ressembler à ceci (remplacez
fti/xxxxxxx@fti par la même chose que ci-dessus et yyyyyyy par votre mot de
passe de connexion) :
# Secrets for authentication using CHAP
# client server secret IP addresses
fti/xxxxxxx@fti * yyyyyyy *
Réseau
Le usepeerdns
de la config de ppp ci-dessus fait qu’à la connexion
/etc/resolv.conf
est renommé en /etc/resolv.conf.ppp.bak
et remplacé par
un fichier récupéré chez l’hébergeur, qui contient les IP des serveurs DNS.
En cas de problème de DNS (messages _Hôte inconnu à répétition), effacer le
/etc/resolv.conf
existant éventuellement, puis créer un lien vers le fichier
/etc/ppp/resolv.conf
:
ln -s /etc/ppp/resolv.conf /etc/resolv.conf
(ne pas oublier de donner les droits de passage –x à tous les utilisateurs
sur /etc/ppp/
)_
Autre fichier important, /etc/network/interfaces
. Vous n’avez pas de carte
réseau, donc pas d’interface eth0 (à la place vous avez ppp0, configuré
ailleurs), mais il faut toujours une interface de loopback. Bref utilisez ce
fichier :
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
Connexion et automatisation
Voilà, tout est prêt. Commencez par télécharger le microcode sur le modem :
modem_run -f /usr/local/share/speedtouch/mgmt.o
La lampe de gauche est verte et fixe ; celle de droite est verte et clignote.
Ne vous inquiétez pas si un message du genre usb_control/bulk_msg: timeout /
usbdevfs: USBDEVFS_BULK failed etc.
apparaît. Au bout d’une trentaine de
secondes la lampe de droite doit être verte et fixe également. Sinon vérifiez
que votre ligne téléphonique fonctionne (en décrochant le téléphone) puis que
votre ligne ADSL a bien été ouverte (en appelant FT).
Ensuite, connectez-vous :
pppd call adsl
Pour voir ce qui se passe, n’hésitez pas à surveiller votre syslog (tail -f
/var/log/syslog
) ; si vous recevez des paquets (ça doit prendre 2 secondes)
c’est bon, vous pouvez surfer (ifconfig ppp0
vous fournit des infos sur la
connexion). Sinon le syslog doit justement vous indiquer où est le problème.
Il reste simplement à automatiser le démarrage au boot en rajoutant dans
/etc/network/interfaces
(on peut ajuster le sleep 20
, le tout étant
qu’après un ifdown ppp0; ifup ppp0
, la connexion soit encore établie) :
# Connexion ADSL
auto ppp0
iface ppp0 inet ppp
provider adsl
pre-up ps -e | grep -q modem_run || modem_run -i 3 -n 3 -f /usr/local/share/speedtouch/mgmt.o
post-down sleep 20; ifup ppp0 &
Cet article publié en août 2002 a été mis à jour.