Configurer le wifi sous Linux peut s'avérer déroutant pour un débutant, c'est pourquoi j'ai rédigé ce petit document expliquant brièvement :
1- Les causes potentielles de non reconnaissance directe du matériel
2- Les outils « standard » permettant de configurer sa connexion selon le type de cryptage en jeu.
Pour gagner en lisibilité, ce document sera découpé en 8 parties :
1- Vérifier si le périphérique WiFi est directement reconnu par le noyau
2- Que faire si votre périphérique n'est pas directement reconnu
3- Vérification de la nécessité d'un firmware
4- Configuration du WiFi pour une connexion sans cryptage
5- Configuration du WiFi pour une connexion basée sur un cryptage WEP
6- Configuration du WiFi pour une connexion basée sur un cryptage WPA
7- Annexe 1 : Configurer l'adressage de votre interface une fois le WiFi configuré
8- Annexe 2 : Comment demander de l'aide sur le forum si vous ne parvenez pas à configurer votre connexion malgré ce document
1- Vérifier si le périphérique WiFi est directement reconnu par le noyau
On distingue deux types de matériels Wifi : ceux pour lesquels il existe un pilote libre développé par la communauté ou le constructeur et ceux qui n'en ont pas. Les noyaux récents (>= 2.6.24) incluent un grand nombre de pilotes pour divers types d'équipements Wifi (pci, pcmcia, usb,...), ce qui implique que votre matériel est directement reconnu par le système d'exploitation.
Vous pouvez vérifier que c'est bien le cas grâce à la commande :
qui, si votre matériel est bien reconnu, devrait vous indiquer une interface wifi.
2- Que faire si votre périphérique n'est pas directement reconnu
Si ce n'est pas le cas, vous faites partie des malchanceux qui disposent d'un périphérique n'ayant pas de pilotes libres disponibles dans le noyau, ou pire n'ayant pas de pilotes libres tout court !
Si vous êtes dans le premier cas, il est possible qu'un pilote libre ait été développé mais n'ait pas encore intégré le noyau (car encore trop récent, pas assez stable, ou autre...). Pour vérifier cela, il va falloir chercher un peu (Google est votre ami, vous connaissez la rengaine... ^^). Pour être plus efficace dans votre recherche, vous pouvez vous aider de la commande :
$ lspci
qui liste tous vos périphériques pci/pcmcia (à utiliser donc si vous avez une carte wifi pci ou pcmcia), ou encore :
$ lsusb
qui liste tous vos périphériques USB (à utiliser si vous utilisez un dongle wifi USB).
À vous de retrouver parmi la liste d'équipements renvoyée, quel est votre périphérique wifi (généralement c'est assez explicite), vous récupérerez ainsi la référence précise du chipset (la puce) qu'utilise votre dongle/carte. Muni de cette référence une petit recherche sur http://www.google.fr/linux et sur les forums de distributions populaires telles que Ubuntu, Gentoo, Archlinux, etc. devrait vous indiquer si un pilote libre existe pour votre matériel.
Si c'est le cas, le gestionnaire de paquet de votre distribution devrait vous permettre de l'installer et votre matériel sera alors reconnu (un petit coup de iwconfig pour le vérifier ^^), si ce n'est pas le cas, il faudra alors se servir du programme ndiswrapper pour utiliser le pilote propriétaire de Windows sous Linux.
/!\ Attention : ndiswrapper n'est pas une bonne solution puisqu'elle consiste à utiliser un pilote Windows via une couche d'émulation sous Linux ! En conséquence, ça ne fonctionne pas toujours et lorsque ça marche, il n'est pas rare que ça marche mal ! Donc avant de vous rabattre sur ndiswrapper, cherchez *longuement* à trouver un pilote conçu pour Linux !
L'utilisation de ndiswrapper est bien documentée, généralement son utilisation consiste en :
1- Placer le pilote Windows (fichier .inf) dans un répertoire.
2- Se positionner dans ce répertoire et exécuter en root :
3- Vérifier que le pilote est correctement pris en charge par ndiswrapper :
Vérifier alors via iwconfig que vous disposez bien d'une interface wifi.
3- Vérification de la nécessité d'un firmware
Si vous êtes arrivé jusqu'ici, vous devez disposez d'une interface wifi reconnue quel que soit votre matériel. Il ne vous reste plus qu'à configurer correctement votre connexion désormais.
Mais avant de détailler cette étape, il se peut qu'un autre problème se pose. En effet, certains périphériques wifi nécessite, en plus du pilote (qui fonctionne au niveau de l'OS), un firmware (bout de code chargé au niveau du périphérique) souvent propriétaire (donc non intégré au noyau) pour fonctionner.
Si c'est le cas de votre matériel, le noyau devrait vous l'indiquer lors qu chargement du module via un message du type : « firmware_error : firmware bla_bla_bla.bin is missing in /usr/lib/firmware/ ». Pour voir les messages de votre noyau, vous pouvez utiliser la commande :
$ dmesg
Si vous êtes dans ce cas, vous pouvez effectuer une recherche sur Google et les forums sus-citésafin de savoir où se procurer le firmware nécessaire (généralement vous pouvez le télécharger via votre gestionnaire de paquet).
Une fois le firmware en place (généralement dans /usr/lib/firmware mais ce n'est pas une vérité générale !) votre noyau ne devrait plus crier lors du chargement du pilote. Vous pouvez alors passer à l'étape de configuration.
4- Configuration du WiFi pour une connexion sans cryptage
Il existe de nombreux outils de configuration, la plupart sont graphiques et propres à un environnement (Gnome, KDE, autre...). Ces outils ne sont généralement rien de plus qu'une interface à des outils en ligne de commande. Je détaillerai ici uniquement ces derniers car :
1- Ils sont plus généraux/portables (i.e. ne dépendent pas d'une distribution ou d'un environnement de bureau).
2- Je ne connais pas les outils graphiques.
3- les outils graphiques font semblant de marcher même quand il y a une erreur de configuration.
Il existe deux outils fondamentaux pour gérer votre connexion wifi :
1- iwconfig pour configurer une connexion sans cryptage ou basée sur un cryptage WEP.
2- wpa_supplicant pour configurer une connexion basée sur un cryptage WPA.
Avant de commencer la configuration de votre connexion, munissez vous des informations indispensables suivantes :
1- L'ESSID de votre point d'accès (que l'on notera MONESSID, adaptez à votre cas !)
2- La clef WEP ou WPA utilisée
Dans la suite nous supposerons que votre interface wifi se nomme eth1 (adaptez à votre cas !).
Premier cas : vous souhaitez configurer une connexion sans cryptage, la seule chose que vous avez à faire est de définir l'ESSID. Pour cela, il suffit d'exécuter :
Une fois ceci fait, il ne vous reste plus qu'à configurer votre addressage (dhcp ou statique, cf. annexes)
5- Configuration du WiFi pour une connexion basée sur un cryptage WEP
Deuxième cas : vous souhaitez configurer une connexion utilisant un cryptage WEP, il faut alors procéder en deux temps :
Tout d'abord définir l'ESSID comme précédemment :
Puis définir la clef WEP. Deux cas sont à envisager :
1- Votre clef WEP est en hexadécimal (on la notera 1234abcd, adaptez à votre cas !), il faut alors la définir à l'aide de la commande :
2- Votre clef WEP est un code ASCII (on la notera mon-mot-de-passe), il faut alors la définir à l'aide de la commande :
Une fois ceci fait, il ne vous reste plus qu'à configurer votre addressage (dhcp ou statique, cf. annexes)
6- Configuration du WiFi pour une connexion basée sur un cryptage WPA
Troisième cas : vous souhaitez configurer une connexion utilisant un cryptage WPA, il faut alors utiliser l'outil wpa_supplicant (installez le via votre gestionnaire de paquet si vous ne l'avez pas déjà).
wpa_supplicant se base sur le fichier de configuration /etc/wpa_supplicant.conf pour fonctionner, voici un exemple configuration pour un cas simple de WPA-PSK :
=================================================
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
ssid="MONESSID"
psk="ma phrase secrète"
}
=================================================
Bien entendu adaptez l'ESSID et la phrase secrète à votre cas !
Pour des configurations plus exotiques du WPA, référez vous à la documentation de wpa_supplicant.
Une fois votre /etc/wpa_supplicant.conf correctement renseigné, exécutez :
Si l'opération réussit, il ne vous reste plus qu'à configurer votre addressage (dhcp ou statique, cf. annexes)
7- Annexe 1 : Configurer l'adressage de votre interface une fois le WiFi configuré
Une fois votre interface reconnue et votre connexion configurée, il ne vous reste plus qu'à régler l'adressage de votre interface. Deux cas sont envisageable :
1- L'adressage dynamique via dhcp (le plus simple)
2- L'adressage statique (demandant un peu plus de travail)
1- Selon votre distribution vous disposez soit du client dhcp : dhclient soit dhcpcd.
Exécutez alors soit :
Soit :
Si cette étape échoue, votre connexion wifi est mal configurée.
2- Pour configurer votre interface, il faut procéder en 3 temps (on supposera que l'ip de votre passerelle est 192.168.1.1 et que vous souhaitez attribuer l'adresse 192.168.1.10 à votre interface, adaptez à votre cas !) :
-- Tout d'abord attribuer une adresse à votre interface via l'outil ifconfig :
-- Ensuite configurer la route vers votre passerelle
-- Enfin, veillez à ce que le fichier /etc/resolv.conf contiennent l'adresse de vos DNS. Par exemple :
nameserver 192.168.1.1
8- Annexe 2 : Comment demander de l'aide sur le forum si vous ne parvenez pas à configurer votre connexion malgré ce document
Afin de recevoir les réponses les plus pertinentes le plus rapidement possible, un certain nombre d'informations sont à fournir lorsque vous demandez de l'aide sur le forum.1- Indiquer si le noyau a reconnu l'interface, pour cela veuillez poster le résultat des commandes :
et :
2- Indiquer si le noyau vous insulte lorsqu'il charge le pilote pour votre interface, pour cela veuillez poster le résultat de la commande :
3- Indiquer le chipset et le nom commercial de votre périphérique, pour cela veuillez poster le résultat de la commande :
$ lspci
s'il s'agit d'une carte wifi PCI ou PCMCIA, et
$ lsusb
s'il s'agit d'un dongle wifi USB.
4- La distribution que vous utilisez ainsi que la version de votre noyau, pour cela veuillez poster le résultat de la commande :
$ uname -a
5- Les différentes manipulation effectuées jusqu'alors pour configurer votre connexion Wifi.
C'est sympa de fournir au débutant de la doc pour installer le wifi sous linux. Quelques commentaires sur ton document.
Tu ne donnes jamais le résultat de iwconfig, donc le lecteur ne sait pas reconnaitre si la sortie de iwconfig contient une interface wifi ou non. De la meme facon, il faudrait lui dire comment reconnaitre le nom de l'interface.
Il serait utile d'expliquer au lecteur comment configurer automatiquement le reseau wifi à l'aide du fichier de configuration /etc/network/interface ou pourquoi pas de network manager.
Je l'ai dit au début, mais je le redit quand meme: gg :thumbup:
Merci.
Pour le premier point, tu as raison, j'aurais du détailler une sortie d'iwconfig et expliquer le contenu.
Pour le deuxième, j'y ai songé mais chaque distribution fait ça à sa sauce : /etc/network/interfaces pour Debian, /etc/rc.conf (si je me souviens bien... :/) pour Gentoo, etc.
Après les outils tels que network manager, knetwormanager, gnome-network-manager, je ne les connais pas du tout... Le mieux serait donc que des gens maîtrisant les arcanes de ces outils ou de leur distribution la complètent au fur et à mesure.
Merci bien Sankukai.
Je vais laisser ce sujet épinglé un petit moment.
Merci beaucoup pour ces informations, sans toi je serais encore en train de chercher comment faire
Super! Car c'est la principale raison pour laquelle j'ai arrêté Linux, faute de pouvoir surfer avec une clé USB Wifi. J'espère maintenant pouvoir résoudre ce problème. Merci!