Installer des pilotes Windows avec Ndiswrapper
De Wiki de la communauté Mandriva.
Cette page est destinée à Mandriva, mais elle doit s'appliquer dans ses grandes lignes à d'autres types de puces et même à une autre distribution Linux.
Sommaire |
Configuration graphique de ndiswrapper avec Drakconnect
La configuration de ndiswrapper avec Drakconnect est expliquée pas à pas sur la page qui lui est consacrée.
Installation de ndiswrapper
Cas des version récentes (à partir de la 2008)
Sur les versions récentes de Mandriva, la dernière version de ndiswrapper est incluse dans les noyaux des différentes versions de (la One, la Free et la Powerpack), et le paquetage ndiswrapper est normalement installé. Il n'y a donc aucune manipulation particulière à faire pour l'utiliser.
Cas des anciennes versions de Mandriva <= 2007.1
Dans le cas de la Mandriva 2007.0, le RPM proposé installe une version ancienne de ndiswrapper ; de plus, j'ai lu ici ou là (et sur le forum MDV anglais), qu'il est bogué et fonctionne de façon aléatoire. Fort heureusement, quelqu'un a eu la délicate attention de nous en faire une version non boguée et plus jeune, accessible sur la source MDE.
Veillez donc à n'installer aucun RPM d'origine contenant la chaine « ndiswrapper » ou à les désinstaller, s'ils sont déjà là, puis ajoutez la nouvelle source :
Installer les paquetages ndiswrapper
| Pour installer ndiswrapper, lancez Sélectionnez-le et cliquez sur Appliquer (Aide). Vous pouvez également l'installer en utilisant la console en tant qu'administrateur avec la commande suivante : urpmi ndiswrapper |
Installez dkms-ndiswrapper uniquement si vous n'utilisez pas un kernel officiel Mandriva, ou un kernel-tmb.
Blacklistage
Cet exemple est bâti autour d'une Mandriva Spring installée sur un HP nx 6125, équipé d'une puce Broadcom 4318 (famille bmc43xx, très répandue). Le pilote linux bcm43xx est à ce jour immature, et la technique basée sur fwcutter ne fonctionne pas, justement, avec cette puce précise !
Il s'agit - avant de tenter quoi que ce soit - d'empêcher le système de charger son propre pilote bcm43xx (ainsi que d'autres pilotes qui pourraient entrainer celui-ci) : il serait inopérant et en plus, bloquerait le fonctionnement de ndiswrapper. Pour cela :
puis indiquer le mot de passe root pour ouvrir avec les privilèges administrateur le fichier qui gère le chargement systématique des pilotes au démarrage : /etc/modprobe.conf et ajoutez à la fin :
blacklist bcm43xx blacklist ieee80211 blacklist ieee80211softmac blacklist ieee80211_crypt blacklist ssb
enregistrez et c'est fini pour ça. Plutôt que de redémarrer pour profiter de votre blacklistage (réflexe Windowsien), déchargez à la volée le pilote bcm43xx (au cas où il serait chargé) avec la commande rmmod bcm43xx.
Paquetage acpi
J'ai lu aussi quelque part qu'il est conseillé d'installer « acpi » (il ne s'agit pas de l'option à passer au noyau, mais bien d'un paquetage) ; j'ignore si c'est important, mais je l'ai fait aussi :
Commandes ndiswrapper
Nous sommes prêts, passons aux choses sérieuses.
Plaçons-nous dans le dossier contenant les fichiers extraits du pilote Windows, qui doit impérativement contenir deux fichiers nommés à peu près bcmwl5 : l'un en .inf et l'autre en .sys.
En console :
Enfin, l'enchaînement des commandes qui vont vous mener au Nirvana (en root:
(par précaution) liste les pilotes actuellement chargés dans ndiswrapper : logiquement, aucun à ce stade ; si par extraordinaire il y en a un nommé xyz :
l'enlèvera.
dit à ndiswrapper d'installer ce qui l'intéresse de bcmwl5.inf, en « piquant » aussi un peu de bcmwl5.sys ; c'est pourquoi il faut que les deux soient là !
à nouveau pour lister les pilotes actuellement chargés dans ndiswrapper ; logiquement, on doit à présent y trouver bcmwl5, avec un commentaire disant que le matériel est bien là aussi.
crée un alias (en général wlan0) dans /etc/modprobe.conf pour que ndiswrapper soit chargé automatiquement au boot
charge à la volée ndiswrapper
liste les interfaces réseau sans fil ; nous voyons ainsi si nous avons un wlan enfin opérationnel.
Si les choses se présentent bien, il est temps d'ouvrir le MCC, Internet et réseau -> Configurer un réseau sans fil, pour donner tous les paramètres (choix du réseau, ESSID, clé etc.)
Si tel n'était pas le cas, attendez pour pleurer : dmesg vous racontera beaucoup (trop) de choses, mais les dernières lignes parlent de ndiswrapper et peuvent vous éclairer sur les causes de votre échec (généralement un pilote non adapté).
Attention : si vous enchaînez plusieurs tentatives, il se peut que vous lisiez dans dmesg des observations ayant trait à une tentative précédente : les commentaires de dmesg ne sont pas horo-datés.
Il faudra – si ça ne fonctionne pas - désinstaller tout ça avant d'essayer un autre pilote :
décharge le pilote ndiswrapper précédemment créé
le désinstalle (il ne faut pas mettre le « .inf »). et on peut recommencer l'ensemble de la manip avec un autre pilote, jusqu'à ce que tout fonctionne.
Compiler ndiswrapper
Il peut arriver que le paquetage proposé ne convienne pas avec tel ou tel matériel. Il faut alors attendre la mise à disposition d'un nouveau paquetage ou le compiler soit même. Heureusement ce n'est pas bien compliqué mais nécessite un peu d'attention. Voici une procédure:
1) installer (si ce n'est déjà fait) le paquetage des entêtes du noyau correspondant exactement au noyau utilisé. Par exemple, avec le le noyau kernel-desktop-2.6.22.9-1mdv, il faut installer kernel-desktop-devel-2.6.22.9-1mdv.
2) désinstaller le paquetage ndiswrapper
3) télécharger la dernière version sur le site de ndiswrapper et éventuellement lire la doc (ça ne peut pas faire de mal ...)
4) on n'y apprend notamment qu'il faut lier /lib/modules/VERSION/build aux sources du noyau: Exemple:
à adapter en fonction de sa propre version du noyau.
5) décompresser et compiler depuis le répertoire dans lequel on a extrait l'archive.
puis
en tant que root. Un module sera installé dans /lib/modules/2.6.22.9-desktop-1mdv/misc
6) supprimer manuellement le module dans /lib/modules/2.6.22.9-desktop-1mdv/kernel/3rdparty/ndiswrapper. Si on ne le fait pas c'est toujours celui-ci qui sera utilisé!
7) vérifier que c'est bien le nouveau module qui sera utilisé avec
Remarque: il y a possibilité de créer un rpm avec
Cela nécessite d'installer les sources complètes du noyau et de disposer du paquetage rpm-build


