Configuration d'un adaptateur USB Sans-Fil (chipset Atmel)

par Arnaud Fontaine

Juillet 2003

Table of Contents

1  Présentation

Les réseaux Sans-Fil ont connu un succès fulgurant. Le standard international IEEE 802.11, élaboré dès 1997 et à l'origine de ces réseaux, permettent de mettre en place des réseaux hertziens à hauts débits et dont les principaux avantages restent la mobilité et le faible coût. De plus, ce standard a donné naissance à de nombreuses autres normes proposant un débit plus élevé, une meilleure intéropabilité ou une sécurité accrue. Ainsi est née la norme 802.11b avec un débit de transmission théorique maximum de 11 Mbps (seulement 1 ou 2 Mbps pour le standard initial). Nous n'irons pas plus loin dans la présentation du Wireless dans cet article mais si vous voulez en apprendre plus, je vous conseille de visiter le site de la Fédération France Wireless qui rassemble les efforts des différentes communautés partout en France.

L'adaptateur USB Sans-Fil de Belkin est donc destiné aux réseaux Sans-Fil supportant le standard 802.11b. Cet adaptateur repose sur un chipset Atmel AT76C503A utilisé sur de nombreux autres périphériques Sans-Fil. La configuration de l'adaptateur qui fait l'objet de cet article devrait donc s'adapter aux cartes présentes sur cette page.

Afin de bien assimiler le contenu de cet article, je vous conseille vivement de lire le Kernel HOWTO afin de mieux comprendre les termes noyau, modules... Étant donné que nous décrirons l'installation sur une distribution Debian GNU/Linux et consorts telle que Knoppix, il faudra que celle-ci soit installée correctement. La procédure décrite est valable aussi pour les versions testing et unstable. De plus vous devriez déjà connaître les commandes de bases d'un système UNIX ainsi que les commandes de gestion de paquets sous Debian.

2  Choix des pilotes

Il existe deux pilotes différents pour ce chipset. La version initiale des pilotes pour Atmel est disponible à l'adresse suivant : http://atmelwlandriver.sourceforge.net/. Une autre version proposant principalement des corrections de bogues est disponible à l'adresse suivante : http://at76c503a.berlios.de/. Pour ce document, nous allons utiliser la deuxième version de ces pilotes qui supporte parfaitement iwconfig et qui nous permettra un déboguage plus aisé.

Malheureusement comme l'indique la page d'accueil des pilotes Berlios, ils possèdent quelques limites dues à l'adaptateur en lui même. En effet le firmware actuel ne supporte pas le mode promiscuité, monitor, ou station (hostap) pour la librairie libpcap. Vous ne pourrez donc pas utiliser kismet, airsnort et autres pour « sniffer les airs » et votre carte ne pourra pas non-plus se comporter comme un point d'accès. De plus, Les pilotes actuelles ne fonctionnent pas sur la série 2.5.x du noyau et encore moins sur la série 2.6.x, ce qui ne nous pose pas de problèmes car nous allons utiliser des versions stables du noyau (2.4.x).

Si votre noyau est déjà compilé avec le support de l'USB (comme dans la distribution Knoppix) alors passez directement à la section Installation des pilotes, la section suivante n'étant d'aucune utilité té dans ce cas à moins que vous vouliez mettre à jour votre version du noyau. Dans la section suivante, je vais considérer que vous venez juste d'installer votre distribution Debian en stable, c'est à dire que vous disposez (normalement) d'un noyau 2.2.20.

3  Configuration du noyau

Avant de commencer cette section, il faudra que vous ayez installé différents paquets, ce que nous allons faire :
# apt-get install bzip2 libncurses5-dev kernel-package gcc-2.95 make

La distribution Debian GNU/Linux fournit différentes versions du noyau suivant l'état de votre distribution (stable, testing ou unstable). Nous n'allons pas utiliser la dernière version des sources du noyau disponible en paquet Debian sur la version stable de la distribution (2.4.18). il vaut mieux utiliser la dernière version qui corrige certains bogues et ajoute le support de périphériques en plus. (les changements apportés par rapport aux autres versions sont disponibles ici) Nous allons donc télécharger la dernière version du noyau disponible à l'adresse suivante : ftp://ftp.fr.kernel.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.bz2. Une fois téléchargé, copiez le dans le répertoire /usr/src/.

Ensuite vous décompressez l'archive copiée et créer un lien :
# cd /usr/src
# tar xvjf linux-2.4.21.tar.bz2
# ln -s linux-2.4.21 linux


Nous allons ensuite configurer notre noyau. Au préalable vous devriez disposer d'informations sur votre matériel afin que vous puissiez le sélectionner dans les menus de configuration du noyau. Le plus important est de savoir de quel processeur vous disposez car vous devrez en sélectionner un dans les menus de configuration du noyau. Tapez ensuite la commande suivante :
# make menuconfig

Je décrirais seulement les options minimum à modifier pour que votre noyau soit fonctionnel (pour ajouter le support de vos périphériques, je vous invite à lire cette documentation très complète : http://via.ecp.fr/~alexis/formation-linux/config-noyau.html).

Vous arrivez désormais sur un système de menus, activez les options suivantes pour prendre en charge votre adaptateur USB :
Code maturity level options
        [*] Prompt for development and/or incomplete code/drivers

Network device support
    Wireless LAN (non-hamradio)
        [*] Wireless LAN (non-hamradio)

USB support
        <M> Support for USB
        [*] USB verbose debug messages
        <M> UHCI Alternate Driver (JE) support
Une fois que vous activez ces options, il vous suffit de taper ceci pour compiler votre noyau (vous pouvez également consulter l'article sur la compilation d'un noyau à la sauce Debian) :
# make-kpkg clean
# make-kpkg --revision 2.4.21 kernel-image


Note : J'ai rencontré quelques problèmes en compilant le noyau avec gcc 3.x, j'ai donc utilisé gcc 2.95 qui a fonctionné sans problème. Si vous avez gcc 3.x installé, je vous conseille d'utiliser, pour la compilation, gcc 2.95 :
# rm /usr/bin/gcc
# ln -s /usr/bin/gcc-2.95 /usr/bin/gcc


La compilation peut être plus ou moins longue selon le processeur dont vous disposez, avec un Athlon à 1200 Mhz, cela me prend environ 13 minutes mais sur des processeurs beaucoup moins puissant comme un i386 ou un i486 cela peut prendre quelques heures voire quelques jours, dans ce cas configurer donc votre noyau avec les options adaptées à votre vieille machine et copiez le paquet obtenu sur celle ci. Une fois que la compilation de votre nouveau noyau est terminé, il ne vous reste plus qu'à installer le paquet créé :
# dpkg -i /usr/src/kernel-image-2.4.21_2.4.21_i386.deb
(Lecture de la base de données... 87141 fichiers et répertoires déjà installés.)
Dépaquetage de kernel-image-2.4.21 (à partir de kernel-image-2.4.21
_2.4.21_i386.deb) ...
Paramétrage de kernel-image-2.4.21 (2.4.21) ...
Not updating image symbolic links since we are being updated (2.4.21)


Une fois le paquet installé, il ne vous reste plus qu'à configurer votre gestionnaire d'amorçage (lilo ou grub). Notez qu'un article sur la migration de Lilo vers Grub est disponible sur Andesi. Je vais donc décrire ce qu'il est nécessaire d'ajouter pour que vous puissiez démarrer sur votre prochain noyau. Il vous suffira seulement d'adapter selon le partitionnement de votre disque dur (prenez exemple sur la configuration que vous utilisez actuellement) :
# Pour Lilo, ajoutez ceci au fichier de configuration /etc/lilo.conf
image=/boot/vmlinuz-2.4.21
    label=Linux-2.4.21
    root=/dev/hda7
    read-only
# Pour que vos changements sur le fichier de configuration de Lilo soient pris en compte il # faut taper ceci dans une console :
# lilo


# Pour Grub, ajoutez ceci au fichier de configuration /boot/grub/menu.lst (usuellement)
title Debian GNU/Linux, 2.4.21
root (hd0,0)
kernel /vmlinuz-2.4.21 root=/dev/hda7
Enfin redémarrez sur votre nouveau noyau. Nous allons maintenant passer à l'installation des pilotes Berlios pour notre chipset Atmel.

4