Suivez cette section en particulier si votre matériel n'est pas reconnu par le noyau.
Attention, ce tuto propose différents tests afin d'identifier les problèmes de détection de votre carte wifi. Il est important de le suivre de manière chronologique (chaque test supposant que le précédent est réussi), et jusqu'au bout (tous les tests devant être positifs pour que la détection soit complète et la carte fonctionnelle).
Il existe plusieurs niveaux de détection du matériel. En premier lieu, le noyau doit identifier la carte comme étant une carte WiFi. Pour vérifier si c'est le cas, la commande lspci
nous sera très utile.
Pour identifier votre carte WiFi, tapez dans un terminal la commande suivante :
lspci -nn | grep -i network
ou, à partir de Debian 9 :
lspci -nnd ::0280
Cela vous donnera quelque chose comme ceci :
03:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 02)
Cette ligne nous indique que cet ordinateur est équipé d’une carte avec une puce de marque Broadcom avec un chipset BCM4311. Les cartes Broadcom sont souvent pénibles à installer, heureusement les modes d'installation commencent à être bien rodés.
Voici deux pages qui sont spécialement dédiées à Debian :
Essayez la commande suivante :
lsusb
Les PC de bureau ne sont pas toujours (voire pas très souvent !) équipés d'une carte WiFi. Vous pouvez donc choisir la carte PCI ou la clef WiFi USB que vous voudrez installer par vous-même.
(amalgame pilote/module/firmware)
La seconde étape nécessaire pour le fonctionnement d'une carte WiFi est qu'elle soit prise en charge par un module du noyau.
Pour vérifier si c'est le cas (et que ce module est installé), on utilisera à nouveau la commande lspci
:
lspci -nnk | grep -i network -A 3
ou, à partir de Debian 9 :
lspci -nnkd ::0280
02:00.0 Network controller [0280]: Broadcom Limited BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01) Subsystem: AzureWave BCM4313 802.11bgn Wireless Network Adapter [1a3b:2047] Kernel driver in use: bcma-pci-bridge Kernel modules: bcma
Cette fois-ci, on note que la carte WiFi est une BCM4313, et que le pilote noyau utilisé est bcma-pci-bridge
. (Notez au passage que bcma-pci-bridge
n'est pas un module, et que le « vrai » pilote (module du noyau) utilisé est, en l'occurrence, brcmsmac, même s'il n'apparaît que dans le retour de dmesg – cf. infra, ces charmantes cartes Broadcom sont le pire exemple qui soit, sur le plan pédagogique )
Si lspci
n'affiche pas de module en cours d'utilisation, c'est que le module noyau est manquant, il faut alors l'installer.
Si vous êtes possesseur d'un ordi portable, vous avez certainement une carte WiFi intégrée. Dans le meilleur des cas, votre carte sera reconnue automatiquement. Si si, ça arrive ! Sinon, vous devez connaître le modèle de votre carte pour pouvoir installer le bon pilote.
Il suffit alors de se reporter à la page “Cartes Wifi” pour trouver le(s) module/paquet qui correspond(ent) à la carte en question.
(amalgame firmware/interface)
Les firmwares sont des micro-programmes souvent fournis par le constructeur, et que le pilote noyau doit charger dans la carte WiFi elle-même. De nombreux périphériques nécessitent aujourd'hui que soient chargés des firmwares, et comme ceux-ci sont rarement libres, ils ne sont pas installés par défaut sous Debian.
On vérifie si un firmware est présent (après s'être assuré que le module nécessaire était bien là), avec la commande ip. La commande ifconfig est dépréciée sous Debian 9 Stretch, en raison d'un manque de maintenance. La commande ifconfig reste disponible pour les utilisateurs de Debian 8 Jessie et ceux qui ont migré de Jessie à Stretch.
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether c4:17:fe:ce:3d:1e brd ff:ff:ff:ff:ff:ff inet xxx.xxx.x.xx/xx brd xxx.xxx.x.xxx scope global dynamic wlp5s0 valid_lft 42384sec preferred_lft 42384sec inet6 xxxx:xxx:xx:xxxx:xxxx:xxxx:xxxx:xxxx/xx scope global noprefixroute dynamic valid_lft 86325sec preferred_lft 86325sec inet6 xxxx::xxxx:xxx:xxxx:xxxx/xx scope link valid_lft forever preferred_lft forever
Depuis Debian 9 Stretch, le nom des interfaces a changé :
Si “wlpxxx” ou “wlxxxx” apparaît, alors votre carte WiFi est très probablement correctement détectée, félicitations.
Si “wlpxxx” ou “wlxxxx” n'apparaît pas alors que le module noyau est bien chargé, c'est qu'il faut installer un firmware manquant. La commande ci-dessous devrait vous aider à trouver celui qui manque pour faire fonctionner votre carte WiFi :
dmesg | grep firmware
dmesg | grep firmware
[ 22.089153] brcmsmac bcma0:1: firmware: failed to load brcm/bcm43xx-0.fw (-2) [ 22.089382] brcmsmac bcma0:1: Direct firmware load for brcm/bcm43xx-0.fw failed with error -2
Le fameux firmware manquant a donc pour doux nom de fichier bcm43xx-0.fw, dont acte. Mais par quel paquet peut-il bien être fourni ? Attention, ces firmwares étant pour la plupart propriétaires, la suite nécessite un ajustement préalable de votre fichier sources.list.
apt-cache search bcm43xx-0.fw
firmware-brcm80211 - Binary firmware for Broadcom/Cypress 802.11 wireless cards
Et hop, vous n'avez plus qu'à installer le paquet firmware-brcm80211 via votre gestionnaire de paquets favori (sur le forum, privilégiez les outils en ligne de commande).
Notez que l'on peut aussi s'y prendre autrement, mais qu'en l'occurrence, le résultat obtenu est des plus déroutants…
apt-cache search BCM4313[^0-9]
broadcom-sta-common - Common files for the Broadcom STA Wireless driver broadcom-sta-dkms - dkms source for the Broadcom STA Wireless driver broadcom-sta-source - Source for the Broadcom STA Wireless driver
Vous pourriez légitimement être pris d'une impérieuse envie d'installer le paquet (non libre lui aussi) broadcom-sta-dkms, qui installera un autre module pilote pour le noyau… La carte BCM4313 peut en effet être prise en charge, soit par le pilote libre brcmsmac, soit par le pilote propriétaire wl !
N'hésitez pas à créer un fil sur le forum pour demander de l'aide afin d'installer le firmware manquant… N'oubliez pas de donner le retour des commandes de ce tuto, afin de fournir le maximum d'informations sur votre carte WiFi.
Une fois le fameux firmware manquant identifié et installé, plus rien ne s'oppose à ce que votre carte WiFi, tombe en marche… Il y a deux cas de figure : soit la carte est interne (PCI ou USB), soit la carte est externe (USB).
Recharger le pilote avec la commande modprobe n'étant pas la panacée, le plus efficace est de redémarrer le PC.
Le cas de l'adaptateur WiFi USB externe (dongle en anglais) est très simple, le réinsérer suffit à recharger le pilote.
Une installation Debian standard, fournit un gestionnaire réseau par défaut (NetworkManager, Wicd, ou encore ConnMan, selon l'environnement de bureau choisi). Dans la majorité des cas, l'interface réseau sera automatiquement configurée par ce gestionnaire… et vous n'aurez plus qu'à saisir vos identifiants WiFi afin de vous connecter au réseau.
(redondances, incohérences, etc.)
On active l'interface avec la commande root :
ip link set dev nom-de-l-interface up
Pour les utilisateurs de Jessie et versions précédentes, les commandes sont :
/sbin/ifconfig
Ainsi, si wlan0
n'apparaît pas, c'est qu'il faut installer le bon firmware en le déterminant selon ce qui suit.
-a
, cette commande affiche toutes les interfaces réseaux présentes sur la machine :/sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:552 errors:0 dropped:0 overruns:0 frame:0 TX packets:552 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:37827 (36.9 KiB) TX bytes:37827 (36.9 KiB) wlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:638993 errors:0 dropped:0 overruns:0 frame:0 TX packets:412031 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:617235341 (588.6 MiB) TX bytes:42145548 (40.1 MiB)
wlan0
n'apparaît pas alors que le module noyau est bien chargé, c'est que le firmware manque.
Vous activez ensuite la carte WiFi avec la commande suivante, en root :
ifconfig wlan0 up
Vous vérifiez si l'interface a effectivement été allumée avec la commande :
/sbin/ifconfig
Si wlan0
apparaît, alors votre carte WiFi est très probablement correctement détectée, félicitations.
dmesg | tail
vous indiquera quels sont les fichiers de firmware manquants pour que la carte fonctionne correctement. Dans ce cas, voir la suite plus bas.
(commencer par l'noyau backports)
Tout n'étant pas toujours rose dans ce monde brutal de l'informatique et notamment concernant le matériel, il vous faudra peut-être utiliser un noyau venu de la branche experimental pour parvenir à trouver le firmware qui va bien.
Ce lien là vous dit ce qu'il en est alors…
Configurer à la main sa connexion WiFi :