Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ndiswrapper [Le 17/03/2013, 17:00]
83.152.92.49 [NDISWrapper - Pilotes Windows sous Linux] ajout d'une note pour 12.10
ndiswrapper [Le 09/01/2016, 19:41] (Version actuelle)
cafecho [Récupération du fichier .inf du pilote Wi-Fi] Coquille
Ligne 2: Ligne 2:
 ---- ----
  
-====== NDISWrapper - Pilotes ​Windows ​sous Linux ======+====== NDISWrapper - Pilotes ​Windows® ​sous Linux® ​======
  
-NDISWrapper est un module du noyau Linux qui permet l'​utilisation de pilote Windows ​(la plupart du temps pour des cartes réseaux Ethernet et Wifi mais pas que !).+**NDISWrapper** est un module du [[:kernel|noyau Linux]] qui permet l'​utilisation de pilotes Windows® ​(la plupart du temps pour des cartes réseaux Ethernet et Wifi mais pas que.
  
-N'​hésitez pas à tester toutes les versions des différents pilotes de ce que vous essayez de faire fonctionner. Les pilotes 32 bits pour Windows ​XP semblent être les premiers à tester. N'​hésitez pas non plus à essayer les pilotes 64 bits si vous utilisez ​windows ​64 bits. (même s'il faut parfois aussi essayer les 32 bits ...)+N'​hésitez pas à tester toutes les versions des différents pilotes de ce que vous essayez de faire fonctionner. Les pilotes 32 bits pour Windows-XP® semblent être les premiers à tester. N'​hésitez pas non plus à essayer les pilotes 64 bits si vous utilisez ​Windows ​64 bits. (même s'il faut parfois aussi essayer les 32 bits ...)
  
-<​note ​tip>Gardez à l'​esprit que Ndiswrapper n'est qu'un bidouillage. Malgré le fait qu'il soit très stable et parfaitement utilisable, il est en effet préférable de chercher avant toute excursion dans les méandres de Ndiswrapper de vérifier si un pilote Linux existe en: +<​note ​help>Gardez à l'​esprit que **Ndiswrapper** n'est qu'un bidouillage. Malgré le fait qu'il soit très stable et parfaitement utilisable, il est en effet préférable de chercher avant toute excursion dans les méandres de **Ndiswrapper**, de vérifier si un pilote Linux existe en: 
-  * Essayant la carte sans ne rien faire, en effet la majeur partie du temps aucun pilote supplémentaire n'est requis +  * Essayant la carte sans rien faire, en effet la majeur partie du temps aucun pilote supplémentaire n'est requis; 
-  * Cherchant sur Google ​si un pilote Linux non officiellement présent dans Ubuntu est utilisable.+  * Cherchant sur sur votre moteur de rechercher préféré ​si un pilote Linux non officiellement présent dans Ubuntu est utilisable.
  
-Si votre carte Wifi ne marche toujours pas (ou si le pilote non officiel est trop difficile à installer), essayez Ndiswrapper.+Si votre [[:​wifi_liste_carte|carte Wifi]] ne marche toujours pas (ou si le pilote non officiel est trop difficile à installer), essayez ​**Ndiswrapper**.
 </​note>​ </​note>​
-<note important>​ndiswrapper pose problème dans Ubuntu 12.10, et remonte l'​erreur "''​FATAL:​ Module ndiswrapper not found''"​ au moment de charger le pilote avec modprobe. Pour cela, il est nécessaire de télécharger les sources de ''​ndiswrapper-1.58'',​ et de faire la compilation à la main.</​note>​ 
 ===== Pré-requis ===== ===== Pré-requis =====
- +  * Disposer des [[:​sudo|droits d'​administration]]. 
-Toutes les manipulations suivantes vont se faire à l'aide d'un **[[:​Terminal]]**. Aussi il est conseillé de suivre les quelques tutoriels pour comprendre comment utiliser efficacement ce **[[terminal]]**.+  * Disposer de préférence d'une connexion à Internet configurée et activée. 
 +  * Toutes les manipulations suivantes vont se faire à l'aide d'un **[[:​Terminal]]**. Aussi il est conseillé de suivre les quelques tutoriels pour comprendre comment utiliser efficacement ce **[[terminal]]**.
  
 ==== Identification du pilote ==== ==== Identification du pilote ====
  
-**Pour savoir s'il est nécessaire** d'​installer NDISWrapper,​ reportez-vous d'​abord à la procédure générale de **[[:​wifi|configuration d'une interface réseau Wifi]]**.+**Pour savoir s'il est nécessaire d'​installer NDISWrapper**, reportez-vous d'​abord à la procédure générale de **[[:​wifi|configuration d'une interface réseau Wifi]]**.
  
-Avant de continuer vous devez connaître la marque et le modèle exacts de votre carte Wi-Fi, ce qui pourra être utile en cas de cd de pilote "​multi-modèles"​. ​La documentation précédente doit vous permettre de le connaître.+Avant de continuer vous devez connaître la marque et le modèle exacts de votre carte Wi-Fi, ce qui pourra être utile en cas de CD de pilote "​multi-modèles"​. ​Voir [[:​wifi_liste_carte#​identifier_votre_carte_wi-fi|ce chapitre]] pour vous permettre de le connaître.
  
-Avant de pouvoir installer les pilotes Windows avec NDISWrapper,​ vous devez les télécharger ou utiliser ceux fournis sur le CD d'​installation de votre carte réseau. En général il est aussi donné sur le site de la marque de votre carte Wi-Fi ou de votre ordinateur sous le nom de "​Pilote de carte réseau local sans fil".+Avant de pouvoir installer les pilotes Windows avec **NDISWrapper**, vous devez les télécharger ou utiliser ceux fournis sur le CD d'​installation de votre carte réseau. En général il est aussi donné sur le site de la marque de votre carte Wi-Fi ou de votre ordinateur sous le nom de "​Pilote de carte réseau local sans fil".
  
 <​note>​Vous pouvez trouver quelques pilotes Windows NDIS testés sous Linux sur la [[http://​www.linuxant.com/​driverloader/​|page de Linuxant]] (lien //Windows Drivers// à gauche).</​note>​ <​note>​Vous pouvez trouver quelques pilotes Windows NDIS testés sous Linux sur la [[http://​www.linuxant.com/​driverloader/​|page de Linuxant]] (lien //Windows Drivers// à gauche).</​note>​
Ligne 31: Ligne 31:
 ==== Récupération du fichier .inf du pilote Wi-Fi ==== ==== Récupération du fichier .inf du pilote Wi-Fi ====
  
-<note important>​Choisissez impérativement la version 32 bits du pilote pour Windows (même si vous utilisez Linux ou Windows 64 bits) pour ne pas avoir un pilote 64 bits (qui est incompatible avec Ndiswrapper,​ même sous Linux 64 bits). +<note important>​Choisissez impérativement la version 32 bits du pilote pour Windows (même si vous utilisez Linux ou Windows 64 bits) pour ne pas avoir un pilote 64 bits (qui est incompatible avec Ndiswrapper,​ même sous Linux 64 bits).\\
 Si votre pilote est incompatible changer légèrement le modèle de votre ordinateur pour pouvoir essayer d'​autres pilotes</​note>​ Si votre pilote est incompatible changer légèrement le modèle de votre ordinateur pour pouvoir essayer d'​autres pilotes</​note>​
  
-Commençons par créer un dossier **install_wifi** dans votre dossier personnel.+Commençons par créer un dossier **install_wifi** dans votre dossier personnel.\\
  
-Le fichier que nous cherchons est un fichier **.inf**, mais il est rarement disponible directement sous cette forme.+Le fichier que nous cherchons est un fichier **.inf**, mais il est rarement disponible directement sous cette forme.\\ 
 +Quand vous ouvrez votre CD d'​installation du pilote, ou si le pilote est sous forme d'un dossier compressé, vous trouverez peut-être un dossier Drivers, ou pilote, avec à l'​intérieur plusieurs dossiers dans le style : Windows Me, Windows 2000, Windows XP. Dans ce cas prenez tous les fichiers du dossier Windows XP (ou windows 2000 si vous n'avez pas de dossier Windows XP), et déplacez-les dans votre dossier **install_wifi** fraîchement créé.
  
-Quand vous ouvrez votre CD d'​installation du pilote, ou si le pilote est sous forme d'un dossier compressé, vous trouverez peut-être un dossier Drivers, ou pilote, avec à l'​intérieur plusieurs dossiers dans le style : Windows Me, Windows 2000, Windows XP se trouveront... Dans ce cas prenez ​tous les fichiers ​du dossier ​Windows XP (ou windows 2000 si vous n'avez pas de dossier Windows XP), et déplacez-les ​dans votre dossier ​**install_wifi** fraichement créé.+<note important>​**Prenez bien garde à prendre ​tous les fichiers ​contenus dans le même dossier ​que le fichier .inf dans votre déplacement de fichiers !!**\\ 
 +Le fichier ​**.inf** n'​étant qu'un fichier texte faisant référence aux autres fichiers contenus dans le même dossier que lui !</​note>​
  
-<note important>​**Prenez bien garde à prendre tous les fichiers contenus dans le même dossier que le .inf dans votre déplacement de fichiers !!** +Si vous ne trouvez pas de dossier comprenant de fichiers ​**.inf** dans votre CD d'​installation,​ ou en téléchargement sur le site du constructeur,​ le pilote doit être contenu à l'​intérieur même du fichier .exe du pilote. Déplacez ​donc ce .exe dans le dossier **install_wifi** ...
- +
-Le fichier .inf n'​étant qu'un fichier texte faisant référence aux autres fichiers contenus dans le même dossier que lui !</​note>​ +
- +
-Si vous ne trouvez pas de dossier comprenant de fichiers .inf dans votre CD d'​installation,​ ou en téléchargement sur le site du constructeur,​ le pilote doit être contenu à l'​intérieur même du fichier .exe du pilote, déplacez ​donc ce .exe dans le dossier **install_wifi** ...+
  
 === Décompression du fichier .exe pour obtenir le .inf === === Décompression du fichier .exe pour obtenir le .inf ===
 +//Si vous avez déjà le fichier .inf, cette étape est donc inutile, vous pouvez directement passer à l'​installation.//​
  
-Si vous disposez d'un .exe comme pilote vous devez le décompresser pour obtenir le .inf nécessaire à l'​installation du pilote. +Si vous ne disposez ​que d'un .exe comme pilote ​sans fichier **.inf**, ​vous devez le décompresser pour obtenir le .inf nécessaire à l'​installation du pilote. 
- +  ​- ​[[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​cabextract|cabextract]]** **[[apt>​unshield|unshield]]** 
-Si vous avez déjà le .inf, cette étape est donc inutile, vous pouvez directement passer à l'​installation. +  - Se positionner dans le dossier **install_wifi** que vous aviez créé précédemment à l'aide de la commande **[[:​console#​cd|cd]]**:​ Pour cela, ouvrez ​un **[[terminal]]** et tapez la [[:commande_shell|commande]] :<​code>​cd ~/​install_wifi</​code> ​ 
- +  ​- ​Décompressez le fichier .exe en tapant dans le même [[:terminal]] ceci: <​code>​cabextract <​nom_du_fichier.exe></​code
-Après avoir activé les [[dépôts]] Universe (actif par défaut depuis Ubuntu 7.04), ​[[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​cabextract|cabextract]]** **[[apt>​unshield|unshield]]** +    ​* ​Si aucun fichier n'​apparaît dans votre dossier install_wifi,​ essayez de taper ceci après:<​code>​unshield <​nom_du_fichier.exe></​code
- +    ​* ​Si rien n'​apparaît non plus après ceci, il vous reste l'​ultime méthode:\\ Cette méthode consiste à installer le pilote avec [[:Wine]], puis de se rendre dans le dossier : **~/​.wine/​drive_c/​windows/​inf** et de récupérer les fichiers qui s'y trouvent pour les mettre dans votre dossier install_wifi,​ allez ensuite dans le dossier: **~/​.wine/​drive_c/​windows/​system32/​drivers** et copiez aussi le contenu dans install_wifi. 
-Ouvrez ​un **[[terminal]]** et tapez : +  ​- ​Ensuite allez dans votre dossier **install_wifi** et faites un peu de rangement si vous avez des dossiers résultants de la décompression du .exe, déplacez tous les fichiers contenus dans ces dossiers directement dans install_wifi. ​\\ Ne faites pas ça pour les sous-dossiers (les dossiers dans les dossiers), mais seulement pour les dossiers.
- +
-  ​cd ~/​install_wifi +
- +
-pour aller dans le dossier install_wifi que vous aviez créé précédemment. +
- +
-Décompressez le fichier .exe en tapant dans le même terminal ceci : +
- +
-  ​cabextract <​nom_du_fichier.exe>​ +
- +
-Si aucun fichier n'​apparaît dans votre dossier install_wifi,​ essayez de tapez ceci après : +
- +
-  ​unshield <​nom_du_fichier.exe>​ +
- +
-Si rien n'​apparaît non plus après ceci, il vous reste l'​ultime méthode : +
- +
-Cette méthode consiste à installer le pilote avec [[:Wine]], puis de se rendre dans le dossier : **~/​.wine/​drive_c/​windows/​inf** et de récupérer les fichiers qui s'y trouvent pour les mettre dans votre dossier install_wifi,​ allez ensuite dans le dossier: **~/​.wine/​drive_c/​windows/​system32/​drivers** et copiez aussi le contenu dans install_wifi. +
- +
-Ensuite allez dans votre dossier **install_wifi** et faites un peu de rangement si vous avez des dossiers résultants de la décompression du .exe, déplacez tous les fichiers contenus dans ces dossiers directement dans install_wifi. +
- +
-Ne faites pas ça pour les sous-dossiers (les dossiers dans les dossiers), mais seulement pour les dossiers.+
  
-Il est conseillé de garder ​ce dossier précieusement,​ car il vous sera utile dans le cas d'une réinstallation,​ ou d'une mise à jour importante.+Garder ​ce dossier ​**install_wifi** ​précieusement,​ car il vous sera utile dans le cas d'une réinstallation,​ ou d'une mise à jour importante ​de votre distribution.
  
 ===== Installation de NDISWrapper ===== ===== Installation de NDISWrapper =====
  
-Il existe deux méthodes pour installer Ndiswrapper : la plus simple et la plus pratique est d'​installer le paquet se trouvant dans les dépôts (malheureusement, la version disponible est parfois un peu ancienne) ou alors il vous faut compiler manuellement à partir des sources (bien entendu on ne peut pas faire les deux en même temps !).+Il existe deux méthodes pour installer ​**Ndiswrapper**: la plus simple et la plus pratique est d'​installer le paquet se trouvant dans les [[:depots|dépôts ​Ubuntu]] ​(mais selon l'​avancée du développement de **Ndiswrapper**, la version disponible est parfois un plus ancienne) ou alors il vous faut compiler manuellement à partir des sources (bien entendu on ne peut pas faire les deux en même temps !).
  
-<note important>​Si vous avez des freezes ( sessions gelées ) lors de l'​utilisation de Ndiswrapper session internet ou même de la session, désinstaller complètement Ndiswrapper <​code>​sudo apt-get remove ndiswrapper --purge</​code>​ puis installer la dernière version avec la méthode de compilation. C'est très simple, il suffit de lire.</​note>​+<note important>​Si vous avez des freezes ( sessions gelées ) lors de l'​utilisation de **Ndiswrapper** session internet ou même de la session, désinstaller complètement ​**Ndiswrapper** <​code>​sudo apt-get remove ndiswrapper --purge</​code>​ puis installer la dernière version avec la méthode de compilation. C'est très simple, il suffit de lire.</​note>​
  
- +==== Via les dépôts ​Ubuntu====
- +
-==== Installation via les dépôts ====+
  
 [[tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​ndiswrapper-utils-1.9|ndiswrapper-utils-1.9]]**. [[tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​ndiswrapper-utils-1.9|ndiswrapper-utils-1.9]]**.
  
-<​note>​ Pour ceux qui ne disposent pas de connexion internet, ces paquets se trouvent sur le CD d'​installation (desktop cd, alternate, ou le dvd) de votre version d'​Ubuntu (dans ce cas, ne pas oublier d'​[[depots#​ajouter_un_cd-rom_comme_depot|ajouter le cd-rom comme dépôt]], s'il n'y est pas déjà) vous pouvez copier ces fichiers ( Ndiswrapper du cd d'​ubuntu dans votre dossier personnel et lancer la commande <​code>​sudo dpkg -i ndiswrapper*.deb</​code></​note>​ +===Connexion internet non opérationnelle====
- +
-==== Installation par Compilation ==== +
- +
-La compilation peut être nécessaire lorsqu'​on change de noyau ou lorsque l'on désire installer une version de NDISWrapper autre que celle présente dans Synaptic (la plus récente par exemple, actuellement la 1.54). N'​oubliez pas que vous devrez recompiler NDISWrapper à chaque mise à jour ou changement de noyau. +
- +
-Tout d'​abord,​ assurez-vous qu'​aucune autre version ne soit déjà installée. Si c'est le cas, commencez par désinstaller l'​ancienne version de NDISWrapper et faites le ménage dans les fichiers de configuration (cf § [[:​ndiswrapper#​desinstallation|Désinstallation]]). +
- +
-Pour compiler, [[:​tutoriel:​comment_installer_un_paquet|installez d'​abord les paquets]] **linux-headers-`uname -r` dh-make fakeroot build-essential** +
- +
-<​note>​Pour une installation graphique remplacez `uname -r` par la version de votre noyau (donnée par cette même commande : uname -r)</​note>​ +
- +
-Ensuite, on télécharge NDISWrapper sur le site officiel : \\ +
-[[http://​sourceforge.net/​projects/​ndiswrapper/​]]  +
- +
-NDISWrapper se trouve sous la forme d'une tarball (.tar.gz). Placez ce fichier dans votre dossier personnel. On va décompresser cette archive, un répertoire portant alors le nom de //​ndiswrapper-(Version)//​ va être créé ; on se place ensuite dedans.  +
-Pour cela, ouvrez un terminal et tapez : +
-<​code>​tar zxvf ndiswrapper-(Version).tar.gz +
-cd ndiswrapper-<​Version></​code>​ +
- +
- +
- +
---------------------- +
- +
-<note tip>Il se peut que vous n'​arriviez pas à compiler NDISWrapper dans Ubuntu Intrepid avec le kernel 2.6.27. +
-Il faut alors patcher les fichiers sources de NDISwrapper.</​note>​ +
- +
-Manipulation pour patcher NDISWrapper à effectuer après cd ndiswrapper-<​Version>​ : +
-<​code>​gedit ndiswrapper_kernel_2.6.27.patch</​code>​ +
-coller ceci : +
-<​code>​diff -aur driver.old/​iw_ndis.c driver/​iw_ndis.c +
---- driver.old/​iw_ndis.c 2008-08-04 21:​10:​16.000000000 +0200 +
-+++ driver/​iw_ndis.c 2008-08-04 21:​30:​12.000000000 +0200 +
-@@ -1015,7 +1015,7 @@ +
- ​ return 0; +
- } +
-  +
--static char *ndis_translate_scan(struct net_device *dev, char *event, +
-+static char *ndis_translate_scan(struct net_device *dev, struct iw_request_info *info, char *event, +
-  char *end_buf, void *item) +
- { +
- ​ struct iw_event iwe; +
-@@ -1034,7 +1034,7 @@ +
- ​ iwe.u.ap_addr.sa_family = ARPHRD_ETHER;​ +
- ​ iwe.len = IW_EV_ADDR_LEN;​ +
- ​ memcpy(iwe.u.ap_addr.sa_data,​ bssid->​mac,​ ETH_ALEN);​ +
-- event = iwe_stream_add_event(event,​ end_buf, &iwe, IW_EV_ADDR_LEN);​ +
-+ event = iwe_stream_add_event(info,​ event, end_buf, &iwe, IW_EV_ADDR_LEN);​ +
-  +
-  /* add essid */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1044,13 +1044,13 @@ +
- ​ iwe.u.data.length = IW_ESSID_MAX_SIZE;​ +
- ​ iwe.u.data.flags = 1; +
- ​ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;​ +
-- event = iwe_stream_add_point(event,​ end_buf, &iwe, bssid->​ssid.essid);​ +
-+ event = iwe_stream_add_point(info,​ event, end_buf, &iwe, bssid->​ssid.essid);​ +
-  +
-  /* add protocol name */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
- ​ iwe.cmd = SIOCGIWNAME;​ +
- ​ strncpy(iwe.u.name,​ network_type_to_name(bssid->​net_type),​ IFNAMSIZ);​ +
-- event = iwe_stream_add_event(event,​ end_buf, &iwe, IW_EV_CHAR_LEN);​ +
-+ event = iwe_stream_add_event(info,​ event, end_buf, &iwe, IW_EV_CHAR_LEN);​ +
-  +
-  /* add mode */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1061,7 +1061,7 @@ +
- ​ iwe.u.mode = IW_MODE_INFRA;​ +
-  else // if (bssid->​mode == Ndis802_11AutoUnknown) +
- ​ iwe.u.mode = IW_MODE_AUTO;​ +
-- event = iwe_stream_add_event(event,​ end_buf, &iwe, IW_EV_UINT_LEN);​ +
-+ event = iwe_stream_add_event(info,​ event, end_buf, &iwe, IW_EV_UINT_LEN);​ +
-  +
-  /* add freq */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1076,7 +1076,7 @@ +
-  /* convert from kHz to Hz */ +
- ​ iwe.u.freq.e += 3; +
- ​ iwe.len = IW_EV_FREQ_LEN;​ +
-- event = iwe_stream_add_event(event,​ end_buf, &iwe, IW_EV_FREQ_LEN);​ +
-+ event = iwe_stream_add_event(info,​ event, end_buf, &iwe, IW_EV_FREQ_LEN);​ +
-  +
-  /* add qual */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1090,7 +1090,7 @@ +
- ​ iwe.u.qual.noise = WL_NOISE; +
- ​ iwe.u.qual.qual ​ = i; +
- ​ iwe.len = IW_EV_QUAL_LEN;​ +
-- event = iwe_stream_add_event(event,​ end_buf, &iwe, IW_EV_QUAL_LEN);​ +
-+ event = iwe_stream_add_event(info,​ event, end_buf, &iwe, IW_EV_QUAL_LEN);​ +
-  +
-  /* add key info */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1101,7 +1101,7 @@ +
- ​ iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;​ +
- ​ iwe.u.data.length = 0; +
- ​ iwe.len = IW_EV_POINT_LEN;​ +
-- event = iwe_stream_add_point(event,​ end_buf, &iwe, bssid->​ssid.essid);​ +
-+ event = iwe_stream_add_point(info,​ event, end_buf, &iwe, bssid->​ssid.essid);​ +
-  +
-  /* add rate */ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
-@@ -1115,7 +1115,7 @@ +
-  if (bssid->​rates[i] & 0x7f) { +
- ​ iwe.u.bitrate.value = ((bssid->​rates[i] & 0x7f) * +
- ​  ​      ​500000);​ +
-- current_val = iwe_stream_add_value(event,​ current_val,​ +
-+ current_val = iwe_stream_add_value(info,​ event, current_val,​ +
- ​  ​  ​end_buf,​ &iwe, +
- ​  ​  ​IW_EV_PARAM_LEN);​ +
-  } +
-@@ -1128,13 +1128,13 @@ +
- ​ iwe.cmd = IWEVCUSTOM;​ +
- ​ sprintf(buf,​ "​bcn_int=%d",​ bssid->​config.beacon_period);​ +
- ​ iwe.u.data.length = strlen(buf);​ +
-- event = iwe_stream_add_point(event,​ end_buf, &iwe, buf); +
-+ event = iwe_stream_add_point(info,​ event, end_buf, &iwe, buf); +
-  +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
- ​ iwe.cmd = IWEVCUSTOM;​ +
- ​ sprintf(buf,​ "​atim=%u",​ bssid->​config.atim_window);​ +
- ​ iwe.u.data.length = strlen(buf);​ +
-- event = iwe_stream_add_point(event,​ end_buf, &iwe, buf); +
-+ event = iwe_stream_add_point(info,​ event, end_buf, &iwe, buf); +
-  +
- ​ TRACE2("​%d,​ %u", bssid->​length,​ (unsigned int)sizeof(*bssid));​ +
-  if (bssid->​length > sizeof(*bssid)) { +
-@@ -1155,7 +1155,7 @@ +
- ​ memset(&​iwe,​ 0, sizeof(iwe));​ +
- ​ iwe.cmd = IWEVGENIE;​ +
- ​ iwe.u.data.length = ielen; +
-- event = iwe_stream_add_point(event,​ end_buf, +
-+ event = iwe_stream_add_point(info,​ event, end_buf, +
- ​  ​    &​iwe,​ iep); +
- ​ } +
- ​ iep += ielen; +
-@@ -1236,7 +1236,7 @@ +
- ​ TRACE2("​%d",​ bssid_list->​num_items);​ +
- ​ cur_item = &​bssid_list->​bssid[0];​ +
-  for (i = 0; i < bssid_list->​num_items;​ i++) { +
-- event ​ndis_translate_scan(dev,​ event, +
-+ event ​ndis_translate_scan(dev,​ info, event, +
- ​  ​   extra + IW_SCAN_MAX_DATA,​ cur_item);​ +
- ​ cur_item ​(struct ndis_wlan_bssid *)((char *)cur_item + +
- ​  ​     cur_item->​length); ​    +
-</​code>​ +
-Et enregistrer.  +
-Vous pouvez également le télécharger [[http://​www.slackware.com/​~alien/​slackbuilds/​ndiswrapper/​build/​ndiswrapper_kernel_2.6.27.patch|ici]] mais il faudra l'​enregistrer dans le dossier ndiswrapper-<​Version>​. +
- +
-Ensuite taper cette commande : +
-<​code>​patch -p0 < ndiswrapper_kernel_2.6.27.patch</​code>​ +
-Si le patch a fonctionné,​ vous devriez voir: +
-<​code>​patching file driver/​iw_ndis.c +
-Hunk #11 succeeded at 1236 with fuzz 1. +
-</​code>​ +
- +
-<note tip>Fin du patch. Reprendre ici la compilation si le patch n'est pas nécessaire.</​note>​ +
----------------------+
  
-Enfin, maintenant que l'on se trouve dans le bon répertoireon passe à l'​installation ​proprement dite :+Pour ceux qui n'ont aucune possibilité de se connecter à internet, ces paquets se trouvent sur le [[:​tutoriel/​obtenir_cd_ubuntu|média d'​installation d'​Ubuntu (desktop dvdalternate, liveUSB)]] de votre [[:​versions|version d'​Ubuntu]]. Dans ce cas, 
 +  - Insérer le [[:​tutoriel/​obtenir_cd_ubuntu|média d'​installation ​d'​Ubuntu]] dans son lecteur (ou port USB pour un liveUSB): 
 +  - [[depots#​ajouter_un_cd-rom_comme_depot|Ajouter le cd-rom comme dépôt]];​ 
 +  - Si cela n'est pas fait automatiquement:​ [[:​tutoriel:​comment_modifier_sources_maj#​recharger_la_liste_des_paquets|rechargez la liste de vos paquets]];​ 
 +  - [[tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​ndiswrapper-utils-1.9|ndiswrapper-utils-1.9]]**.
  
-<​code>​make<​/code> +Vous pouvez aussi copier ces fichiers Ndiswrapper du [[:tutoriel/obtenir_cd_ubuntu|média d'​installation d'​Ubuntu]] ​dans votre dossier ​personnel ​et lancer la [[:commande_shell|commande]] ​<​code>​sudo ​dpkg -ndiswrapper*.deb</​code>​
-<​code>​sudo make uninstall</​code>​ +
-puis on déplace ce dossier ​dans le dossier ​/opt/ où il sera en sécurité, ​et on s'y rend : +
-<​code>​cd ..</​code>​ +
-<​code>​sudo ​mv ndiswrapper-<​version>​ /​opt/</​code>​ +
-<​code>​cd /opt/ndiswrapper-<​version></​code>​ +
-On installe ndiswrapper : +
-<​code>​sudo make install</​code>​+
  
-== Liens utiles ​==+==== Par compilation des sources ==== 
 +<note important>​N'​oubliez pas que vous devrez recompiler **NDISWrapper** à chaque mise à jour ou changement de noyau.</​note>​
  
-[[http://ndiswrapper.sourceforge.net/​mediawiki/index.php/Installation|guide d'​installation ​sur le site officiel]]+La compilation peut être nécessaire lorsque l'on met à jour le [[:​kernel|noyau]] ou lorsque l'on désire installer une version de **NDISWrapper** plus récente que celle présente dans les [[:​dépots|dépôts Ubuntu]] si elle existe.  
 +  - Tout d'​abord,​ assurez-vous qu'​aucune autre version ne soit déjà installée. Si c'est le cas, commencez par désinstaller l'​ancienne version de **NDISWrapper** et faites le ménage dans les fichiers de configuration (cf § [[:​ndiswrapper#​desinstallation|Désinstallation]]). 
 +  - Pour compiler, [[:​tutoriel:​comment_installer_un_paquet|installez d'​abord les paquets]] **[[apt>​linux-headers-`uname -r`,​dh-make,​fakeroot,​build-essential|linux-headers-`uname -r` dh-make fakeroot build-essential]]**  
 +    * Pour une installation graphique remplacez `uname -r` par la version de votre noyau (que vous pouvez obtenir par la [[:​commande_shell|commande]]:<​code>​uname -r''​**</​code>​ 
 +  - Ensuite, on télécharge **NDISWrapper** depuis le [[http://​sourceforge.net/​projects/ndiswrapper/|site officiel]]:​\\ **Ndiswrapper** se trouve sous la forme d'une [[:​archivage|archive tarball (.tar.gz)]].  
 +  - Placez ce fichier dans votre dossier personnel.  
 +  - On va décompresser cette archive, un dossier portant alors le nom de //​ndiswrapper-(Version)//​ va être créé ; \\ Pour décompresser l'​archive:​ Ouvrez un [[:​terminal]] et saisissez la [[:​commande_shell|commande]]<​code>​tar zxvf ndiswrapper-(Version).tar.gz</​code>​ 
 +  - On se place ensuite dedans avec la [[:​commande_shell|commande]]<​code>​cd ndiswrapper-<​Version></​code>​ 
 +  - Enfin, maintenant que l'on se trouve dans le bon dossier, on passe à l'​installation ​proprement dite: Toujours dans le [[:terminal]]:<​code>​make</​code>​ puis<​code>​sudo make uninstall</​code>​ 
 +  - puis on déplace ce dossier dans le dossier /opt/ où il sera en sécurité<​code>​cd ..</​code><​code>​sudo mv ndiswrapper-<​version>​ /​opt/</​code>​et on s'y rend:<​code>​cd /​opt/​ndiswrapper-<​version></​code>​ 
 +  - Pour terminer, on installe ndiswrapper :<​code>​sudo make install</​code>​
  
-[[https://​help.ubuntu.com/​community/​WifiDocs/​Driver/​Ndiswrapper|Guide d'​installation sur le wiki anglophone]].+=== Liens utiles === 
 +  * **(en)** [[http://​ndiswrapper.sourceforge.net/​mediawiki/​index.php/​Installation|guide d'​installation sur le site officiel]] 
 +  * **(en)** ​[[https://​help.ubuntu.com/​community/​WifiDocs/​Driver/​Ndiswrapper|Guide d'​installation sur le wiki anglophone]].
  
 ===== Configuration de NDISWrapper =====  ===== Configuration de NDISWrapper ===== 
Ligne 275: Ligne 103:
 ==== Procédure manuelle ==== ==== Procédure manuelle ====
  
-Premièrement,​ nous allons charger dans le système le pilote Windows que nous avons récupéré (cf. supra). Pour cela, ouvrez un terminal, ​placez-vous dans le répertoire ​où se trouvent les pilotes (avec les fichiers .sys etc., pas uniquement le fichier .inf) et tapez (le nom du fichier .inf dépend de votre pilote) : +Premièrement,​ nous allons charger dans le système le pilote Windows que nous avons récupéré ([[#​Récupération du fichier .inf du pilote Wi-Fi|cf. supra]]). Pour cela, ouvrez un [[:terminal]]positionnez-vous à l'aide de la commande **[[:​console#​cd|cd]]** ​dans le dossier ​où se trouvent les pilotes (avec les fichiers .sys etc., pas uniquement le fichier .inf) et tapez (le nom du fichier .inf dépend de votre pilote) : 
-<​code>​cd ​répertoire_où_se_trouve_le_pilote</​code>​+<​code>​cd ​<​dossier_où_se_trouve_le_pilote>​</​code>​
 Si vous avez suivi la documentation ça devrait être : Si vous avez suivi la documentation ça devrait être :
 <​code>​cd ~/​install_wifi</​code>​ <​code>​cd ~/​install_wifi</​code>​
  
-<​note>​ Pour la commande ndiswrapper il se peut que la commande ​soit légèrement différente,​ pour cela taper dans un terminal ndiswr puis demander une auto-complétion en appuyant plusieurs fois sur la touche TAB, pour activer l'​auto-complétion [[console#​optimiser_la_console|regarder ici]] </​note>​+<​note ​help> Pour la [[commande_shell|commande]] ndiswrapper il se peut que la syntaxe ​soit légèrement différente,​ pour cela taper dans un [[:terminal]] ''​**ndiswr**'' ​puis demander une [[:​console#​optimiser_la_console_auto-completion|auto-complétion]] en appuyant plusieurs fois sur la touche ​<TAB>.</​note>​
  
  
Ligne 298: Ligne 126:
 <​code>​sudo ndiswrapper -i votre_pilote.inf</​code>​ <​code>​sudo ndiswrapper -i votre_pilote.inf</​code>​
  
-<note importante>​ Le nom du fichier .inf est sensible à la casse ! N'​hésitez pas à utiliser la touche <Tab> pour compléter automatiquement le nom du fichier.</​note+<note importante>​ Le nom du fichier .inf est sensible à la casse ! N'​hésitez pas à utiliser la [[:​console#​optimiser_la_console_auto-completion|touche <Tab> pour compléter automatiquement le nom du fichier]].</​note>​
- +
-Pour vérifier que NDISWrapper a bien installé votre pilote, tapez la commande suivante : +
-<​code>​ndiswrapper -l</code>+
  
 +Pour vérifier que NDISWrapper a bien installé votre pilote, tapez la [[:​commande_shell|commande]] suivante:<​code>​ndiswrapper -l</​code>​
 Vous devriez voir un message dans le genre de celui-ci : Vous devriez voir un message dans le genre de celui-ci :
-<file>+<code>
 Installed ndis drivers: Installed ndis drivers:
 (votre_pilote) driver present, hardware present (votre_pilote) driver present, hardware present
-</file>+</code>
  
-Ensuite, nous allons créer un module pour le charger dans le noyau Linux. Ce module sera créé à partir du pilote Windows que nous avons chargé précédemment. Pour faire ceci, utilisez la commande suivante dans un terminal :+Ensuite, nous allons créer un module pour le charger dans le [[:kernel|noyau Linux]]. Ce module sera créé à partir du pilote Windows que nous avons chargé précédemment. Pour faire ceci, utilisez la [[:​commande_shell|commande]] suivante dans un [[:terminal]]:
 <​code>​sudo ndiswrapper -m</​code>​ <​code>​sudo ndiswrapper -m</​code>​
    
Ligne 315: Ligne 141:
 ==== Procédure graphique ==== ==== Procédure graphique ====
  
-Il existe un utilitaire ​dans le [[:​depots#​universe_et_multiverse|dépôt « Universe »]] qui se nomme **[[ndisgtk]]** et qui effectue la procédure ci-dessus de manière graphique. Après son installation,​ il se situera dans //Système -> Administration -> Windows Wireless Drivers//.+Il existe un utilitaire qui se nomme **[[ndisgtk]]** et qui effectue la procédure ci-dessus de manière graphique. Après son installation,​ il se situera dans //Système -> Administration -> Windows Wireless Drivers//.
  
 {{ materiel:​wifi:​ndisgtk.jpg }} {{ materiel:​wifi:​ndisgtk.jpg }}
Ligne 329: Ligne 155:
 Vous êtes donc invité à l'​étudier dans [[:​ndiswrapper#​cas_particuliers|cette partie de la documentation]] ou sur le forum Ubuntu. Vous êtes donc invité à l'​étudier dans [[:​ndiswrapper#​cas_particuliers|cette partie de la documentation]] ou sur le forum Ubuntu.
  
-Une fois que vous savez lequel c'est, il vous faut entrer la commande suivante pour décharger ce module :+Une fois que vous savez lequel c'est, il vous faut entrer la [[:​commande_shell|commande]] suivante pour décharger ce module :
 <​code>​sudo modprobe -r nom_du_module_à_blacklister</​code>​ <​code>​sudo modprobe -r nom_du_module_à_blacklister</​code>​
 Par exemple pour le chipset bcm43xx Par exemple pour le chipset bcm43xx
Ligne 335: Ligne 161:
 Les commandes ci-dessus déchargent les modules pour la session en cours et il faut qu'au prochain démarrage ces modules ne se chargent pas. Il faut donc les blacklister [[:​ndiswrapper#​cas_particuliers| voir la partie cas particuliers]] Les commandes ci-dessus déchargent les modules pour la session en cours et il faut qu'au prochain démarrage ces modules ne se chargent pas. Il faut donc les blacklister [[:​ndiswrapper#​cas_particuliers| voir la partie cas particuliers]]
  
- +Nous allons maintenant tester si le module que nous venons de créer fonctionne. Pour cela, on va le charger dynamiquement dans le noyau avec la [[commande_shell|commande]] suivante :
-Nous allons maintenant tester si le module que nous venons de créer fonctionne. Pour cela, on va le charger dynamiquement dans le noyau avec la commande suivante :+
 <​code>​sudo modprobe ndiswrapper</​code>​ <​code>​sudo modprobe ndiswrapper</​code>​
  
-Si tout s'est bien passé, vous devriez avoir une interface //eth1// ou //wlan0// existante. Vous pouvez vérifier cela en tapant //​iwconfig//​ dans un terminal ou en allant dans le menu **Système -> Administration -> Réseau**.+Si tout s'est bien passé, vous devriez avoir une interface //eth1// ou //wlan0// existante. Vous pouvez vérifier cela en tapant //​iwconfig//​ dans un [[:terminal]] ou en allant dans le menu **Système -> Administration -> Réseau**.
  
 <​note>​ Si ce n'est pas le cas, essayez de décharger le module et rechargez-le : ''​sudo modprobe -r ndiswrapper''​ puis ''​sudo modprobe ndiswrapper''​.</​note>​ <​note>​ Si ce n'est pas le cas, essayez de décharger le module et rechargez-le : ''​sudo modprobe -r ndiswrapper''​ puis ''​sudo modprobe ndiswrapper''​.</​note>​
-<​note>​Sur Ubuntu 12.04, vous risquez d'​avoir ce message d'​erreur : **FATAL: Module ndiswrapper not found**. Dans ce cas, installez le paquet ndiswrapper-dkms puis rechargez le module :<​code>​sudo apt-get install ndiswrapper-dkms+<​note>​Sur ​[[:precise|Ubuntu ​Precise ​12.04]], vous risquez d'​avoir ce message d'​erreur : **FATAL: Module ndiswrapper not found**. Dans ce cas, installez le paquet ndiswrapper-dkms puis rechargez le module :<​code>​sudo apt-get install ndiswrapper-dkms
 sudo modprobe ndiswrapper</​code></​note>​ sudo modprobe ndiswrapper</​code></​note>​
  
 === Charger automatiquement NDISWrapper au démarrage du système === === Charger automatiquement NDISWrapper au démarrage du système ===
  
-Pour que NDISWrapper se charge à chaque démarrage, il suffit d'​ajouter une ligne contenant **ndiswrapper** à la fin du fichier « /​etc/​modules ». Faites-le manuellement ou tapez :+Pour que NDISWrapper se charge à chaque démarrage, il suffit d'​ajouter une ligne contenant **ndiswrapper** à la fin du fichier « /​etc/​modules ». Faites-le manuellement ou exécutez la [[:​commande_shell|commande]] suivante dans un [[terminal]]: ​:
 <​code>​echo "​ndiswrapper"​|sudo tee -a /​etc/​modules</​code>​ <​code>​echo "​ndiswrapper"​|sudo tee -a /​etc/​modules</​code>​
  
 === Charger automatiquement NDISWrapper au démarrage du système pour la 11.10 Oneiric avec Unity=== === Charger automatiquement NDISWrapper au démarrage du système pour la 11.10 Oneiric avec Unity===
  
-Dans ce cas, il faut lancer le chargement du module NDISwrapper en utilisant le script de démarrage /​etc/​rc.local. Pour ce faire éditer le fichier /​etc/​rc.local  +Dans ce cas, il faut lancer le chargement du module NDISwrapper en utilisant le script de démarrage /​etc/​rc.local. Pour ce faire
-<​code>​sudo gedit /​etc/​rc.local</​code>​ +  - [[:​tutoriel/​comment_modifier_un_fichier|éditer]] le fichier /​etc/​rc.local 
-Insérer la commande +  ​- ​Insérer la commande<​file>/​sbin/​modprobe ndiswrapper &</file>Devant la commande <file>exit 0</file> 
-<code>/​sbin/​modprobe ndiswrapper &</code> +  - Enregister et fermer le fichier. 
-Devant la commande <code>exit 0</code>+
 ===== Vérification de l'​installation ===== ===== Vérification de l'​installation =====
 ==== L'​ordre d'​exécution des commandes ==== ==== L'​ordre d'​exécution des commandes ====
Ligne 370: Ligne 195:
  
 ==== Les réponses des commandes ==== ==== Les réponses des commandes ====
-La commande magique ndiswrapper -l n'est pas là pour faire jolie, c'est elle qui vous indique que l'​installation du pilote s'est bien passée **ou pas**. Si la réponse est : \\+La [[:​commande_shell|commande]] magique ​**''​ndiswrapper -l''​** ​n'est pas là pour faire jolie, c'est elle qui vous indique que l'​installation du pilote s'est bien passée **ou pas**. Si la réponse est : \\
 Installed ndis drivers: \\ Installed ndis drivers: \\
 (votre_pilote) driver present, hardware present \\ (votre_pilote) driver present, hardware present \\
Ligne 399: Ligne 224:
  
 ==== Suppression du pilote ==== ==== Suppression du pilote ====
-On désinstalle le pilote : +Depuis un [[terminal]] avec les [[commande_shell|commandes]] suivantes:​ 
-<​code>​sudo ndiswrapper -r <​nomdudriver></​code>​ +  - On désinstalle le pilote :<​code>​sudo ndiswrapper -r <​nomdudriver></​code>​ 
- +  - et Puis, on décharge le module du noyau :<​code>​sudo modprobe -r ndiswrapper</​code>​
-Puis, on décharge le module du noyau : +
-<​code>​sudo modprobe -r ndiswrapper</​code>​ +
  
 ==== Désinstaller NDISWrapper ==== ==== Désinstaller NDISWrapper ====
-Ouvrez ​le fichier « /​etc/​modules » en mode super-utilisateur et supprimez **ndiswrapper** à la fin du fichier. +  - [[:​tutoriel/​comment_modifier_un_fichier|Éditez ​le fichier]] « /​etc/​modules » en mode [[:sudo|super-utilisateur]] et supprimez **ndiswrapper** à la fin du fichier. 
- +  - Depuis un [[terminal]] avec les [[commande_shell|commandes]] suivantes on désinstalle ​**NDISWrapper**:<​code>​sudo modprobe -r ndiswrapper
-On désinstalle NDISWrapper : +
-<​code>​sudo modprobe -r ndiswrapper+
 sudo apt-get remove ndiswrapper-utils --purge</​code>​ sudo apt-get remove ndiswrapper-utils --purge</​code>​
- +Avec la méthode compilation il vous faut vous déplacer dans le dossier :<​code>​cd /​opt/​ndiswrapper-<​version></​code>​ 
-Avec la méthode compilation il vous faut vous déplacer dans le dossier : +Puis désinstaller :<​code>​sudo make uninstall</​code>​
-<​code>​cd /​opt/​ndiswrapper-<​version></​code>​ +
-Puis désinstaller : +
-<​code>​sudo make uninstall</​code>​ +
  
 ==== Suppression des traces résiduelles ==== ==== Suppression des traces résiduelles ====
-[[:​tutoriel:​comment_supprimer_un_paquet|Supprimez le paquet]] **ndiswrapper-utils, ​ndiswrapper-utils-1.8 ou ndiswrapper-utils-1.9** selon votre version d'​Ubuntu.+[[:​tutoriel:​comment_supprimer_un_paquet|Supprimez le paquet]] **ndiswrapper-utils,​ ndiswrapper-utils-1.9** selon votre version d'​Ubuntu.
  
-Enfin, supprimez les "​résidus"​ d'​installation : +Enfin, supprimez les "​résidus"​ d'​installation ​avec les [[commande_shell|commandes]] suivantes siasies dans un [[:​terminal]]:<​code>​sudo rm -r /​etc/​ndiswrapper/ ​
-<​code>​sudo rm -r /​etc/​ndiswrapper/ ​+
 sudo rm -r /​etc/​modprobe.d/​ndiswrapper sudo rm -r /​etc/​modprobe.d/​ndiswrapper
 +sudo rm -r /​etc/​modprobe.d/​ndiswrapper.conf
 sudo rm /​lib/​modules/​`uname -r`/​kernel/​drivers/​net/​ndiswrapper/​ndiswrapper.ko</​code>​ sudo rm /​lib/​modules/​`uname -r`/​kernel/​drivers/​net/​ndiswrapper/​ndiswrapper.ko</​code>​
  
Ligne 434: Ligne 250:
 ==== Carte « aveugle » ==== ==== Carte « aveugle » ====
  
-Il se peut que la carte ainsi configurée semble marcher mais ne voit jamais aucun réseau. Dans ce cas la commande <​code>​sudo iwlist wlan0 scan</​code>​ retourne <​code>​Aucun résultat</​code>​+Il se peut que la carte ainsi configurée semble marcher mais ne voit jamais aucun réseau. Dans ce cas la [[:​commande_shell|commande]] <​code>​sudo iwlist wlan0 scan</​code>​ retourne <​code>​Aucun résultat</​code>​
  
 <note important>​Cette erreur peut très bien ne pas être systématique ! C'​est-à-dire que vous pouvez avoir un truc qui marche plusieurs fois, et qui se met à ne plus marcher un jour, pour un bon moment. </​note>​ <note important>​Cette erreur peut très bien ne pas être systématique ! C'​est-à-dire que vous pouvez avoir un truc qui marche plusieurs fois, et qui se met à ne plus marcher un jour, pour un bon moment. </​note>​
- 
 Une solution qui marche plutôt bien pour régler ce problème est de rajouter l'​option ''​irqpoll''​ au démarrage. Une solution qui marche plutôt bien pour régler ce problème est de rajouter l'​option ''​irqpoll''​ au démarrage.
- +pour ce faire on [[:​tutoriel/​comment_modifier_un_fichier|édite le fichier]] ''/​boot/​grub/​menu.lst''​ et on rajoute ''​irqpoll''​ à la fin de la ligne kernel que l'on lance.
-pour ce faire on édite le fichier ''/​boot/​grub/​menu.lst''​ et on rajoute ''​irqpoll''​ à la fin de la ligne kernel que l'on lance.+
  
 <​code>​ <​code>​
Ligne 489: Ligne 303:
  
 ===Chipset ​ BCM4318, BCM4318=== ===Chipset ​ BCM4318, BCM4318===
-== Pour la version Gutsy et inférieur ​de Ubuntu ==+== Pour la version Gutsy et inférieure ​de Ubuntu ==
  
 Il faut éditer le fichier /​etc/​modprobe.d/​blacklist et rajouter à la fin Il faut éditer le fichier /​etc/​modprobe.d/​blacklist et rajouter à la fin


Le contenu de ce wiki est sous licence : CC BY-SA v3.0