Trucs:Livebox wifi (Inventel) et Mandriva LE2005

De Lea Linux
Aller à la navigation Aller à la recherche
Jice <jice chez lea-linux.org>

Faire fonctionner la Livebox wifi (dongle wifi USB Inventel) sous Mandriva LE2005 (anciennement Mandrake 10.2) est facile, à condition d'utiliser ndiswrapper. Note : ce truc est valable également pour Mandriva 2006.

<cadre type=note>Cette fiche s'applique à l'installation de la clef USB Wifi de marque Inventel livrée avec la livebox Inventel. Dans le cas d'une autre clef Wifi, commencez par vérifier que celle-ci ne dispose pas d'un driver natif Linux (i.e. votre distribution la reconnaît-elle automatiquement ?), et dans le cas contraire, adaptez l'article en fonction de votre driver Windows. Par exemple, pour la Livebox Sagem, le déroulement est le même, en utilisant le driver Windows du dongle USB Wifi livré avec la Livebox.</cadre>

Pré-requis

<cadre type=note>Ressource : http://www.funix.org/fr/linux/dongle.htm</cadre>

Tout d'abord installons le paquetage ndiswrapper : urpmi ndiswrapper

Vous devez aussi utiliser un noyau (kernel) non SMP. La copie d'écran ci-dessous ne doit pas contenir la chaîne "SMP". Par exemple :

[root@localhost ~]# uname -a Linux localhost 2.6.11-6mdk #1 Tue Mar 22 16:04:32 CET 2005 i686 AMD Athlon(tm) XP 2000+ unknown GNU/Linux

Téléchargez le driver pour le dongle UR054g (la référence du dongle est écrite dessus), puis décompressez-le dans un répertoire que vous aurez choisi, par exemple /home/wifi.
J'ai renommé le répertoire UR054g(R1) créé par l'archive en UR054g.

Installez le driver :

[root@localhost ~]# ndiswrapper -i /home/wifi/UR054g/Driver/PRISMA02.inf Installing prisma02

Vérifiez le résultat :

[root@localhost ~]# ndiswrapper -l Installed ndis drivers: prisma02 driver present, hardware present

Créez un alias pour votre interface wifi (normalement wlan0 ; c'est l'équivalent de eth0 pour une carte réseau filaire)

[root@localhost ~]# ndiswrapper -m Adding "alias wlan0 ndiswrapper" to /etc/modprobe.conf

Notez bien l'alias renvoyé par ndiswrapper, ici wlan0, c'est celui que nous allons utiliser par la suite.

Chargez le module ndiswrapper :

[root@localhost ~]# modprobe ndiswrapper

Configuration

Vérifions que l'interface wlan0 a bien été initialisée (votre affichage peut être différent suivant votre matériel) :

[root@localhost ~]# iwconfig wlan0

wlan0     IEEE 802.11g  ESSID:off/any
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:2 Mb/s   Tx-Power:32 dBm
          RTS thr:2432 B   Fragment thr:2432 B
          Encryption key:off
          Power Management:off
          Link Quality:100  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

Configurons maintenant le wifi entre le dongle et la livebox, en entrant l'ESSID (identifiant du réseau wifi, de la forme WANADOO-XXXX) et la clef WEP (clef de cryptage, sous la forme xxxx xxxx xxxx xxxx xxxx xxxx xx, suite de chiffres hexadécimaux) ; ces informations se trouvent par exemple sur la boîte du CD-ROM d'installation :

[root@localhost ~]# iwconfig wlan0 mode managed essid WANADOO-XXXX key xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx

Vérifions la prise en compte de cette commande :

[root@localhost ~]# iwconfig wlan0

wlan0     IEEE 802.11g  ESSID:"WANADOO-XXXX"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:0B:12:FF:69:44
          Bit Rate:24 Mb/s   Tx-Power:32 dBm
          RTS thr:2432 B   Fragment thr:2432 B
          Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx   Security mode:restricted
          Power Management:off
          Link Quality:100  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

Enfin, nous allons demander une adresse IP à la livebox, et vérifier le résultat :

[root@localhost ~]# dhcpcd wlan0

[root@localhost ~]# ifconfig wlan0

wlan0     Lien encap:Ethernet  HWaddr 00:0B:6B:6C:FE:E7
          inet adr:192.168.1.144  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::20b:6bff:fe6c:fee7/64 Scope:Lien
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10381 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9870 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:1728 (0 Mb)  TX bytes:12 (0 Mb)

Note : j'ai dû installer le paquetage dhcpcd

C'est fini ! Vous pouvez surfer !
Cependant tout sera à refaire au prochain redémarrage, sauf si vous lisez le paragraphe ci-dessous :-)

Script de démarrage

En tant que root, créez le fichier de configuration /etc/sysconfig/livebox contenant (remplacez les XXXX par votre vraie clef WEP !) :

#Périphérique

WLAN="wlan0"
#ESSID de la livebox
ESSID="WANADOO-XXXX"
#Clef WEP
WEP="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX"

Créez le script de démarrage /etc/init.d/livebox contenant :

#!/bin/sh

# (c) Lea-Linux, Jean-Christophe Cardot <jice(at)lea(dash)linux(dot)org>
#
# livebox       This shell script takes care of starting and stopping
#               your livebox's wifi dongle and configure it.
#
# chkconfig: 2345 12 88
# description: This startup script configures the Livebox's USB wifi dongle
if [ -f /etc/sysconfig/livebox ];then
    source /etc/sysconfig/livebox
fi
PIDFILE=/etc/dhcpc/dhcpcd-$WLAN.pid
. /etc/rc.d/init.d/functions
function get_ip() {
  ip_wlan=$(ifconfig $WLAN 2>&1 \
            | grep "inet adr:" \
	    | cut -d' ' -f 12 | cut -d':' -f 2)
  if [ "$ip_wlan" = "127.0.0.1" ]; then
    unset ip_wlan
  fi
}
function wifistart() {
  # test if already started
  unset ip_wlan
  get_ip
  if [ "x$ip_wlan" != "x" ]; then
    echo "Wifi already started!"
    exit 0
  fi
  # make sure dhcpcd is stopped
  if [ -s $PIDFILE ] \
    && ps aux | cut -b10-15 | grep -q `cat $PIDFILE`; then
    kill -SIGTERM `cat $PIDFILE` 2>&1 >/dev/null
  fi
  rm -rf $PIDFILE 2>&1 >/dev/null
  action "Lancement de NDISWrapper" \
    modprobe ndiswrapper
  action "Lancement du wifi Livebox" \
    iwconfig $WLAN mode managed essid $ESSID key $WEP
  action "Obtention d'une adresse IP avec DHCP" \
    /sbin/dhcpcd wlan0
  get_ip
  echo "Adresse IP : $ip_wlan"
}
function wifistop() {
  action "Arrêt du wifi Livebox" \
    ifconfig $WLAN down
  action "Arrêt de NDISWrapper" \
    rmmod ndiswrapper
  if [ -s $PIDFILE ] \
    && ps aux|cut -b10-15|grep -q `cat $PIDFILE`; then
    action "Arrêt de dhcpcd" \
      kill -SIGTERM `cat $PIDFILE`
  fi
  rm -rf $PIDFILE 2>&1 >/dev/null
}
case $1 in
  start)
    wifistart
    exit 0
    ;;
  stop)
    wifistop
    exit 0
    ;;
  status)
    if fgrep -q ndiswrapper /proc/modules; then
      gprintf "NDISWrapper loaded."
      echo
    else
      gprintf "NDISWrapper not loaded."
      echo
    fi
    if ifconfig 2>&1 | grep -q $WLAN; then
      gprintf "$WLAN wireless interface loaded."
      echo
    else
      gprintf "$WLAN wireless interface not loaded."
      echo
    fi
    unset ip_wlan
    get_ip
    if [ "x$ip_wlan" = "x" ]; then
      gprintf "No IP address"
      echo
    else
      gprintf "IP Adress: $ip_wlan"
      echo
    fi
    exit 0
    ;;
  restart)
    ;;
  reload)
    $0 stop
    $0 start
    exit 0
    ;;
  *)
    gprintf "Usage: %s\n" "$(basename $0) {start|stop|restart|status}"
    exit 0
  ;;
esac
exit 0

Enfin, ajoutez ce script au démarrage :

[root@localhost ~]# chkconfig --add livebox

Voilà, la configuration est enfin terminée. Profitez bien de votre Livebox !

Note : ces changements prendront effet au prochain redémarrage de la machine. Pour éviter de redémarrer, il suffit de taper la commande suivante pour lancer le wifi : [root@localhost ~]# service livebox start