Sauf que la « clé Wifi adéquate » n'est pas aussi évidente que cela à trouver. J'ai longtemps (4 ou 5 ans, jusqu'à aujourd'hui) utilisé une clé à base d'une puce Realtek RTL88x2BU. Ça marchait, et ça marche toujours bien dès lors que l'on utilise le bon pilote - lequel n'est pas (ou pas encore) intégré au noyau Linux. Il faut donc récupérer ce pilote, le compiler et l'installer. Rien de bien problématique.
Sauf que les nouvelles versions du pilote (plus exactement toutes les versions au-delà de la 5.8) plantent totalement le noyau, quel que soit le noyau en question, au moins sur un RaspberryPi. Le pilote se charge, commence à s'initialiser, et tout s'arrête. Ennuyant, pour le moins. Je me suis donc vu contraint de rester avec une version un peu ancienne du pilote, et je ne peux pas mettre le noyau du RaspberryPi à jour non plus. C'est une petite machine interne, non directement connectée à Internet, mais accessible (justement) via le Wifi.
L'absence de possibilité de mise à jour a fini par me peser, et j'ai cherché une autre clé qui pourrait marcher en tant que point d'accès, de préférence avec un pilote inclus dans le noyau. Heureusement, il y a Morrownr qui tient à jour une excellente liste de puces Wifi plus ou moins bien reconnues par Linux. J'ai fait mon marché là-dedans, et opté pour une clé Edup AX1672 (parce que tri-bande, pas trop chère et disponible rapidement).
Sauf que tout n'est pas si simple. Quand je branche la clé (toujours sur un RaspberryPi disposant d'un noyau au minimum 5.19), elle est bien vue mais rien ne se passe au-delà de quelques messages désagréables :
kernel: [2783365.029451] usb 1-1.2: Manufacturer: MediaTek Inc. kernel: [2783365.029462] usb 1-1.2: SerialNumber: 000000000 kernel: usb 1-1.2: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00 kernel: usb 1-1.2: New USB device strings: Mfr=2, Product=3, SerialNumber=4 kernel: usb 1-1.2: Product: Wireless_Device kernel: usb 1-1.2: Manufacturer: MediaTek Inc. kernel: usb 1-1.2: SerialNumber: 000000000 kernel: mt7921u 1-1.2:1.0: Direct firmware load for mediatek/WIFI_RAM_CODE_MT7961_1.bin failed with error -2 kernel: [2783365.271379] mt7921u 1-1.2:1.0: Direct firmware load for mediatek/WIFI_RAM_CODE_MT7961_1.bin failed with error -2 kernel: [2783365.367580] usb 1-1.2: reset high-speed USB device number 14 using dwc_otg kernel: usb 1-1.2: reset high-speed USB device number 14 using dwc_otg kernel: usbcore: registered new interface driver mt7921u kernel: mt7921u 1-1.2:1.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin failed with error -2 kernel: [2783365.529665] usbcore: registered new interface driver mt7921u kernel: [2783365.532135] mt7921u 1-1.2:1.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin failed with error -2 kernel: mt7921u 1-1.2:1.0: Message 00000010 (seq 3) timeout kernel: mt7921u 1-1.2:1.0: Failed to get patch semaphore
C'est un autre lien qui m'aide, toujours chez Morrownr. Les opérations à réaliser sont simples :
- aller sur https://git.kernel.org/pub/scm/linu... ;
- cliquer sur
WIFI_MT7961_patch_mcu_1_2_hdr.bin
puis, dans la fenêtre qui s'affiche, surplain
afin de télécharger le fichier ; - faire de même pour le fichier
WIFI_RAM_CODE_MT7961_1.bin
; - installer ces deux fichiers dans le répertoire
/lib/firmware/mediatek
sur la machine sur laquelle la clé est ou sera branchée ; - redémarrer la machine.
Après ça, la clé est complètement reconnue, l'interface wifi (joliment nommée wlu1u2
) s'active, hostapd
et dnsmasq
font leur travail, et mon nouveau point d'accès fonctionne, avec un noyau tout neuf et à jour.