logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Pas à pas : faire que sa carte Wi-Fi soit détectée et fonctionnelle

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).

Étape 1 : Identifier la carte réseau

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 :

retour de la commande
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.

Il existe une multitude de tutoriels ou de cours sur internet qui expliquent comment identifier le matériel installé sur votre ordinateur.

Voici deux pages qui sont spécialement dédiées à Debian :

Si vous ne détectez pas la carte WiFi, cela peut être dû au fait que sur certains ordinateurs portables, la carte WiFi est en fait un périphérique USB.

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.

Pour trouver une liste des cartes WiFi compatibles Linux allez à ces adresses :

Étape 2 : Vérifier la présence du module noyau

FIXME (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
retour de la commande
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.

Étape 3 : Vérifier la présence des firmwares

FIXME (ça se vautre un peu, sur la fin)

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é :

  • pour la connexion Ethernet (filaire) : à la place de eth0, on a un nom de la forme enp0s3 ;
  • pour la connexion WiFi (sans fil) : à la place de wlan0, on trouve un nom de la forme wlp5s0, wlp0s29f7u2 ou encore wlx0a1b2c3d4e5f, selon le type de carte WiFi (PCI ou USB).

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
À titre d'exemple extrayons la substantifique moelle d'un cas réel issu du forum en octobre 2018 (merci à fx) :

dmesg | grep firmware
retour de la commande
[   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
retour de la commande
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]
retour de la commande
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 pour fournir le maximum d'informations sur votre carte WiFi.

Sur le forum, des problèmes de connexion avec NetworkManager ont été rapportés sous Stretch, pour des cartes USB lorsque le nom de l'interface commence par wlx, comme par exemple wlx0a1b2c3d4e5f. Deux solutions sont indiquées sur ce fil (merci à kyodev, naguam et black_sun_2012).

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.

  • Si on lui donne l'argument -a, cette commande affiche toutes les interfaces réseaux présentes sur la machine :
/sbin/ifconfig -a
retour de la commande
 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)
Si 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. :-)

Sinon, le firmware manque presque sûrement, et un 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.

Utiliser le noyau expérimental

FIXME (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…

Configuration du WiFi

Configurer à la main sa connexion WiFi :

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/materiel/wifi/detecter.1553545343.txt.gz · Dernière modification: 25/03/2019 21:22 par èfpé

Pied de page des forums

Propulsé par FluxBB