Notes d'installation de l'adapteur USB TP-Link TL-WN823N (EU) révision 3 sur Debian GNU/Linux 11 (bullseye)
Lorsque l'adaptateur est connecté au système, les journaux remontent une erreur lors du chargement des pilotes:
déc. 22 12:04:40 nucleus kernel: usb 2-1: RTL8192EU rev B (SMIC) 2T2R, TX queues 3, WiFi=1, BT=0, GPS=0, HI PA=0 déc. 22 12:04:40 nucleus kernel: usb 2-1: RTL8192EU MAC: 10:27:f5:38:58:49 déc. 22 12:04:40 nucleus kernel: usb 2-1: rtl8xxxu: Loading firmware rtlwifi/rtl8192eu_nic.bin déc. 22 12:04:40 nucleus kernel: usb 2-1: firmware: failed to load rtlwifi/rtl8192eu_nic.bin (-2) déc. 22 12:04:40 nucleus kernel: usb 2-1: Direct firmware load for rtlwifi/rtl8192eu_nic.bin failed with error -2 déc. 22 12:04:40 nucleus kernel: usb 2-1: request_firmware(rtlwifi/rtl8192eu_nic.bin) failed déc. 22 12:04:40 nucleus kernel: usb 2-1: Fatal - failed to load firmware déc. 22 12:04:40 nucleus kernel: rtl8xxxu: probe of 2-1:1.0 failed with error -11
La tentative de compilation des pilotes proposés par le constructeur est consignée dans la section ci-dessous mais échoue systématiquement pour une version récente de Debian. Le plus simple est alors d'utiliser les firmwares disponibles dans le dépot non-free. Pour ajouter le dépôt et télécharger le paquet:
apt install software-properties-common apt-add-repository non-free apt update apt install firmware-realtek
Vérifier quel pilote est utilisé:
usb-devices | grep -i realtek --after-context 5 S: Manufacturer=Realtek S: Product=802.11n NIC S: SerialNumber=00e04c000001 C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA I: If#=0x0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8xxxu # décharger le pilote modprobe -r rtl8xxxu # empêcher le chargement du pilote rtl8xxxu echo "blacklist rtl8xxxu" > /etc/modprobe.d/rtl8192eu.conf
Installer les prérequis pour la compilation des pilotes:
apt install gcc make bc linux-headers-5.10.0-9-amd64
Télécharger les sources du pilote sur le site du constructeur (date de dernière mise à jour 08/05/2018):
mkdir tl-wn823n cd tl-wn823n/ wget "https://static.tp-link.com/2018/201805/20180514/TP-Link_Driver_Linux_series8_beta.zip" # decompression des archives unzip TP-Link_Driver_Linux_series8_beta.zip unzip unzip rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047.zip cd
la compilation échoue et retourne les messages suivants:
/home/yoann/tl-wn823n/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h: In function ‘_init_timer’:
/home/yoann/tl-wn823n/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h:299:8: error: ‘_timer’ {aka ‘struct timer_list’} has no member name
d ‘data’
299 | ptimer->data = (unsigned long)cntx;
| ^~
/home/yoann/tl-wn823n/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/include/osdep_service_linux.h:300:2: error: implicit declaration of function ‘init_timer’; did you mean ‘_init_timer’? [-Werror=implicit-function-declaration]
300 | init_timer(ptimer);
| ^~~~~~~~~~
| _init_timer
...
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-headers-5.10.0-9-common/scripts/Makefile.build:285 : /home/yoann/tl-wn823n/rtl8192EU_WiFi_linux_v5.2.19.1_25633.20171222_COEX20171113-0047/core/rtw_cmd.o]
Les sources fournies par le constructeur ne peuvent pas être compilées pour une version récente du noyau.