Table des matières

, , , , ,

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 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