{{tag>sysadmin netadmin hardware wifi drivers pilotes}}
====== Installer TP-Link TL-WN823N sur Debian ======
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 [[installer_tl-wn823n_debian#compilation_du_pilotes_echec|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
===== Compilation du pilotes (echec) =====
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.
===== Références =====
* https://www.tp-link.com/fr/support/download/tl-wn823n/
* https://unix.stackexchange.com/questions/166408/install-usb-wifi-tl-wn823n-on-debian
* https://debian-facile.org/viewtopic.php?id=17870&p=2