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é

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

^ Haut de Page ^

RSS ~ Copyright 2004-2008 © Linucie - Asso. Loi 1901 - CNIL : 1045544 - Notre hébergeur : APINC.org
Publication sous Licence GNU/FDL propulsée par PmWiki - XHTML 1.0, CSS 2.1, WAI.