Bewan USB st

De Lea Linux
Révision datée du 30 avril 2012 à 19:28 par Jiel (discussion | contributions) (balises code)
Aller à la navigation Aller à la recherche


Installer un Modem Bewan USB ST

Installer un Modem Bewan USB ST
par Cyaj
Cette page est consacrée à la configuration du Modem Bewan USB ST à partir d'une mandrake 9.2.
Pour l'instant seul le kernel 2.4.22 sera traité.

Avertissement

La rédaction de ce document a été commencé le 02 avril 2004 et par conséquent ne constitue pas une version définitive. A cause de l'évolution des mises à jour des drivers de la part de Bewan ainsi que des évolution du kernel.
Nous ne traiterons ici que la partie relative au kernel 2.4.22.
Si quelqu'un veut bien traiter le kernel 2.6, libre à lui ;-).

Petit rappel : avant novembre 2003 Télé2 distribuait un modem bleu (genre grenouille ou vaisseau spatial) et à partir de novembre 2003 Télé2 a distribué un modem gris et plat (identifiant 07fa:1012, faites un lsusb pour lister vos périphériques usb) qui n'était pas supporté par le drivers 0.7.6.
A partir de la version 0.8.1 il a été supporté mais cela ne marchait pas top, beaucoup de problèmes lors du chargement du module et avec les abonnements à 128k, tout ceci est rentré dans l'ordre avec la sortie de la version 0.8.7 ;-).

Préalable à l'installation

Noyau

Tout d'abord vérifiez que vous avez les sources de votre Kernel installées, pour ceci faites un : ls /usr/src. Vous devriez voir un répertoire du type linux-2.4.22-28mdk/ (suivant la version de votre noyau). Si ce n'est pas le cas, il faut que vous installiez les sources de votre noyau.

Les sources du noyau de la mandrake 9.2 ne sont pas présentes sur les CD, vous devrez donc les récupérer depuis internet. Vous pouvez utiliser http://rpm.pbone.net/ avec dans le champ de recherche "kernel-source" ou regarder sur le site ftp club-internet : ftp://ftp.club-internet.fr/pub/unix/linux/distributions/Mandrake/9.2/i586/Mandrake/RPMS". Pour connaître le numéro de version de votre noyau tapez uname -r dans une console.

Packages

Ensuite il vous faut avoir les packages suivants installés :

  • glibc-devel-2.3.2-14mdk fichiers d'entêtes pour developper des programmes en C
  • glibc-static-devel-2.3.2-14mdk
  • liblinux-atm1-2.4.1-3mdk gestion du support ATM (Asynchronous Transfer Mode)
  • liblinux-atm1-devel-2.4.1-3mdk
  • ppp-2.4.1-12mdk Point to Point Protocol. Implantation d'IP pour le transfert de données par modem
  • ppp-pppoatm-2.4.1-12mdk
Ces versions sont données au 02/04/2004.

Et enfin téléchargez le driver Bewan version 0.8.7 (au 02/04/2004) à l'adresse suivante : http://www.bewan.com/bewan/users/downloads/index.php, à la rubrique "Drivers for the BeWAN ADSL PCI & USB ST" cliquez sur le numéro de la version anglaise et téléchargez le fichier "bapst-0.8.7.tgz". C'est le site international de bewan et vous n'avez pas besoin de vous identifier. Si vous téléchargez depuis le site français vous aurez droit à une page d'identification et le fichier que vous recupérerez aura ce titre A1012-A1006-A904-A888-0.8.7.tgz mais ce sont les mêmes versions.

Installation

Le fichier bapst-0.8.7.tgz ou A1012-A1006-A904-A888-0.8.7.tgz que vous venez de récupérer contient en fait tous les fichiers sources pour les modems PCI et USB de la gamme ST de Bewan. Bewan, pour des raisons pratiques a tout regroupé dans une seule archive. De ce fait, quand vous téléchargez du site officiel les drivers pour la carte pci, vous obtenez aussi ceux pour le modem usb et inversement.

Détarer les fichiers sources

Pour détarer le driver unicorn vous allez déjà créer un répertoire où vous placerez l'archive à décompresser : par exemple dans /home/bewan.

[cyaj@localhost cyaj]$ mkdir bewan
[cyaj@localhost cyaj]$ mv /chemin/du/telechargement/bapst-0.8.7.tgz /home/bewan/

Décompression de l'archive

[cyaj@localhost cyaj]$ cd /home/bewan/
[cyaj@localhost bewan]$ tar xvzf bapst-0.8.7.tgz

Vous pouvez vérifier avec la commande ls la création du répertoire unicorn.

Les différents répertoires

Dans le répertoire unicorn, figurent plusieurs sous répertoires. Voici ceux qui nous interressent :

  • libm pour la gestion de l'atm.
  • tools outils pour avoir des infos sur le modem en ligne de commande.
  • unicorntest permet d'interroger l'état du modem et le modifier en console.
  • unicorn_usb la partie qui permet de piloter le modem.
  • scripts pour utiliser les scripts de connection à internet.
  • adsl_status permet d'avoir une interface graphique sur l'état du modem (transposition de celle existant sous windows).

Les autres répertoires ne nous concernent pas directement, unicorn_atm et unicorn_eth" contiennent des fichiers sources pour la gestion de l'interface présentée au noyau, à savoir atm ou ethernet. Ces fichiers sont directements liés par des commandes des Makefiles des différents répertoires (pci et usb).

"Ordre" de compilation

Il y a plusieurs manières de réaliser la compilation :

  1. Soit vous utilisez le Makefile présent au niveau du répertoire unicorn, auquel cas vous vous retrouvez avec tous les drivers PCI et USB installés puis il faut faire le tri.
  2. Soit vous ne compilez que ce qui vous interresse, à savoir pour nous la gestion de l'usb par l'interface atm.

Méthode 1 : Compilation Globale

  • unicorn_pci_atm.o qui est l'interface atm pour la carte PCI.
  • unicorn_pci_eth.o qui est l'interface ethernet pour la carte PCI.
  • unicorn_usb_atm.o qui est l'interface atm pour le modem USB.
  • unicorn_usb_eth.o qui est l'interface ethernet pour le modem USB.

Ces drivers sont installés dans le répertoire /lib/modules/"version_de_votre_noyau"/extra/ il vous suffira de supprimer les deux versions PCI et celle de l'usb ethernet.

Je vous conseille d'indiquer le chemin des sources de votre noyau dans le Makefile (cf § Méthode 2 / unicorn_usb).

Méthode 2 : Le Choix

Nous allons utiliser la méthode 2.

Cela permet d'appréhender un peu plus ce qui se passe. Les deux répertoires "utiles" afin de faire fonctionner le modem sont libm et unicorn_usb, les autres, cités au § Les différents répertoires ne contiennent que des utilitaires en ligne de commande ou graphique.

Tout d'abord plaçons nous en root avec la commande su - :

[cyaj@localhost unicorn]$ su -
Password:
Ici c'est normal que rien ne s'affiche lorsque vous tapez !
[root@localhost unicorn]#

Votre prompt s'est normalement changé en "#"

libm

Nous allons d'abord compiler la libm. Placez vous dans le répertoire libm par :

[root@localhost unicorn]# cd libm

Et compilez par un simple :

[root@localhost libm]# make

Cela génère juste le fichier libm.a dans ce répertoire. Il sera utilisé plus tard par les Makefiles des répertoires unicorn_usb et unicorn_pci.

unicorn_usb/

Ensuite compilez le driver à proprement parler, pour cela allez dans le répertoire unicorn_usb avec la commande :

[root@localhost libm]# cd ../unicorn_usb

Vous pouvez utiliser la complétion automatique grâce à la touche de tabulation [tab] c'est plus rapide ;-).

Nous allons tout d'abord éditer le Makefile afin de renseigner correctement où se situent les sources du kernel (cf § Préalable à l'installation / Noyau). Pour ce faire utilisez vi (ou l'éditeur que vous maîtrisez).

[root@localhost unicorn_usb]# vi Makefile

Une fois dans vi tapez sur la touche [i] afin de pouvoir effectuer des modifications et sur [echap] pour revenir au mode commande.

NDM: Pour plus d'infos sur les commandes de l'éditeur vi, voir aussi cet article.

Il faut rechercher la ligne KERNEL_SOURCES=/usr/src/linux (elle se trouve au début). Normalement /usr/src/linux est un lien symbolique qui pointe vers le répertoire contenant les sources de votre noyau, mais pour plus de précaution, nous allons modifier correctement cette ligne afin d'éviter tout problème.

Placez vous sur la ligne en question et en mode commande (appuyez sur [echap]) et tapez :

[yy] cela copie la ligne du curseur.

Ensuite tapez :

[p] cela colle la ligne en dessous du curseur

Passez en mode "insertion" [i] commentez une des deux ligne en plaçant un # devant, puis mettez le chemin correct des sources de votre noyau. Pour moi cela donne ceci :

#
## Makefile for UNICORN USB ADSL Modem
#

src ?= .
obj ?= .
ifndef KERNEL_SOURCES
#KERNEL_SOURCES=/usr/src/linux     <------ ligne originale
KERNEL_SOURCES=/usr/src/linux-2.4.22-28mdk/ Â Â <------ les sources pour mon noyau
endif
ifndef HPATH
HPATH=$(KERNEL_SOURCES)/include
endif
...

Ensuite passez en mode commande ([echap]) et tapez [:wq]. : indique le début d'une commande ; w signifie écrire et q permet de quitter l'éditeur vi.

Si vous avez regardé le Makefile en entier vous apercevez vers la fin du fichier les règles de construction du driver. Celles qui nous interressent sont unicorn_usb_atm.o" et install_atm.

Toute la partie médiane du Makefile constitue des tests et des options à passer pour le compilateur en fonction de la version de votre noyau. Cette partie a été améliorée grâce à un internaute qui avait des problèmes de compilation avec un noyau 2.6 et qui a transmis ses modifications au développeur... Vive la communauté ;-)

Donc pour compiler uniquement la partie usb avec interface atm pour le driver il faut faire :

[root@localhost unicorn_usb]# make unicorn_usb_atm.o
[root@localhost unicorn_usb]# make install_atm

Vous devez avoir le module unicorn_usb_atm.o qui a été copié dans le répertoire /lib/modules/n°_version_de_votre_kernel/extra/.

On peut exécuter la commande depmod -ae afin de recharger tous les modules (gestion des dependances entre les modules du noyau) et vérifier que le module unicorn_usb_atm est chargé avec la commande lsmod.

[cyaj@localhost cyaj]$ /sbin/lsmod
Module         Size  Used by  Tainted: P
pppoatm        4296  1 Â
parport_pc      25544  1  (autoclean)
[...]
ppp_async       9312  0  (unused)
ppp_generic      24292  3  [pppoatm ppp_async]
slhc          6564  0  [ppp_generic]
[...]
unicorn_usb_atm   789728  1
atm          36800  0  [pppoatm unicorn_usb_atm]
ehci-hcd       19212  0  (unused)
usb-uhci       25136  0  (unused)
usbcore        74988  1  [usbmouse hid usb-storage scanner unicorn_usb_atm printer ehci-hcd usb-uhci]

Si toutefois le module n'est pas chargé vous pouvez utiliser la commande :modprobe /lib/modules/n°_version_de_votre_kernel/extra/unicorn_usb_atm, et vous devriez avoir ce genre de messages:

[root@localhost unicorn_usb]# modprobe /lib/modules/`uname -r`/extra/unicorn_usb_atm.o DebugLevel=1
Warning: loading /lib/modules/2.4.22-28mdk/extra/unicorn_usb_atm.o will taint the kernel: non-GPL license - Proprietary
See http://www.tux.org/lkml/#export-tainted for information about tainted modules
Module unicorn_usb_atm loaded, with warnings

Ne prenez pas peur, ce message est normal car dans le source du driver le développeur a indiqué que ce module est de type propriétaire, et le kernel vous le signale...

Nous n'avons plus qu'à modifier les fichiers de configuration.

RAPPEL : La compilation des utilitaires présent dans les répertoires tools/, unicorntest/ et adsl_status/ est optionnelle
tools/

Allez ensuite dans le répertoire tools/ pour compiler les outils permettant d'avoir des infos en ligne de commande. Vous n'êtes pas obligé de compiler ces utilitaires. Déplaçons nous dans le répertoire tools/ (nous sommes dans le répertoire unicorn_usb/) :

[root@localhost unicorn_usb]# cd ../tools
et comme précedemment nous faisons make puis make install
[root@localhost tools]# make
[root@localhost tools]# make install

Cela nous a installé, dans /usr/local/bin, deux exécutables :

  • unicorn_status qui permet de voir l'état du modem et sa configuration ainsi que des infos sur la ligne téléphonique.
  • oam_ping permet de tester la connection avec des valeurs VCI et VPI.
[cyaj@localhost cyaj]$ unicorn_status
Modem State         : SHOWTIME_L0
Remote Report        : Showtime
Last Failure        :
Time Connected       : 08:16:20
Modulation         : G.dmt
Rate Us/Ds (Kbps) Â Â Â Â  : 96 160
Cap. Occupation Us/Ds (%) : 18 4
Noise Margin Us/Ds (dB) Â  : 9 43
Attenuation Us/Ds (dB)   : 11 17
Output Power Us/Ds (dBm)  : 12 19
FEC Errors Us/Ds      : 1 0
CRC Errors Us/Ds      : 1 0
HEC Errors Us/Ds      : 0 0
Driver Version       : 0.0.0
Firmware Version      : USB-AMW-1-1.8-0.1.0.5

[cyaj@localhost cyaj]$ oam_ping
usage: oam_ping <vpi> <vci>
unicorntest/

Ce répertoire contient un utilitaire en ligne de commande permettant de dialoguer avec le modem et de le tester en utilisant les commandes ci-dessous :

[cyril@localhost libm]$ unicorntest
unicorntest, v 0.0.0, 15:14:14 Mar 22 2004

HELP -> Help
----------------------------------------------------------
ANSI       : Initialize and Start in Operation Mode: ANSI
MULTI Â Â Â Â Â  : Initialize and Start in Operation Mode: MULTI
GLITE Â Â Â Â Â  : Initialize and Start in Operation Mode: GLITE
GDMT       : Initialize and Start in Operation Mode: GDMT
UP        : Activate the Line
DOWN       : Deactivate the Line
CONFIG      : Get Near End Modem Configuration
VENDOR      : Get Vendor and Version Info
OPER       : Get Line Operational Data
FAULT Â Â Â Â Â  : Get Fault Counters
PERF       : Get Performance Counters
RATE       : Get Actual Bitrate
MODE       : Get Modem State
TEQ Â Â Â Â Â Â  : Get TEQ values
VER Â Â Â Â Â Â  : Get Software Version
GASP       : Send DyingGasp Command
UNLOAD      : Unload Operation Mode
CONSTELLATION # : Show Constellation Data for # carrier
PING <VPI.VCI>  : Send OAM Loopback Cell
OAM Â Â Â Â Â Â  : Get OAM Statistics
DEBUG Â Â Â Â Â  : Set Debug Level
MSW Â Â Â Â Â Â  : Set Msw Debug Level
----------------------------------------------------------
X Â Â  : Exit Console Application
----------------------------------------------------------


> Current Modem State (9): SHOWTIME_L0

Pour la compilation, un simple

make

puis

make install

suffisent.

adsl_status

La compilation de l'utilitaire présent dans ce répertoire permet d'avoir la même interface graphique de dialogue que sous Windows.

Pour ce faire il faut aller dans le répertoire adsl_status/ et taper la commande suivante :

[root@localhost adsl_status]# ./configure

Cette commande va vérifier que certains programmes et librairies sont présents sur votre système, puis elle va configurer le Makefile. Si vous obtenez des erreurs, regardez les lignes présentes sur votre console et installez les packages ou programmes adéquats (utilisez la fonction recherche de rpmdrake ... pour ceux qui utilisent une Mandriva). La commande configure ayant terminé correctement son travail, il ne vous reste plus qu'à faire make et make install en root.

[root@localhost adsl_status]# make
[root@localhost adsl_status]# make install

L'exécutable bewan_adsl_status devrait se trouver dans le répertoire /usr/local/bin/

Pour le lancer, tapez simplement dans une console bewan_adsl_status, vous obtiendrez une boite de dialogue avec 7 onglets :

  • Etat Permet de vérifier le status de votre liaison ADSL (état modem, uptime...).
  • Ligne Propose un état graphique de votre ligne ADSL (modulation, rapport signal/bruit...).
  • Erreurs Liste les erreurs pouvant survenir sur la ligne.
  • Défauts Liste toutes les pertes pouvant perturber la liaison.
  • Test Permet de réaliser des test de bouclage.
  • Config Permet de voir la configuration de base de votre connection au réseau.
  • Info Permet de voir la version du pilote installé plus diverses infos.

Mise à jour des fichiers de configuration

Pour PPPD

Nous allons configurer les fichiers pap-secrets, chap-secrets et options présents dans le répertoire /etc/ppp/.

les fichiers pap-secrets et chap-secrets contiennent vos identifiants de connection. La différence entre les deux est que chap-secrets supporte l'authentification sécurisée (cryptée ou non) de votre fournisseur d'accès.

/etc/ppp/pap-secrets
# Secrets for authentication using PAP
# client server secret IP addresses

'euXXXXXX@tele2.fr' * 'xxxxxxxx' *

Pour /etc/ppp/chap-secrets c'est la même chose

Le fichier /etc/ppp/options contient des informations pour établir votre connection

/etc/ppp/options
lock
ipparam ppp0
noipdefault
noauth
default-asyncmap
defaultroute
hide-password
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
lcp-echo-interval 20
lcp-echo-failure 3
mtu 1500
mru 1500
sync
persist
plugin pppoatm.so
user euXXXXXX@tele2.fr   <---mettre votre identifiant de connection
usepeerdns

Pour resolv.conf

Vous pouvez rentrer les DNS (Domain Name Server) de votre fournisseur d'accès. Normalement l'option usepeerdns du fichier /etc/ppp/options prend de façon dynamique les DNS de votre FAI lors de l'établissement de votre connection. Mais on peut toutefois les rentrer par défaut dans le fichier /etc/resolv.conf (en root).

/etc/resolv.conf
search tele2.fr
nameserver 130.244.127.161
nameserver 130.244.127.169

Pour Modules

Vous pouvez, si vous le souhaitez, charger directement le module unicorn_usb_atm lors du démarrage du système. Il faut modifier les fichiers /etc/modules et /etc/modules.conf.

Il suffit de rajouter la ligne suivante dans /etc/modules :

unicorn_usb_atm ActivationMode=4 DebugLevel=1

Et celle-ci dans /etc/modules.conf :

options unicorn_usb_atm ActivationMode=4 DebugLevel=1

ActivationMode=4 permet de sélectionner le mode de fonctionnement G.dmt

DebugLevel=1 permet d'envoyer les messages et les erreurs de fonctionnement du modem dans les logs système (fichier /var/log/messages).

Vous n'êtes pas obligé de mettre DebugLevel mais cela sert à voir où le driver plante grâce aux fichiers de logs, et par la suite d'envoyer un rapport d'erreur au développeur.

Scripts de connection

Par défaut, bewan donne des scripts de connection dans le répertoire scripts/. Il y en a trois :

  • unicorn-ipoatm pour une connection par interface atm avec une ip fixe ? à vérifier.
  • unicorn-pppoatm pour une connection à l'aide de ppp avec interface atm.
  • unicorn-rp-pppoe pour une connection à l'aide de ppp avec interface éthernet ? à vérifier.

Nous allons utiliser le script unicorn-pppoatm. Il faut déjà le copier dans /usr/bin/ avec la commande :

[root@localhost scripts]# cp unicorn-pppoatm /usr/bin/

Il ne nous reste plus qu'à modifier le script avec les options qui nous arrangent. Pour ce faire, on édite le script avec son éditeur préféré (comme tout à l'heure) :

[root@localhost bin]# vi unicorn-pppoatm

Et on peut alors voir :

#!/bin/sh

# Source function library.
. /etc/rc.d/init.d/functions

# set to correct product (USB or PCI)
#UNICORN="unicorn_pci_atm" Â Â Â <---commenter la ligne PCI car nous avons un modem USB
UNICORN="unicorn_usb_atm"

# default VPI, VCI and encapsulation
VPI=8
VCI=35 Â Â Â <------Vérifier que ce sont les valeurs de votre FAI normalement 8,35 pour la France

# ANSI=1,G.lite=2,MULTI=3,G.dmt=4,
MODULATION=4 Â Â Â <------G.dmt pour Télé2 Internet France

# pppd version 2.4.0b2 patched    <------ Commenter la version de pppd que vous n'avez pas intallé
#PPPD="/usr/src/ppp-2.4.0b2/pppd/pppd"
#PLUGIN="/usr/lib/pppd/plugins/pppoatm.so"

# pppd version 2.4.1
PPPD="/usr/sbin/pppd"
PLUGIN="/usr/lib/pppd/2.4.1/pppoatm.so"
....

La Connection

Il suffit de lancer la commande suivante en root :

[root@localhost cyaj]# unicorn-pppoatm start

Pour arrêter la connection :

[root@localhost cyaj]# unicorn-pppoatm stop

Il faut obligatoirement être en root, car le script qui lance pppd nécessite les droits de root. Vous pouvez utiliser la commande sudo en modifiant le fichier /etc/sudoers. Pour cela je vous renvoie à la page écrite par Fred sur Léa.

Si vous vous êtes débrouillé correctement vous n'aurez qu'à taper la commande :

sudo unicorn-pppoatm start pour lancer la connection et stop pour l'arrêter.

Vérification de la connection

Il suffit de taper la commande /usr/sbin/ifconfig, vous devriez obtenir quelque chose de ce genre :

lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:368 errors:0 dropped:0 overruns:0 frame:0
TX packets:368 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:23736 (23.1 Kb) TX bytes:23736 (23.1 Kb)

ppp0 Lien encap:Protocole Point-à-Point
inet adr:80.170.29.78 P-t-P:80.170.29.1 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1452 Metric:1
RX packets:11683 errors:0 dropped:0 overruns:0 frame:0
TX packets:10641 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:3
RX bytes:4741764 (4.5 Mb) TX bytes:955002 (932.6 Kb)

Si vous obtenez l'interface ppp0 vous êtes connecté à internet ; si ce n'est pas le cas, relancez le script de connection avec un restart (ou stop puis start).

Remarque : attendez que votre modem se soit correctement synchronisé avant de lancer la commande ifconfig (deux à trois secondes après le dernier clignotement de la led "LINK").

Si vous êtes connecté et que malgrès tout, votre navigateur n'affiche pas la page demandée, je vous conseille de fermer votre navigateur et de relancer votre connection.

Une fois votre driver installé, il se peut que vous obteniez des erreurs lors du démarrage de votre machine, voir un blocage pur et simple de cette dernière si le modem est raccordé à votre PC.
Pour éviter ce genre de désagrément, je vous conseille de déconnecter le cable usb de votre modem pendant le boot de votre machine, et une fois logué, vous pouvez rebrancher.
Je n'explique pas le phénomène mais il est tout de même présent. J'ai signalé cette "erreur" au developpeur mais pas de réponse (il doit avoir pas mal de travail pour la compatibilité avec le noyau 2.6).

Remerciements

Christophe Mailhebuau rédacteur du tuto paru dans Linux Pratique N°21 de Janvier-Février 2004 son site :
http://www.justlinux.org/
Patrice Mandin qui est à l'origine de 2 journaux sur linuxfr.org pages:
http://linuxfr.org/~pmandin/9082.html
http://linuxfr.org/~pmandin/7750.html
Les pages d'aide suivantes :
http://home.tele2.fr/slo/
http://www.da-silva.nom.fr/linux/adsl/pppoatm/
http://arsunik.free.fr/bewan/
Google l'ami de tous les internautes et Usenet
Et surtout ma femme pour sa relecture et ses modifications ;-).




@ 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.

Copyright

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/