Wi-Fi

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Wi-Fi and the translation is 100% complete.
Resources

Cet article décrit l'installation du périphérique réseau Wi-Fi (sans fil).

Le Wi-Fi pendant l'installation

Si une connexion Wi-Fi est requise au cours de l'installation de Gentoo, garder à l'esprit que le CD d'installation minimal de Gentoo comprend un nombre limité de pilotes disponibles et ne propose que wpa_cli (et pas wpa_gui) pour configurer les connexions WPA/WPA2/Enterprise.

Si le CD d'installation minimaliste ne contient pas les pilotes requis ou que l'interface graphique pour wpa_supplicant est préféré, il faut choisir un Live CD différent tel que System Rescue CD. Il faut garder à l'esprit que certaines étapes spéciales peuvent être requises en sus lorsqu'un live CD qui n'est pas celui de Gentoo est utilisé.

Détection du matériel

En premier lieu il faut détecter les contrôleurs Wi-Fi. lspci ou lsusb sont des outils en ligne de commande qui peuvent être utilisés à cette fin.

Si un Linux (LiveCD/USB) est amorcé et établit une connexion Wi-Fi :

root #lspci -k

Le pilote sera identifié sur une des lignes qui commencent par Kernel driver in use:.

Si le système amorcé ne créer pas de connexion Wi-Fi, alors il faut obtenir la liste complète des identifiants matériel sur le système en cours d'usage. Cette liste peut être utilisé pour identifié les pilotes approprié par la suite :

root #lspci -n

Copier la liste des PCIID (NdT: Les identifiants PCI) que la commande a retourné.

Pour les périphériques USB, une approche similaire peut être utilisé. D'abord, il faut obtenir la liste des périphériques USB détectés sur le système :

user $lsusb

Cette commande retourne l'identifiant PCI (NdT: PCI ID), le fabriquant, la marque, le modèle, ou/et la puce (NdT: chipset en anglais) de tout les périphériques USB reliés au système. Parmi celles-ci, le chipset est sûrement l'information la plus utile. Rechercher sur le web pour linuxwireless.org <chipset> (NdT: remplacer chipset par le retour adéquat de la commande) est parfois la manière la plus courte pour trouver le pilote de la carte réseau USB et le nom du firmware (NdT: micrologiciel).

Alternativement, lshw peut être utilisé pour obtenir les informations nécessaires :

root #lshw | grep -i driver | perl -pe 's/^.*driver=(\S+).*$/$1/g;' | sort -u

Cette commande retourne une liste de tout les pilotes, sans tenir compte du fait que le périphérique est connecté sur la carte mère (PCI) ou relié en USB.

Noyau

Avec les pilotes identifiés, il est désormais temps de configurer le noyau Linux.

IEEE 802.11

Il faut activer au moins cfg80211 (CONFIG_CFG80211) et mac80211 (CONFIG_MAC80211).

KERNEL linux-4.19 example
[*] Networking support  --->
    [*] Wireless  --->
        <M>   cfg80211 - wireless configuration API
        [ ]     nl80211 testmode command
        [ ]     enable developer warnings
        [ ]     cfg80211 certification onus
        [*]     enable powersave by default
        [ ]     cfg80211 DebugFS entries
        [ ]     support CRDA
        [ ]     cfg80211 wireless extensions compatibility
        <M>   Generic IEEE 802.11 Networking Stack (mac80211)
        [*]   Minstrel
        [*]     Minstrel 802.11n support
        [ ]       Minstrel 802.11ac support
              Default rate control algorithm (Minstrel)  --->
        [ ]   Enable mac80211 mesh networking (pre-802.11s) support
        -*-   Enable LED triggers
        [ ]   Export mac80211 internals in DebugFS
        [ ]   Trace all mac80211 debug messages
        [ ]   Select mac80211 debugging features  ----

L'algorithme de contrôle du débit est assuré par Minstrel et son support pour la norme 802.11n. Certaines cartes sans-fil peuvent avoir besoin de son activation.

Important
Dans le cas où est livré dans le noyau une API de configuration du (NdT:réseau) sans-fil (CONFIG_CFG80211) au lieu d'un module (<*>), le pilote ne sera pas en mesure de charger regulatory.db depuis /lib/firmware résultant en une rupture du support des règles du protocole. Il faut paramétrer CONFIG_CFG80211=m ou ajouter regulatory.db et regulatory.db.p7s (depuis net-wireless/wireless-regdb) vers CONFIG_EXTRA_FIRMWARE.

WEXT

L'option de "compatibilité des extensions sans-fils cfg80211", aussi connu sous le nom WEXT (NdT: Wireless EXTensions) supportera les vieux outils tel que wireless-tools et iwconfig.

KERNEL
[*] Networking support  --->
    [*] Wireless  --->
        [*]     cfg80211 wireless extensions compatibility

Pilotes des périphériques

Ensuite c'est aux paramètres correspondant du noyau qui ont besoins d'être activés, en se basant sur les pilotes et matériels détecté précédemment. La recommandation est de compiler le pilote en tant que module. Il faut être aussi sûr d'activer le support du chiffrement AES (NdT: cipher en anglais) dans le noyau si le réseau sans-fil utilise un chiffrement WPA ou WPA2.

KERNEL
Device Drivers  --->
    [*] Network device support  --->
        [*] Wireless LAN  --->
 
            Select the driver for your Wifi network device, e.g.:
            <M> Broadcom 43xx wireless support (mac80211 stack) (b43)
            [M]    Support for 802.11n (N-PHY) devices
            [M]    Support for low-power (LP-PHY) devices
            [M]    Support for HT-PHY (high throughput) devices
            <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
            <M>    Intel Wireless WiFi DVM Firmware support                             
            <M>    Intel Wireless WiFi MVM Firmware support
            <M> Intel Wireless WiFi 4965AGN (iwl4965)
            <M> Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            <M> Ralink driver support  --->
                <M>   Ralink rt27xx/rt28xx/rt30xx (USB) support (rt2800usb)
 
-*- Cryptographic API --->
    -*- AES cipher algorithms
    -*- AES cipher algorithms (x86_64)
    <*> AES cipher algorithms (AES-NI)
Important
Dans le cas où le pilote est intégré dans le noyau (<*>) au lieu d'être un module (<M>), alors le micrologiciel (NdT: firmware) a également besoin d'être compilé dans le noyau.
Ne pas oublier de reconstruire le noyau après avoir modifié son paramétrage.

 Support LED

Pour activer le déclenchement des LED pour les différents paquets reçu/transmis en tant qu'évènement, compiler le noyau avec les options qui suivent :

KERNEL
Device Drivers  --->
    [*] LED Support  --->
        <*>   LED Class Support
 
[*] Networking support  --->
    [*] Wireless  --->
        [*] Enable LED triggers

Micrologiciel (NdT: Firmware)

En plus du pilote du noyau, certaines puces (NdT: chipsets) (tout particulièrement les plus modernes) ont aussi besoin d'un micrologiciel. Si requis, le trouver dans la liste suivante et l'installer :

root #emerge --ask sys-kernel/linux-firmware
Wi-Fi device Driver Firmware Note
Atheros AR9271 & AR7010 ath9k_htc sys-kernel/linux-firmware
Support sans-fil Broadcom 43xx b43 / b43legacy sys-firmware/b43-firmware Aircrack-ng prêt, très probablement le meilleur choix lorsqu'un périphérique bcm43xx est supporté
Broadcom PCIe et périphériques SDIO/USB brcmsmac / brcmfmac sys-kernel/linux-firmware Manque l'économie d'énergie, le support LED et d'autres fonctionnalités
Support sans-fil Broadcom 43xx wl net-wireless/broadcom-sta Propriétaire, sans mode AP ou Monitor, Comparaison des pilotes bcm43xx
Intel PRO/Wireless 2200BG ipw2200 sys-firmware/ipw2200-firmware
Intel PRO/Wireless 3945ABG/BG iwlegacy sys-kernel/linux-firmware
Intel Wireless WiFi 4965AGN iwl4965 sys-kernel/linux-firmware
Tous les autres périphériques sans-fils d'Intel iwlwifi sys-kernel/linux-firmware Voir l'article iwlwifi pour des instructions détaillés.
Qualcomm Atheros QCA6174 ath10k_pci ath10k-firmware Voir Qualcomm Atheros QCA6174
Périphérique USB Ralink/MediaTek par exemple : rt2800usb sys-kernel/linux-firmware
Realtek RTL8191SE & RTL8192SE rtl8192se sys-kernel/linux-firmware
Realtek 8723AU/8723BU/8191EU/8192EU/8188EU/8188RU rtl8xxxu sys-kernel/linux-firmware Peut avoir besoin de l'option du noyau CONFIG_RTL8XXXU_UNTESTED pour trouver tous les périphériques. Seulement ceux vérifiés par les développeurs du noyau sont activés par défaut.

Si les pilotes ont besoins d'un micrologiciel absent dans la liste, il peut être nécessaire de le télécharger manuellement et de le placer dans /lib/firmware.

Noms des périphériques réseaux

Attention !
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.

Network device names such as eth0 or wlan0 as provided by the kernel are normally changed on system boot (see dmesg) by the /lib/udev/rules.d/80-net-name-slot.rules udev rule.

To keep the classic naming this rule can be overwritten with an equally named empty file in the /etc/udev/rules.d directory:

root #touch /etc/udev/rules.d/80-net-name-slot.rules

Wireless supplicant

Si le réseau sans-fil est paramétré avec WPA ou WPA2, alors un wireless supplicant comme wpa_supplicant ou iwd sont nécessaires.


Testing

After a reboot with the new kernel or after loading the modules, the device can be checked for availability by using following methods:

/sys file system

Get the device name by listing the /sys/class/net directory contents using ls -al or the tree command (provided by the app-text/tree package):

user $tree /sys/class/net
/sys/class/net/
├── enp2s14 -> ../../devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/net/enp2s14
├── lo -> ../../devices/virtual/net/lo
├── sit0 -> ../../devices/virtual/net/sit0
└── wlp8s0 -> ../../devices/pci0000:00/0000:00:1c.0/0000:08:00.0/net/wlp8s0

ip command

To obtain the device name and verify that the wireless card is detected, execute the following ip command:

user $ip addr
3: wlan0:   ...

ifconfig command

The ifconfig command is provided through the sys-apps/net-tools package. Use ifconfig -a to list all detected network cards, even those that are not enabled/active yet:

user $ifconfig -a
wlan0     ...

A network card can be activated as follows:

root #ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
WARNING: at least one error occurred. (-1)

In this example, enabling the wireless card failed as a radio frequency kill state is set (usually to keep power consumption at bay and not connect by accident to a wireless network).

iw command

If the wireless network card driver supports the nl80211 stack, then the iw command as offered by the net-wireless/iw package can show the detected wireless cards:

root #iw dev
   phy#0
	Interface wlan0
		ifindex 4
		type managed

dmesg

Vérifier la sortie de dmesg.

user $dmesg | grep -i -E 'xx:xx.x|wlan|iwl|80211'

Être certains de remplacer :

Dépannage

Trouver le micrologiciel manquant

À l'amorçage du système, le noyau tente de sonder les micrologiciels appropriés pour chaque carte. Cela peut être vérifié en cherchant dans les sorties de dmesg ou journalctl (systemd) après l'amorçage en cours.

user $journalctl -b 0 --dmesg | grep -i firmware
Oct 05 14:51:09 maffbook kernel: Spectre V2 : Enabling Restricted Speculation for firmware calls
Oct 05 14:51:09 maffbook kernel: ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
Oct 05 14:51:09 maffbook kernel: sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0.
Oct 05 14:51:09 maffbook kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
Oct 05 14:51:09 maffbook kernel: ACPI: video: [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
Oct 05 14:51:09 maffbook kernel: iwlwifi 0000:00:14.3: loaded firmware version 46.6b541b68.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm
Oct 05 14:51:09 maffbook kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
Oct 05 14:51:09 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021
Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014
Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Found device firmware: intel/ibt-17-16-1.sfi
Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Waiting for firmware download to complete
Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware loaded in 1484394 usecs
Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021

Un adaptateur Wi-Fi ne peut pas trouver un réseau 5 GHz et s'y connecter

Certains réseaux avec WPA ou WPA2 peuvent toujours utiliser l'ancien protocole TKIP (NdT: legacy) à la place de l'AES pour se connecter. Essayer d'installer net-wireless/wpa_supplicant avec tkip USE flag et redémarrer le système.

 Sujets du forum (NdT: en anglais)

Voir aussi