j'ai voulu tester la compilation d'un driver pour une clé non reconnue par LMDE3.
Avant toute chose, un peu de documentation.
debian: https://wiki.debian.org/fr/WiFi
ubuntu: https://doc.ubuntu-fr.org/wifi_chipset_ ... _rtl8812au
Mon choix s'est porté sur le chipset realtek rtl8812au que l'on peut trouver, par exemple, dans la clé TP-Link Archer T4UH Adaptateur USB Wi-Fi AC 1300 Mbps.
Après avoir téléchargé le zip sur github https://github.com/abperiasamy/rtl8812AU_8821AU_linux
et décompressé dans /tmp
Dans le terminal, on se place dans le répertoire du fichier décompressé (commande cd):
Code : Tout sélectionner
$ cd /tmp/rtl8812AU_8821AU_linux-master
Code : Tout sélectionner
$ uname -a
Linux pc1 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux
Code : Tout sélectionner
$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.9.0-8-amd64/build M=/tmp/rtl8812AU_8821AU_linux-master modules
make[1] : on entre dans le répertoire « /usr/src/linux-headers-4.9.0-8-amd64 »
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_cmd.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_security.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_debug.o
...
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/HalPwrSeqCmd.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/Hal8812PwrSeq.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/Hal8821APwrSeq.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_xmit.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_sreset.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_hal_init.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_phycfg.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_rf6052.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_dm.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_rxdesc.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_cmd.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/usb/usb_halinit.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/usb/rtl8812au_led.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/usb/rtl8812au_xmit.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/usb/rtl8812au_recv.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/usb/usb_ops_linux.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/rtl8812a/rtl8812a_mp.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/efuse/rtl8812a/HalEfuseMask8812A_USB.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/efuse/rtl8812a/HalEfuseMask8821A_USB.o
...
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/OUTSRC/rtl8821a/phydm_RTL8821A.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/hal/OUTSRC/rtl8821a/PhyDM_IQK_8821A.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/platform/platform_ops.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_mp.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_mp_ioctl.o
CC [M] /tmp/rtl8812AU_8821AU_linux-master/core/rtw_bt_mp.o
LD [M] /tmp/rtl8812AU_8821AU_linux-master/rtl8812au.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/rtl8812AU_8821AU_linux-master/rtl8812au.mod.o
LD [M] /tmp/rtl8812AU_8821AU_linux-master/rtl8812au.ko
make[1] : on quitte le répertoire « /usr/src/linux-headers-4.9.0-8-amd64 »
Code : Tout sélectionner
$ sudo make install
install -p -m 644 rtl8812au.ko /lib/modules/4.9.0-8-amd64/kernel/drivers/net/wireless/
/sbin/depmod -a 4.9.0-8-amd64
Code : Tout sélectionner
$ lsmod
Là, pas encore de trace de chargement du module rtl8812au. C'est normal.
Code : Tout sélectionner
$ sudo modprobe -a rtl8812au
Code : Tout sélectionner
$ lsmod
Module Size Used by
rtl8812au 1343488 0
cfg80211 589824 1 rtl8812au
rfkill 24576 3 cfg80211
Code : Tout sélectionner
$ sudo modinfo rtl8812au
filename: /lib/modules/4.9.0-8-amd64/kernel/drivers/net/wireless/rtl8812au.ko
version: v4.3.14_13455.20150212_BTCOEX20150128-51
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
license: GPL
srcversion: EF34661EE5DBA48C942EF10
alias: usb:v3823p6249d*dc*dsc*dp*ic*isc*ip*in*
...
depends: cfg80211,usbcore
...
parm: rtw_max_roaming_times:The max roaming times to try (uint)
parm: rtw_mc2u_disable:int
parm: rtw_80211d:Enable 802.11d mechanism (int)
...
Attendre 1 minute environ avant que le wifi ne capte les SSID.
Vérification de l'état du Wifi avant connexion à un SSID (commande nmcli device)
Code : Tout sélectionner
$ nmcli device
PÉRIPHÉRIQUE TYPE ÉTAT CONNEXION
enp2s0 ethernet déconnecté --
wlp0s20u11 wifi déconnecté --
Vérification de l'état du Wifi après connexion à un SSID (commande nmcli device)
Code : Tout sélectionner
nmcli device
PÉRIPHÉRIQUE TYPE ÉTAT CONNEXION
wlp0s20u11 wifi connecté Auto maFreebox
enp2s0 ethernet déconnecté --
lo loopback non-géré --
Code : Tout sélectionner
$ nmcli dev wifi
* SSID MODE CHAN DÉBIT SIGNAL BARS SÉCURITÉ
-- Infra 11 54 Mo/s 89 ▂▄▆█ WPA2
* maFreebox Infra 11 54 Mo/s 89 ▂▄▆█ WPA1
Livebox-D123 Infra 100 54 Mo/s 44 ▂▄__ WPA2
Optionnel: dans le fichier /etc/NetworkManager/NetworkManager.conf
[device]
wifi.scan-rand-mac-address=no
Redémarrage du gestionnaire de réseau (optionnel)
Code : Tout sélectionner
$ sudo systemctl restart network-manager
Le plus long fût de trouver une clé wifi embarquant un firmware compatible Debian9.
Remarque: il parait qu'il faut recompiler le firmware si le noyau Linux est mis à jour