Wi-Fi ne fonctionne pas sous Linux ? Voici comment le réparer !

L’un des grands défis auxquels les utilisateurs de Linux sont confrontés est le Wi-Fi. Les pilotes Wi-Fi ne sont souvent pas inclus dans le noyau, et par conséquent, il y a de nombreux problèmes pour faire fonctionner les modules Wi-Fi non Intel sous Linux. Ici, nous couvrons ce qui se passe lorsque le Wi-Fi ne fonctionne pas sur Linux et comment le réparer.
Table des matières
- Problèmes matériels vs. logiciels de Wi-Fi
- Installer des pilotes à partir de l’ISO d’Ubuntu
- Problème 1 : périphérique non détecté
- Problème 2 : module de pilote manquant
- Problème 3 : DNS
- Problème 4 : pas de gestionnaire de réseau
Astuce : apprenez comment trouver les mots de passe Wi-Fi enregistrés sous Linux.
Problèmes matériels vs. logiciels de Wi-Fi
Un problème de connexion Wi-Fi peut être soit un problème matériel, soit un problème logiciel. Les problèmes matériels sont relativement faciles à diagnostiquer : il vous suffit d’ouvrir le terminal et d’entrer la commande suivante :
ping localhost
C’est un moyen simple de vérifier si votre matériel physique fonctionne. localhost fonctionne comme une adresse pour vérifier le circuit de votre NIC. Si cela ne fonctionne pas, vous devrez peut-être faire des réparations sur le matériel, que ce soit par vous-même ou par quelqu’un d’autre.
Si ce ping revient propre, ou si vous ne voyez même pas votre carte Wi-Fi, vous avez probablement un problème logiciel.
En dehors de cela, vous pouvez également vérifier si votre système détecte une interface réseau active en exécutant ip addr. La plupart des distributions étiquettent les cartes sans fil actuellement actives comme “wl” suivi des numéros de bus et de slot sur la carte mère de l’ordinateur.
Par exemple, une étiquette de “wlp0s1” signifie qu’il s’agit d’une interface réseau sans fil sur le bus 0, slot 1.

Remarque : Si vous ne pouvez pas naviguer sur le web, vous devrez peut-être désactiver IPv6 sur votre machine Linux.
Installer des pilotes à partir de l’ISO d’Ubuntu
Si votre distribution ne détecte pas du tout votre réseau Wi-Fi, ou si vous obtenez des erreurs, vous pouvez essayer d’installer ou de réinstaller les pilotes Wi-Fi à partir du fichier ISO d’Ubuntu. Tout d’abord, vous devez télécharger l’ISO d’Ubuntu correspondant à votre version d’Ubuntu. (On suppose que vous devez le télécharger sur un autre appareil ou le télécharger en utilisant votre connexion Ethernet sur Ubuntu.)
Ouvrez un terminal, puis entrez la séquence de commandes suivante pour monter l’ISO d’Ubuntu sur un lecteur virtuel :
sudomkdir/media/cdrom
sudomount-o loop ~/Downloads/ubuntu-*.iso /media/cdromAllez dans “Mise à jour des logiciels” depuis le tableau de bord, puis cliquez sur le bouton Paramètres en bas à gauche de la fenêtre.

Cliquez sur l’onglet Pilotes supplémentaires, puis sélectionnez l’option Adaptateur réseau sans fil et cliquez sur Appliquer les modifications.
Problème 1 : périphérique non détecté
Si le périphérique sans fil n’est pas détecté par Ubuntu (ou n’importe quelle distribution pour cette affaire), ouvrez une session terminal et tapez la commande suivante :
sudo lsusbCette commande affichera tous les appareils USB actuellement branchés à votre machine. Recherchez toute ligne contenant soit “Adaptateur sans fil”, soit “RTL”.
sudo lsusb |grep"RTL"
En plus de lister tous les adaptateurs USB, vous pouvez également sonder votre système pour tout appareil sans fil PCI. Pour cela, exécutez la commande suivante :
sudolspciTout comme avec la commande lsusb, recherchez des lignes dans la sortie de lspci contenant soit “Contrôleur de réseau”, soit “Contrôleur Ethernet”.

Trouvez le module de pilote exact que votre périphérique sans fil utilise actuellement en exécutant la commande suivante :
sudo lshw -C network |grep"driver"Mettez en évidence la valeur de la variable “driver” et copiez-la dans votre presse-papiers.

Problème 2 : module de pilote manquant
Suite aux commandes lsusb et lspci réussies, confirmant que votre distribution Linux peut voir la carte sans fil, vous pouvez supposer que le firmware fonctionne, juste que le système n’a aucune idée de ce qu’il doit faire avec le périphérique. C’est ici que les pilotes ou modules sont nécessaires.
Tapez la commande suivante, puis remplacez “modulename” par le contenu de votre presse-papiers :
sudo modprobe modulenamePar exemple, si votre pilote sans fil est “iwlwifi”, ce serait comme suit :
sudo modprobe iwlwifiAprès cela, exécutez sudo lsmod | grep "modulename" pour voir si le noyau Linux a chargé correctement votre périphérique Wi-Fi.

Charger le module de pilote automatiquement au démarrage
C’est une occasion rare, mais parfois le module ne persistera pas après le démarrage. Dans ce cas, vous pouvez le forcer à se charger de manière permanente. Entrez la commande suivante dans le terminal :
sudonano/etc/modulesAjoutez le nom de votre module en bas et sauvegardez le fichier.

Redémarrez la machine pour vérifier si le noyau Linux a correctement chargé le périphérique sans fil.
Bon à savoir : apprenez comment votre ordinateur gère son matériel en installant votre propre noyau Linux personnalisé sur Ubuntu aujourd’hui.
Problème 3 : DNS
Il est rare que le DNS soit un problème ; cependant, cela vaut la peine d’enquêter si vous avez encore des problèmes de connexion. Depuis le terminal, tapez la commande suivante pour vérifier le résolveur DNS par défaut du système :
nmcli device show INTERFACE-NAME |grep IP4.DNSPar défaut, cela sera réglé sur l’adresse IP de votre routeur. Si cela ne fonctionne pas, vous devrez peut-être changer “wlp0s1” par ce que votre sans fil utilise. La commande suivante peut également être utilisée pour saisir la désignation :
ip addr|grep": "Une fois que vous avez cette information, pinguez l’adresse de votre résolveur DNS. Si cela fonctionne, vous pouvez également envoyer un ping à un réseau externe comme les résolveurs DNS de Google :
ping 8.8.8.8Si tous les appareils de votre réseau donnent des erreurs de chargement de page, changez les résolveurs DNS sur votre routeur pour ceux de Google ou d’OpenNIC. Vous devrez consulter le fabricant de votre routeur pour savoir comment faire cela, mais c’est généralement fait en accédant à la console d’administration de l’appareil. Vous pouvez trouver cela sur la plupart des routeurs en allant soit à “192.168.0.1”, soit à “192.168.254.254” dans un navigateur web.
Ajouter un serveur DNS personnalisé dans NetworkManager
Cela dit, vous pouvez également changer le résolveur DNS sur une base par appareil. Pour ce faire sous Ubuntu, cliquez sur le Bouton du menu de contrôle dans le coin supérieur droit du bureau, puis sélectionnez l’icône des paramètres.

Cliquez sur la catégorie Wi-Fi, puis recherchez la catégorie Réseaux visibles.

Sélectionnez l’icône des paramètres sur la ligne contenant le nom de votre point d’accès sans fil.
Cliquez sur l’onglet IPv4 dans la barre supérieure de la petite fenêtre.

Allez dans la section DNS, puis désactivez l’interrupteur Automatique.

Tapez “8.8.8.8,8.8.4.4” dans la zone de texte DNS, puis cliquez sur Appliquer pour valider les paramètres.

Ouvrez un nouveau terminal, puis exécutez la commande suivante pour supprimer toute précédente donnée de résolveur DNS :
resolvectl flush-cachesTestez si votre système utilise maintenant ses nouveaux paramètres de résolveur DNS en exécutant le suivant :
resolvectl status |grep"Current DNS Server"Vérifiez si les paramètres DNS actuels ont résolu votre problème réseau en chargeant une page web dans un navigateur.

Bon à savoir : apprenez-en plus sur les serveurs de nom et les résolveurs DNS en utilisant dig sous Linux.
Problème 4 : pas de gestionnaire de réseau
Disons que vous avez supprimé le gestionnaire de réseau ou l’avez désinstallé par accident. C’est une situation vraiment problématique : vous n’avez pas Internet et pas de gestionnaire de réseau, mais il y a des choses que vous pouvez faire.
En supposant que le paquet soit encore dans votre cache, vous pouvez aller au terminal et entrer :
# Debian/Ubuntu
sudo apt install network-manager
# Fedora
sudo dnf install NetworkManager
# Arch Linux
sudo pacman -Syu networkmanagerSi cela ne fonctionne pas, vous pouvez forcer votre système à se connecter à un point d’accès sans fil en utilisant wpa_supplicant. C’est un outil en ligne de commande qui utilise le pilote de votre périphérique sans fil pour se connecter à un point d’accès sans utiliser le gestionnaire de réseau.
Pour commencer, créez un fichier de configuration pour wpa_supplicant en utilisant votre éditeur de texte préféré :
sudonano/etc/wpa_supplicant.confCollez le bloc de code suivant dans le fichier de configuration, puis remplacez “SSID” et “PASSWORD” par le nom du point d’accès et le mot de passe de votre routeur :
network={
ssid="SSID"
password="PASSWORD"
}Enregistrez le fichier de configuration, puis collez la ligne de code suivante dans votre session terminal :
sudo wpa_supplicant -B-i INTERFACE-NAME -c/etc/wpa_supplicant.conf -D nl80211Remplacez la valeur du flag “-i” par le nom de votre interface sans fil.
Remarque : cette commande ne fonctionnera que sur des cartes sans fil plus récentes. Si vous essayez de connecter une carte Wi-Fi plus ancienne, remplacez la valeur du flag “-D” par “wext.”
Demandez une nouvelle adresse IP à votre routeur en rechargant le daemon DHCP :
sudo dhclient INTERFACE-NAMETestez si votre connexion Wi-Fi fonctionne maintenant en pingant un site externe :
ping-c5 maketecheasier.comRéinstallez le gestionnaire de réseau pour restaurer la pleine capacité Wi-Fi de votre système Linux :
sudo apt install network-managerRedémarrez votre machine pour charger la nouvelle installation du gestionnaire de réseau.
Comprendre comment fonctionnent les modules Wi-Fi et les pilotes du noyau est juste la première étape pour apprendre comment Linux fonctionne sous le capot. Explorez davantage le côté technique de ce système d’exploitation en créant un système de fichiers caché avec Shufflecake.