:: Apinc :: Archilinux :: Fro4nix :: GeexdB :: Gnuworld-fr :: Knoppix-fr ::  Lea-linux :: Linucie ::  Octoz ::  Les pingunautes ::

Purée de Linux

Dernière mise à jour de la page le 01 décembre 2004.

Menu

Modem Bewan USB ST

Par minamata-ebdomino, le 30/11/2004

Tout d'abord des liens à suivre:

howto qui a servi de base à celui-ci.
Un howto chez trunstone pour la version pci
Le howto pour mdk 10.0
Pour mandrake 9.1
Pour la version pci
Page des drivers, choisissez la version anglaise.

Ce tutorial fonctionne sous knoppix 3.6, noyau 2.4.27, installé sur disque dur en mode Debian. Le modem est un Bewan USB ST, gris et plat (ID 07fa:1012, en tapant lsusb en console).

$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 004: ID 07fa:1012 Draytek

Décompression du driver

Dans la configuration précisée (knoppix 3.6, etc) aucun package supplémentaire n'est nécessaire.

On passe donc directement à la décompression de l'archive bast-0.8.7.

- ouvrir une console et décompresser le driver:

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.
$ mkdir bewan
$ mv /chemin/du/telechargement/bapst-0.8.7.tgz /home/bewan/

Décompression de l'archive

$ cd /home/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 :

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.
Voir le tuto de LEA pour la méthode 1. Nous traiterons ici de la méthode 2 : nous ne compilerons que ce qui nous interesse (l'USB).

Compilation du driver USB uniquement

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

su

puis

Password:
Ici c'est normal que rien ne s'affiche lorsque vous tapez ! Votre prompt s'est normalement changé en "#"

libm

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

 cd libm

Et compilez par un simple :

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.

Compilation du driver usb

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

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. Pour ce faire utilisez mcedit (ou l'éditeur que vous maîtrisez).

mcedit Makefile
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.

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.27 <------ les sources pour mon noyau
endif
ifndef HPATH
HPATH=$(KERNEL_SOURCES)/include
endif
...

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. Un des tests est destiné à déterminer votre noyau : 2.4 ou 2.6 ? Il semble que ce test ne fonctionnent pas, il est donc préférable de forcer soit même la valeur de PATCHLEVEL.

Pour cela :

export PATCHLEVEL=4

Nous sommes maintenant prêts à compiler le driver. Donc pour compiler uniquement la partie usb avec interface atm pour le driver il faut faire :

make unicorn_usb_atm.o
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/.

A ce stade, si vous redémarrez votre ordinateur, le module unicorn_usb_atm sera chargé par HOTPLUG : le modem tentera une synchronisation et plantera. Pour éviter ceal il faut empécher HOTPLUG de lancer le modules unicorn_usb_atm pendant le boot.

Modifier Hotplug

Pour ce faire, éditer le fichier :/etc/hotplug/blacklist pour y ajouter une ligne contenant le nom du driver.

Soit :
#
# Listing a module here prevents the hotplug scripts from loading it.
# Usually that'd be so that some other driver will bind it instead,
# no matter which driver happens to get probed first.  Sometimes user
# mode tools can also control driver binding.
#
# Syntax:  driver name alone (without any spaces) on a line. Other
# lines are ignored.
#

unicorn_usb_atm

... et la suite du fichier blaklist inchangée.

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
usepeerdns
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
# maxfail 0
persist
plugin /usr/lib/pppd/2.4.2/pppoatm.so  <--- vérifier le chemin
user euXXXXXX@tele2.fr     <---mettre votre identifiant de connection
 
Pour resolv.conf (partie optionnelle) 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).
search tele2.fr
nameserver 130.244.127.161
nameserver 130.244.127.169
Scripts de connection

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

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

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) :/para]

#!/bin/sh

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

# set to correct product (USB or PCI)
#UNICORN="unicorn_pci_atm"
UNICORN="unicorn_usb_atm"

# default VPI, VCI and encapsulation
VPI=8
VCI=35

# ANSI=1,G.lite=2,MULTI=3,G.dmt=4,
MODULATION=4

# pppd version 2.4.0b2 patched
#PPPD="/usr/src/ppp-2.4.0b2/pppd/pppd"
#PLUGIN="/usr/lib/pppd/plugins/pppoatm.so"

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

RETVAL=0

stop() {
    echo demande arret PPPD
    killall $PPPD >/dev/null 2>&1
    echo demande decharge module unicorn_usb_atm
    /sbin/modprobe -r $UNICORN >/dev/null 2>&1
}

start() {
    echo charge module pppoatm
    /sbin/modprobe pppoatm
    [ ! "$?" = 0 ] && return $?
    echo charge unicorn_usb_atm
    /sbin/modprobe $UNICORN ActivationMode=$MODULATION >/dev/null 2>&1
    [ ! "$?" = 0 ] && return $?
    echo debut pause
    sleep 15
    echo fin pause et lancement connexion
    $PPPD plugin $PLUGIN $VPI.$VCI
    [ ! "$?" = 0 ] && return $?
    return 0
}

echo -n "$1 $UNICORN $PROTOCOL $VPI.$VCI $ENCAPS"

case "$1" in
    stop)
    stop
    ;;
   
    start)
    start
    ;;   
   
    restart)
    stop
    start
    ;;
   
    *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
esac

RETVAL=$?
if [ $RETVAL = 0 ]; then
    echo Success
else
    echo Failure
fi
echo
exit $RETVAL

Etablir la Connection

Il suffit de lancer la commande suivante en root :

unicorn-pppoatm start

Pour arrêter la connection :

unicorn-pppoatm stop
Il faut obligatoirement être en root, car le script qui lance pppd nécessite les droits de root. mais il est possible de configurer sudo:
visudo -f /etc/sudoers
ajouter:
votreuser ALL=NOPPASWD: /usr/bin/unicorn-pppoatm
et pour lancer la connexion:
sudo unicorn-pppoatm start
Vérification de la connection

Il suffit de taper la commande en user:

ifconfig ou /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").

Autre configuration La démarche décrite içi fonctionne moins bien sous knoppix installée en mode débutant : le modem tente de se synchoniser au boot malgré la modification du fichier etc/hotplug/blacklist, et plante parfois. En noyau 2.6, on évite évidement de taper export PATCHLEVEL=4, mais même ainsi la compilation n'aboutie pas (multiple message d'erreur).

Commentaires

sync impossible

Message posté par ben le 2005-03-04 à 15:01:11

j'ai essayé de configurer le modem sur une kaella installée en dur en mode debian (linux 2.4.27), mais impossible d'avoir la sync, la led ne fait que clignoter (puis au bout d'un moment reste allumée puis reclignotte) et j'obtiens un msg d'erreur, lors du lancement du script (dans dmesg) disant qu'une ligne est non valide (ou quelque chose du genre) avec un (5) à la fin.
j'ne comprends pas pourquoi :/

Et pour le noyau 2.6 ?

Message posté par Nom le 2005-06-12 à 14:29:55

"on évite évidement de taper export PATCHLEVEL=4, mais même ainsi la compilation n'aboutie pas (multiple message d'erreur)."
Alors comment fait-on ? J'ai la dernière Ubuntu avec le noyau 2.6 et lors du make d'unicorn, j'ai plusieurs erreurs de compilation...
Que faire :(

2.6 et experience ubuntu

Message posté par Joss le 2005-06-28 à 12:12:41

Ca fait un petit moment que je n'ai plus testé, mais je crois bien que pour le noyau 2.6 ce n'est pas la peine de s'occuper du patchlevel, ne rien changer à ce niveau là.
Utilisez tout les tutos que vous trouvez, je n'ai réussi à compiler (sous ubuntu) qu'en faisant un mixte de chacun (puree-de-linux m'a bien aidé tout de même ;) ) et en ne compilant que la partie usb.
Une aide sous ubuntu sur 'forum.ubuntu-fr.org/viewtopic.php?id=1092', pas tout à fait 100% fonctionnelle mais ça aide bien (peut être seulement pour les petits nouveaux ?)
Particularité de plus, les `uname-r` ne ce sont pas remplacés chez moi par leur correspondance (peut être même tous les scripts batch), c'est peut etre normal (??), mais faites attention à ça, le bon déroulement de l'installation de votre modem bewan peut être perturbé par ce détail (je ne l'ai vu indiqué sur aucun howto).
En bref après quelques efforts il est possible de faire fonctionner son bewan, j'ai une synchronisation au bout de quelques secondes ; mais toujours pas de connexion :( quelque chose de manquant m'ai je n'ai rien de précis à donner (je suis sous win et j'ai la mémoire qui flanche).

Il existait un probleme de usb uhci et ohci, avec l'un fonctionnant et l'autre non. Je crois bien que le problème est terminé mais se renseigner tout de même, au cas où.

Bon courage et bonne chance à tous !! Je crois que l'on en a besoin avec cette bestiole grise.

Re: 2.6 et experience ubuntu

Message posté par Fred le 2005-06-29 à 11:03:45

Attention, pour le `uname-r` il faut écrire : `uname -r` avec un espace entre le uname et le -r. Sinon c'est sûr que cela ne fonctionnera pas ;)

En tout cas intéressant ton commentaire et merci pour le lien sur les forums d'ubuntu

quels drivers marchent ?

Message posté par rzr le 2005-09-02 à 00:13:26

J'essaye de repertorier tout les configurations pour qui ca marche (version driver, kernel, distro, fai, etc) : http://rzr.online.fr/q/unicorn

Pour les autres : http://rzr.online.fr/phpBB2/viewtopic.php?p=2

A bientot

Ajouter un commentaire

Titre :

Par :
Courriel* :
Site web :

Commentaire :

* Le courriel ne sera pas affiché !

Google

sur :
le Web
Purée de Linux

Ce site devrait être valide XHTML 1.0 | © Purée de Linux