Je viens de retrouver un article que j'avais traduit qui a disparu de la liste des articles traduits (???). Je le poste ici pour éviter que quelqu'un ne refasse le travail ! C'est le 152-B. Mes traductions sont d'ailleurs consultables ici : http://www.quadriv.com/blog/public/info/gazette/.
Cordialement, N.P.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> <article lang="fr" revision="1.0"> <articleinfo revision="1.1"> <title>Configuration WiFi des PC de bureau</title>
<subtitle>Gazette Linux n°152 — Juillet 2008</subtitle>
<author> <firstname>Muthaiah</firstname>
<surname>Ramanathan</surname>
<email>ramthen CHEZ yahoo POINT com</email> </author>
<othercredit class="translator" role="traduction"> <firstname>Nicolas</firstname>
<surname>Provost</surname>
<contrib>Adaptation française et relecture</contrib>
<email>nprovost CHEZ quadriv POINT com</email> </othercredit>
<legalnotice> <para>Article paru dans le n°152 de la Gazette Linux de juillet 2008.</para>
<para>Article publié sous <ulink url="http://linuxgazette.net/copying.html">Open Publication License</ulink>. La <citetitle>Linux Gazette</citetitle> n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.</para> </legalnotice>
<copyright> <year>2008</year>
<holder>Muthaiah Ramanathan</holder> </copyright>
<copyright> <year>2008</year>
<holder>Nicolas Provost</holder> </copyright> </articleinfo>
<para><citation><emphasis>Celui qui n'a jamais commis d'erreur n'a jamais tenté d'innover - Albert Einstein</emphasis></citation></para>
<section id="Introduction"> <title>Introduction</title>
<para>Pour commencer, permettez-moi de citer les deux sources qui me paraissent les plus pertinentes, et auxquelles je me suis toujours referré pour déterminer quelle carte réseau sans-fil <acronym>PCI</acronym> serait la meilleure pour mon ordinateur personnel fonctionnant sous <systemitem class="osname">Fedora Core 5</systemitem> :</para>
<simplelist> <member><ulink url="http://madwifi.org/wiki/Compatibility/Netgear">A - Les cartes <orgname>Netgear</orgname> compatibles avec "madwifi"</ulink></member>
<member><ulink url="http://linux-wless.passys.nl/query_alles.php?">B - Liste de cartes tous fabricants confondus</ulink></member> </simplelist>
<para>Je n'envisageais pas d'acheter une carte réseau sans-fil <acronym>USB</acronym> ; après réflexion, j'ai décidé d'acheter une carte <orgname>Netgear</orgname> WG311. Rétrospectivement, je reconnais que j'aurais dû vérifier plus sérieusement avec les listes précédentes si ce modèle <orgname>Netgear</orgname> était fourni avec des pilotes pour <acronym>GNU</acronym>/<systemitem class="osname">Linux</systemitem>. Comme cela n'était pas le cas, j'ai fini par utiliser "<systemitem>ndiswrapper</systemitem>" pour que cela fonctionne.</para> </section>
<section id="ndiswrapper"> <title>ndiswrapper, c'est quoi ?</title>
<section> <title>Le projet ndiswrapper</title>
<para>Extrait du <ulink url="http://ndiswrapper.sourceforge.net">site web du projet</ulink> (http://ndiswrapper.sourceforge.net) :</para>
<blockquote> <para>"De nombreux fabricants ne publient pas les spécifications matérielles ou ne fournissent pas de pilote <systemitem class="osname">Linux</systemitem> pour leurs cartes réseau sans-fil. Ce projet implémente l'<acronym>API</acronym> (<foreignphrase>Application Programming Interface</foreignphrase>) <acronym>NDIS</acronym> (<foreignphrase>Network Driver Interface Specification</foreignphrase>) du noyau <systemitem class="osname">Windows</systemitem> dans le système <systemitem class="osname">Linux</systemitem>. Un pilote de périphérique réseau sans-fil peut alors être lié à cette implémentation de telle façon qu'il fonctionne nativement, comme s'il fonctionnait sous <systemitem class="osname">Windows</systemitem>, sans émulation binaire."</para> </blockquote> </section>
<section id="cartes"> <title>Pourquoi avoir acheté une carte sans-fil PCI ? et pourquoi pas USB ?</title>
<para>Je n'ai rien contre les cartes sans-fil <acronym>USB</acronym>... mais il s'agissait simplement de raccorder mon ordinateur <emphasis>de bureau</emphasis> à internet haut débit. Etant donné la distance physique séparant l'ordinateur du point d'accès du fournisseur Internet local, je ne voulais pas gâcher la décoration de mon habitation avec un câblage apparent. Qui aurait souhaité cela ?</para> </section> </section>
<section id="madwifi"> <title>madwifi ou "fou de wifi" !</title>
<subtitle>Description et utilisation de madwifi</subtitle>
<para>Extrait du <ulink url="http://www.madwifi.org">site web du projet</ulink> (http://www.madwifi.org) :</para>
<blockquote> <para>madwifi.org, c'est [...] une équipe de développeurs bénévoles travaillant sur les pilotes du noyau <systemitem class="osname">Linux</systemitem> pour les cartes réseau sans-fil équipées des puces <orgname>Atheros</orgname>. Nous proposons actuellement deux pilotes, <systemitem>madwifi</systemitem> et <systemitem>ath5k</systemitem>.</para> </blockquote>
<para>C'est clair... et j'aurais dû réaliser que les pilotes <systemitem>madwifi</systemitem> supportaient les puces <orgname>Atheros</orgname> mais pas les puces <orgname>Marvell</orgname> équipant la carte <acronym>PCI</acronym> <orgname>Netgear WG311.</orgname> Je l'ai compris à l'instant où j'ai eu des difficultés à configurer la carte sans-fil.</para>
<para>Dés que j'ai eu la carte <acronym>PCI</acronym> sans-fil, j'ai commencé à la configurer après m'être assuré qu'elle était physiquement bien installée dans un slot <acronym>PCI</acronym>.</para>
<para>Conformement aux indications du site <ulink url="http://www.madwifi.org">http://www.madwifi.org</ulink> j'ai téléchargé le code source de la version 0.9.4 (version la plus récente disponible lors de la rédaction de cet article) et suivi les explications du <ulink url="http://madwifi.org/wiki/UserDocs/FirstTimeHowTo">guide du nouvel utilisateur madwifi</ulink>. La première partie décrit une installation classique à partir du code source :</para>
<para><programlisting>[root@thinnai /tmp/madwifi]# ./configure && make && make install [root@thinnai /tmp/madwifi]# modprobe ath_pci </programlisting></para>
<para>Ensuite j'ai procédé à la création de l'interface, et c'est à ce moment que les choses ont mal tourné (pour être honnête, à cause d'une faute d'inattention de ma part).</para>
<para><programlisting>[root@thinnai ~]# wlanconfig ath0 create wlandev wifi0 wlanmode sta wlanconfig: ioctl: No such device </programlisting></para>
<para>Je me suis alors referré aux deux listes citées au début de cet article. Les deux indiquaient clairement que la carte <acronym>PCI</acronym> <orgname>Netgear</orgname> WG311 était supportée par "<systemitem>ndiswrapper</systemitem>" mais pas "<systemitem>madwifi</systemitem>".</para>
<para>Je connaissais alors la seule méthode à appliquer pour configurer ma carte <acronym>PCI</acronym> sans fil, à savoir utiliser <systemitem>ndiswrapper</systemitem>. Après avoir lu la documentation de base disponible sur le <ulink url="http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/">ndiswrapper
<abbrev>wiki</abbrev></ulink>, j'ai compris que cela devait être réalisé en deux étapes : tout d'abord installer <systemitem>ndiswrapper</systemitem> à partir des sources, puis télécharger et installer le pilote <systemitem class="osname">Windows</systemitem> approprié.</para>
<para>Comment trouver quel pilote <systemitem class="osname">Windows</systemitem> doit être téléchargé ? C'est simple, il faut identifier la version de la puce placée sur la carte <acronym>PCI</acronym> en suivant les étapes ci-dessous :</para>
<orderedlist> <listitem> <para>utiliser la commande <command>lspci</command> pour trouver l'identifiant de la carte ; ici c'était "01:07.0" (première colonne de la sortie sur l'écran ci-dessous)</para> </listitem>
<listitem> <para>utiliser la commande <command>lspci -n</command> avec cet identifiant comme paramètre pour trouver l'ID <acronym>PCI</acronym> de la carte (troisième colonne ci-dessous)</para> </listitem>
<listitem> <para>dans mon cas, le fabricant de la carte WG311 étant <orgname>Netgear</orgname>, j'ai consulté la section M-N <ulink url="http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list/">de
cette liste</ulink></para> </listitem>
<listitem> <para>l'identifiant de ma carte correspondait à l'item 4 de cette liste ; après avoir vérifié à l'aide de l'ID <acronym>PCI</acronym> et de la version de la puce utilisée, j'ai pu alors télécharger le pilote <systemitem class="osname">Windows</systemitem> correspondant à ma carte</para> </listitem> </orderedlist>
<para><programlisting>[root@thinnai:~]#/sbin/lspci|grep -i wireless 01:07.0 Ethernet controller: Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03) [root@thinnai ~]# lspci -n|grep 01:07 01:07.0 0200: 11ab:1faa (rev 03) </programlisting></para>
<note> <para>avant d'installer et de configurer la carte sous <acronym>GNU</acronym>/<systemitem class="osname">Linux</systemitem>, j'avais installé ces pilotes sous <systemitem class="osname">Windows 2000</systemitem> et vérifié qu'ils fonctionnaient parfaitement.</para> </note>
<para>Cette <ulink url="http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,installation/">page
<abbrev>wiki</abbrev></ulink> détaille les étapes pour installer <systemitem>ndiswrapper</systemitem> à partir des sources et trouver le pilote <systemitem class="osname">Windows</systemitem>, entre autres choses.</para>
<para>Il est précisé dans cette documentation qu'il est préférable d'utiliser les pilotes pour <systemitem class="osname">Windows XP</systemitem> plutôt que les pilotes pour <systemitem class="osname">Windows 2000</systemitem> ; dans une autre section ("<foreignphrase>Install Windows driver</foreignphrase>"), il est écrit que si le pilote <systemitem class="osname">Windows</systemitem> fourni par le fabricant fonctionne, alors ce pilote spécifique peut être utilisé. C'est ce qui m'a conduit à télécharger le pilote <systemitem class="osname">Windows</systemitem> à l'adresse ci-dessus plutôt que d'utiliser le pilote présent par défaut dans mon installation de <systemitem class="osname">Windows</systemitem>.</para> </section>
<section id="chemin"> <title>La bonne méthode</title>
<subtitle>Installation de ndiswrapper</subtitle>
<para>A partir de la page <abbrev>Wiki</abbrev> du projet <systemitem>ndiswrapper</systemitem>, j'ai téléchargé l'archive <systemitem>tar</systemitem> de la version la plus récente. Comme je l'ai toujours fait avant une installation, j'ai lu la documentation attentivement (au moins les premiers paragraphes du fichier <filename>INSTALL</filename>). Dans ce cas, les premières étapes de compilation des sources et d'installation des fichiers binaires se sont révélées plutôt classiques.</para>
<para>Me plaçant dans le répertoire <filename>/root/ndiswrapper-1.20</filename>, j'ai lancé les commandes suivantes :</para>
<para><programlisting>[root@thinnai ndiswrapper-1.20]# make && make install [...] *** WARNING: Kernel is compiled with 4K stack size option (CONFIG_4KSTACKS); many Windows drivers will not work with this option enabled. Disable CONFIG_4KSTACKS option, recompile and install kernel [...]</programlisting>S'il vous arrive de voir ce type de "<foreignphrase>warnings</foreignphrase>" à la fin du processus "<systemitem>make</systemitem>", vous pouvez les ignorer sans risque. Ces avertissements n'ont pas altéré le fonctionnement de la carte sans-fil, du moins la carte <acronym>PCI</acronym> avec la version de la puce indiquée plus haut.</para>
<para>Comme détaillé ci-dessus, j'ai téléchargé les pilotes pour <systemitem class="osname">Windows</systemitem> et suivi religieusement les instructions de la section "<foreignphrase>Install Windows driver</foreignphrase>" du fichier <filename>INSTALL</filename>. Après avoir extrait ce pilote <systemitem class="osname">Windows</systemitem> dans un autre répertoire, j'ai suivi les étapes ci-dessous :</para>
<para><programlisting>[root@thinnai ndiswrapper-1.20]# ls ../ENLWI-G_Driver_Utility_98SE-ME-2000-XP/V1.10/DRIVER/Windows XP Mrv8000c.cat Mrv8000c.inf Mrv8000c.sys
[root@thinnai ndiswrapper-1.20]# cp ../ENLWI*/*{inf.sys} . # copie les pilotes dans le répertoire courant
[root@thinnai ndiswrapper-1.20]# ndiswrapper -i Mrv8000c.inf # installe les pilotes Installing mrv8000c Forcing parameter AdhocGMode|1 to AdhocGMode|0 Forcing parameter AdhocGMode|1 to AdhocGMode|0
[root@thinnai ndiswrapper-1.20]# ls /etc/ndiswrapper/ # vérifie l'installation mrv8000c
[root@thinnai ndiswrapper-1.20]# ls /etc/ndiswrapper/mrv8000c/ 11AB:1FAA.5.conf 11AB:1FAB.5.conf mrv8000c.inf mrv8000c.sys
[root@thinnai lnx_data]# ndiswrapper -l Installed drivers: mrv8000c driver installed, hardware present </programlisting></para>
<para>Il faut ensuite configurer l'interface sans-fil, rechercher les points d'accès et s'attacher à l'un d'eux. Toutefois, avant d'effectuer ces étapes, j'ai contrôlé la version des utilitaires wifi :</para>
<para><programlisting>[root@thinnai ~]# rpm -qa | grep -i wireless wireless-tools-28-0.pre13.5.1
[root@thinnai ~]# iwconfig --version iwconfig Wireless-Tools version 28 Compatible with Wireless Extension v11 to v19.
Kernel Currently compiled with Wireless Extension v19.
wlan0 Recommend Wireless Extension v18 or later, Currently compiled with Wireless Extension v19. </programlisting></para> </section>
<section id="finallap"> <title>Un dernier effort</title>
<para>Après cette vérification, j'ai regroupé les commandes suivantes dans un script shell afin de faciliter l'installation et l'activation des pilotes de la carte à la fin de chaque démarrage du système (j'aurais aussi pu réécrire ce script de telle façon que l'interface sans-fil soit activée depuis <filename>/etc/init.d</filename>).</para>
<para><programlisting>echo "Activation du module de l'interface sans fil dans le système ..." modprobe ndiswrapper echo "====================================================================" echo "Etat des interfaces Ethernet ... " /sbin/ifconfig echo "====================================================================" echo "Activation de l'interface sans fil ... " /sbin/ifconfig wlan0 up echo "====================================================================" echo "Etat des interfaces sans fil ... " /sbin/iwconfig echo "====================================================================" echo "Recherche des points d'accès, attachement à un réseau disponible ..." iwlist wlan0 scan /sbin/iwconfig wlan0 essid default /sbin/iwconfig wlan0 echo "====================================================================" echo "Acquisition d'une adresse IP pour l'interface sans fil ... " dhclient wlan0</programlisting>Les commandes ci-dessous permettent de vérifier l'état de l'interface sans-fil une fois <systemitem>ndiswrapper</systemitem> installé et activé, grâce à la commande "<command>dhclient</command>" :</para>
<para><programlisting>Acquiring IP address for the wireless interface ... Internet Systems Consortium DHCP Client V3.0.3-RedHat [...] Listening on LPF/wlan0/00:1e:2a:35:2a:79 Sending on LPF/wlan0/00:1e:2a:35:2a:79 Sending on Socket/fallback DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.147 -- renewal in 39 seconds.</programlisting>Voici les résultats d'un simple test pour vérifier la connection internet :</para>
<para><programlisting>[ram@thinnai ~]$ host linuxgazette.net linuxgazette.net has address 64.246.26.120 linuxgazette.net mail is handled by 10 genetikayos.com.
[ram@thinnai ~]$ ping -c 5 www.eham.net PING www.eham.net (69.36.242.135) 56(84) bytes of data. 64 bytes from atlanta.eham.net (69.36.242.135): icmp_seq=1 ttl=50 time=297 ms 64 bytes from atlanta.eham.net (69.36.242.135): icmp_seq=2 ttl=50 time=298 ms 64 bytes from atlanta.eham.net (69.36.242.135): icmp_seq=3 ttl=50 time=298 ms 64 bytes from atlanta.eham.net (69.36.242.135): icmp_seq=4 ttl=50 time=298 ms 64 bytes from atlanta.eham.net (69.36.242.135): icmp_seq=5 ttl=50 time=298 ms
--- www.eham.net ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 297.142/298.288/298.837/0.617 ms </programlisting></para> </section>
<section id="conclusion"> <title>Conclusion</title>
<para>Lisez patiemment et avec attention les listes citées au début de cet article avant de décider quelle carte vous allez acheter. Si vous devez installer et configurer une carte <acronym>PCI</acronym>/<acronym>USB</acronym> sans-fil dans un environnement <acronym>GNU</acronym>/<systemitem class="osname">Linux</systemitem> non supporté par <systemitem>madwifi</systemitem>, alors <systemitem>ndiswrapper</systemitem> est là pour vous sortir du mauvais pas.</para>
<blockquote> <para><authorinitials>Ramanathan</authorinitials> travaille pour une société de Chennai dont les bureaux sont basés à Boston. Il aime passer son temps libre à lire des livres sur l'histoire mondiale, faire des mots-croisés et, quand c'est possible, travailler sur les logiciels libres.</para> </blockquote> </section> </article>