Ndiswrapper: utiliser le pilote Windows ™ sous Linux
Présentation
“This project provides a linux kernel module that loads and runs Ndis (Windows network driver API) drivers supplied by the vendors.”
Le projet Ndiswrapper fournit un module qui charge et execute le pilote Ndis (API du pilote réseau Windows) fournis par le fabricant du matériel.
Wiki du projet Ndiswrapper: http://ndiswrapper.sourceforge.net/phpwiki/index.php
Utilisation à partir du menu Knoppix de Knoppix, Kaella
Menu Knoppix > Réseau/Internet > Configurer Ndiswrapper
Laissez vous guider en utilisant les pilotes appropriés pour votre matériel:
cf: http://ndiswrapper.sourceforge.net/phpwiki/index.php/List
Votre fichier d’extension .inf ne peut être chargé s’il comporte une extension en majuscule (.INF), renommez le simplement.
Nb: Les extensions des fichiers ne sont pas visibles par défaut depuis Windows (cf: menu Affichage > Options des dossiers)
L’outil vous demande l’emplacement du fichier inf, si tout se passe bien il vous invitera à configurer les parametres de la liaison sans fil avec iwconfig.
Executez alors Configuration de la carte réseau depuis le même menu que Ndiswrapper (KNOPPIX > Réseau/Intenet).
Ou consultez les réseaux disponibles:
iwlist wlan0 scanning
Matériel testé
- clé Sagem XG703A [fichier zip 357 ko] (cf: http://assistance.wanadoo.fr/1425.php)
Il suffit d’extraire le fichier zip, en résulte un répertoire Drivers-Dongles-WIFI-Sagem-XG703A contenant tout ce qu’il nous faut, notament le fichier WlanUIG.inf
Nb: il est conseillé d’extraire le zip dans votre Home (maison) sur le bureau (répertoire Desktop: icône bout de papier et crayon). Ceci vous éviteras de bloquer le démontage de votre clé USB par exemple.
Ensuite un petit script rapide:
#/bin/bash PATH="/bin:/sbin:/usr/bin:/usr/sbin" export PATH # Activer l'interface réseau sans fil wlan0 ifconfig wlan0 up # Préciser la clé de chiffrement WEP 128 bits (cf: étiquette) iwconfig wlan0 enc DAC7-54D9-6DEC-24A1-53A2-F239-91 # Préciser le nom du réseau choisis (ici Wanadoo_xx09) iwconfig wlan0 essid Wanadoo_xx09 # iwlist wlan0 scanning pour afficher les réseaux à proximité # Une petite pause pour laisser le temps de croiser les doigts sleep 5 # Demande d'une adresse IP auprés du serveur DHCP du point d'accés pump -i wlan0 # Une petite interface pour faire joli. kwifimanager &
Coller le texte ci-dessus dans un fichier texte, enregister par exemple sous le nom de Wifi. Rendez ce fichier executable et placez le dans /usr/bin
Créez ensuite une icône Lien vers une nouvelle application ou executez depuis un terminal Wifi (attention à la casse des caractères sous Linux: W et différent de w).
Configuration d’une Netgear MA111 USB (Ndiswrapper à la main)
Ndiswrapper à la main
La MA111 existe en deux versions (v1 et v2), ceci concerne la v1 (semble t’il), pour la v2 les pilotes Winchose ™ sont différent !
cf: http://ndiswrapper.sourceforge.net/phpwiki/index.php/List
et
http://kbserver.netgear.com/products/MA111.asp
Utilisez donc les bons pilotes pour votre matériel, évitez ceux du CD-Rom fournis avec votre matériel et préférez leur le pilote du fabricant (et mieux du fabricant du chipset si possible …)
Bref pour moi en v1 j’ai utilisé l’archive:
ftp://downloads.netgear.com/files/ma111_2_5beta.zip
Extrayez le tout et mettez de côté le contenu du répertoire Drivers/WinXP , je partirai du pricipe qu’il se trouve dans votre home et se nomme infMa111Xprout …
L’installation de ndiswrapper vous a fournis un outil de configuration nommé … ndiswrapper ;)
En root vous pouvez l’executer pour connaître ses options:
root@powernux:~ # ndiswrapper Usage: ndiswrapper OPTION Manage ndis drivers for ndiswrapper. -i inffile Install driver described by 'inffile' -d devid driver Use installed 'driver' for 'devid' -e driver Remove 'driver' -l List installed drivers -m Write configuration for modprobe -hotplug (Re)Generate hotplug information where 'devid' is either PCIID or USBID of the form XXXX:XXXX
Il va donc falloir lui dire où se trouve le fichier .inf du pilote windows ™:
ndiswrapper -i /home/linucie/infMa111Xprout/NETMA111.INF
Nb: n’oubliez pas que Linux comme tout Unix like respecte la casse NETMA111.INF est différent de netma111.inf et différent de Netma111.inf , utilisez donc la complétion (touche tabulation)
Pour compléter la configuration:
ndiswrapper -m
Vous pouvez branchez votre dongle wifi usb et vérifier (en root) que la commande iwconfig répond et vous sort une interface wlan0.
Ndiswrapper et Kismet
D’aprés http://www.kismetwireless.net/documentation.shtml
“Q: Will Kismet work with Linuxant or NDISwrapper drivers?
No. These wrappers use the Windows drivers, which don’t support rfmon.
Until there are native drivers with rfmon support, Kismet won’t work with these cards.”
Les pilotes Windows™ ne gèrent donc pas rfmon et ne pourrons fonctionner avec Kismet … :(
Nb: La version 1 des MA111 intégrant une puce prism2 peut être utilisée avec les pilotes linux-wlanng (http://www.linux-wlan.com/), ceci dit le mode de fonctionnement de ces pilotes se démarquant quelque peu des autres pilotes (pas d’utilisation d’iwconfig), associé à une certaine instabilité avec ce type de périphérique usb font que ces pilotes ne semblent pas (encore) exploitable.
Cependant si vous désirez profiter de cet outil étonnant qu’est Kismet, la configuration de ces pilotes se situent dans le répertoire /etc/wlan pour les pilotes wlanng et /etc/kismet pour Kismet.
Ajoutez la ligne suivante dans votre /etc/kismet/kismet.conf pour spécifier la source de capture:
source=wlanng,wlan0, prism2source,11
Nb: Le 11 étant le canal de recherche, vous devriez pouvoir ne pas le spécifier.
Installation Ndiswrapper à partir des sources (uniquement si nécessaire)
Pré-requis à la compilation
Tout d’abord il vous faut un environnement de compilation fonctionnel (cf: http://doc2.linucie.net/Install/NoyauBase ) En gros il vous faut au moins les en-têtes du noyau pour lequel vous souhaitez compiler.
Nettoyage des paquets existants
Les versions évoluant vite et n’étant pas spécialement en accord entre elles, il serait pas mal de désinstaller les paquets existants:
apt-get remove ndiswrapper*
Récupération des sources
A l’heure d’écriture de ce texte, la version 1.0 est disponible.
J’ai pris l’habitude de mettre mon purin dans /usr/src, mon home ayant tendance à se remplir de paquets “de tests”, si quelque chose fonctionne, j’en garde ainsi la trace dans /usr/src à côté des sources du noyau.
L’option -P de wget permet de spécifier un répertoire de destination:
wget -P /usr/src http://heanet.dl.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-1.0.tar.gz
Si vous n’étiez pas déja dans le répertoire /usr/src
cd /usr/src
Extraction de l’archive:
tar zxvf ndiswrapper-1.0.tar.gz
Vous obtenez un répertoire /usr/src/ndiswrapper-1.0
Compilation et installation
Vous devez vous placer à l’intérieur du répertoire pour pouvoir compiler (emplacement du fichier Makefile)
cd ndiswrapper-1.0
En root, pour compiler:
make
pour installer:
make install
Page mise à jour le 17 mai 2007 à 20h44.