Modem USB

Un article de Projet de documentation fug-fr .

Jump to: navigation, search

Se connecter via un modem USB n'est pas toujours très facile sous FreeBSD. Une même méthode ne donne pas toujours les mêmes résultats selon les versions des drivers utilisés et / ou les versions de FreeBSD. Cette page propose une méthode pour le modem SAGEM Fast 800 ainsi que pour le modem ALCATEL Speedtouch USB 300 (raie verte) testés sous FreeBSD 6.X.

Sommaire

[modifier] SAGEM Fast 800 E3 WA FR

[modifier] Configuration du noyau

Le driver uEagle de ce modem utilise le protocole NATM qui n'est pas inclus par défaut dans le noyau GENERIC. Afin de l'y inclure, vous devez donc éditer le fichier de configuration de votre noyau pour y ajouter les lignes suivantes :

options    ATM_CORE  # ATM core protocol
options    ATM_UNI   # UNI signalling manager
options    ATM_IP    # IPoA
options    NATM      # native ATM sockets used by PPPoA
device     atm

Ceci fait vous devez bien sûr recompiler et installer votre nouveau noyau puis redémarrer votre système sur ce noyau.

[modifier] Driver et patch

Commencez par télécharger le driver uEagle 1.5 ainsi que le patch qui est nécessaire pour son utilisation sous FreeBSD 6.X:

 driver ueagle-1.5.tgz:    [[1]]
 patch eagleIII.diff.bz2:  [[2]]

Admettons que vous ayez placé ces fichiers dans un répertoire tmp de votre répertoire personnel (~/tmp), rendez-vous maintenant dans ce répertoire pour décompresser ces fichiers et désarchiver le driver:

 # cd ~/tmp
 # tar xzvf ueagle-1.5.tgz
 # bunzip2 eagleIII.diff.bz2

Toujours dans ce répertoire ~/tmp, vous pouvez maintenant patcher le driver:

 # patch -u -p0 < eagleIII.diff

Ceci fait, vous pouvez vous rendre dans le répertoire ueagle afin de compiler puis d'installer le driver. Notez qu'ici la commande sudo est utilisée pour les opérations qui doivent nécessairement être faites en tant qu'administrateur (root). Si vous ne possédez pas cette commande sudo, faites donc ces opérations directement en tant que root.

 # cd ueagle
 # make && sudo make install

Si tout s'est bien passé, vous pouvez normalement maintenant charger votre nouveau module ueagle.ko puis vérifier sa présence en mémoire:

 # sudo kldload ueagle.ko
 # sudo kldstat

[modifier] Configuration

Afin que votre modem puisse fonctionner, il vous faut aussi éditer en tant que root votre fichier /etc/ppp/ppp.conf. Voici ce que doit contenir ce fichier:

 default:
   set log Phase Chat LCP IPCP CCP tun command
   add! default HISADDR  # Add a (sticky) default route
   set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
   set login
 adsl:
   set log local CCP Command DNS IPCP LCP TCP/IP Warning
   set device PPPoA:ueagle0:8.35  
   # The VPI and VCI values provided by your ISP (in this example VPI=8 and VCI=35). 
   set authname "votre login FAI" 
   set authkey "votre mot de passe FAI"
   enable lqr
   enable dns
   disable ipv6cp
   set reconnect 10 100

Notez qu'ici VPI.VCI est égal à 8.35 ce qui convient par exemple pour la France. Bien sûr vous devez remplacer "votre login FAI" et "votre mot de passe FAI" par... ce que vous savez!

[modifier] Synchronisation

Si vous êtes en mode graphique, il est recommandé d'ouvrir une xconsole afin de pouvoir lire les message de débugage envoyés au système, ou de basculer sur les consoles texte afin de consulter ceux-ci.

Pour synchroniser votre modem vous devez simplement lancer le script adsl-up (en root ou avec sudo):

 # sudo /usr/local/sbin/adsl-up

S'il s'affiche alors un message similaire à celui-ci eagleflash: Sorry, no pre-firmware modem found! débranchez puis rebranchez votre modem du port USB et relancez le script adsl-up comme précédemment. Après un court délai, vous devez voir s'afficher des messages proches de ceux-ci dans la console:

 ueagle0: vendor 0x1110 ADSL-USB Modem, rev 1.00/50.0b, addr 2
 ueagle0: End System Identifier: xx:xx:xx:xx:xx:xx

Le script adsl-up attend maintenant que le modem se synchronise. Cela peut demander un peu de temps et les diodes de votre modem doivent commencer à clignoter. Une fois la synchronisation terminée, le script adsl-up va afficher les propriétés de votre connexion sur la sortie standard, par exemple:

 DSL Delineation    : GOOD
 DSL DownRate       : 6368Kb/s
 DSL UpRate         : 640Kb/s

Vérifiez que les valeurs Downrate et Uprate sont correctes.

[modifier] Connexion et déconnexion

Maintenant que votre modem est synchronisé, vous pouvez utiliser la commande suivante (avec sudo ou en root) afin d'établir la connexion PPP avec votre fournisseur d'accès:

 # sudo ppp -dedicated adsl

Si vous rencontrez des problèmes pour établir cette connexion, pensez à consulter les messages de ppp du fichier /var/log/ppp.log. Pour vous déconnecter vous pouvez simplement tuer le processus ppp en entrant:

 # sudo killall ppp

[modifier] ALCATEL Speedtouch USB 300

En théorie l'utilisation de ce modem, la raie verte, ne devrait pas poser de problème sous FreeBSD puisqu'il existe le port net/pppoa dont voici la description:

% cat /usr/ports/net/pppoa/pkg-descr
Unofficial support for Alcatel's Speedtouch USB devices. This driver is licensed under the GPL
except for one restricted file: http://www.speedtouchdsl.com/disclaimer_lx.htm
WWW: http://speedtouch.sourceforge.net/

Mais en pratique ce n'est malheureusement pas toujours le cas selon les versions de FreeBSD et du driver utilisées . Voici donc une méthode (qui admettrait diverses variantes) qui pourra vous dépanner si vous êtes confrontés à des difficultés. Cette méthode devrait aussi bien fonctionner avec le Speedtouch USB 330.

[modifier] Driver et firmware

Dans un répertoire créé pour l'occasion, commencez par récupérer une ancienne version du driver, speedtouch-1.1b.tar.gz. Vous la trouverez à partir de cette page http://www.xsproject.org/speedtouch/ ou plus simplement:

Driver 1.1b: http://www.xsproject.org/speedtouch/files/speedtouch-1.1b.tar.gz

Téléchargez aussi maintenant le firmware SpeedTouch330_firmware_3012.zip grâce au lien download Firmware situé au bas de cette page:

Firmware: http://www.speedtouch.com/driver_upgrade_lx_3.0.1.2.htm

Ceci fait désarchivez, compilez et installez les drivers (en root, au moins pour ce qui est de l'installation):

# tar -zxf speedtouch-1.1b.tar.gz
# cd speedtouch-1.1b
# ./configure && make && make install

Les fichiers modem_run ; pppoa2 ; pppoa3 devraient maintenant se trouver en /usr/local/sbin, il ne nous reste plus qu'à compléter avec le firmware:

# unzip SpeedTouch330_firmware_3012.zip
# cp KQD6_3.012 /usr/local/libdata/

Si vous utilisez un modem Speedtouch USB 330, remplacez le firmware KQD6_3.012 par le ZZZL_3.012.

[modifier] Configuration

Celle-ci se fait par le fichier /etc/ppp/ppp.conf ; voici ce qu'il doit contenir:

default:
  ident user-ppp VERSION (built COMPILATIONDATE)
  set log Phase Chat IPCP CCP tun command
adsl:
  set authname "votre login FAI" 
  set authkey "votre mot de passe FAI" 
  set device !"pppoa2 -vpi 8 -vci 35 -v 1 -d /dev/ugen0"
  accept chap
  set speed sync
  set timeout 0
  enable lqr
  set lqrperiod 5
  set redial 15 10000
  set dial ""
  set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
  add default HISADDR
  enable dns

Notez qu'ici VPI est égal à 8 et VCI à 35 ce qui convient par exemple pour la France. Bien sûr vous devez remplacer "votre login FAI" et "votre mot de passe FAI" par... ce que vous savez!

[modifier] Synchronisation

Pour synchroniser votre modem, utilisez la commande:

# modem_run -v 1 -m -d /dev/ugen0 -f /usr/local/libdata/KQD6_3.012

Encore une fois, remplacez KQD6_3.012 par ZZZL_3.012 si vous avez un modem 330. Les diodes du modem devraient clignoter ; patientez un peu, un message proche de celui-ci devrait s'afficher:

Gotcha, I found your ADSL ALCATEL SpeedTouch USB modem!
BLOCK1 :    991 bytes   uploaded : OK
BLOCK2 :    511 bytes downloaded : OK
BLOCK3 : 762650 bytes   uploaded : OK
BLOCK4 :    511 bytes downloaded : OK
Reference     : 3EC 18607EAAB 01(see under your modem box)
ADSL line is blocked?
ADSL line is synchronising
Received interrupts, len = 6
ADSL line is up, downstream at 1216 kbit/s, upstream at 160 kbit/s
ADSL link goes UP

Ici vérifiez notamment que les valeurs downstream et upstream correspondent bien à votre connexion.

[modifier] Connexion et déconnexion

L'heure de vérité approche ; il ne vous reste plus qu'à vous connecter avec:

# ppp -ddial adsl

Un message similaire à celui-ci devrait s'afficher:

Working in ddial mode
Using interface: tun0

Cela fonctionne ? Pour vous déconnecter, utilisez la commande:

# killall ppp

En cas de problèmes, tuez les processus, débranchez puis rebranchez le modem et recommencez...

[modifier] Note OpenBSD

Sous OpenBSD vous pouvez procéder de la même façon que sous FreeBSD, notez cependant les deux points suivants:
1. Vous pouvez utiliser une version plus récente (ou moins ancienne devrait-on dire) des drivers comme par exemple: speedtouch-1.3.1.tar.gz
2. Si vous utilisez make la compilation se terminera ("échouera") par des messages d'erreurs mais les deux binaires modem_run et pppoa2 seront tout de même correctement compilés et donc utilisables. Si vous le pouvez utilisez donc de préférence gmake avec lequel la compilation devrait se terminer sans message d'erreur.