Déconnexion carte wifi

Tags: #<Tag:0x00007f63f19f2250> #<Tag:0x00007f63f19fbe40>

Bonjour,

Je viens d’installer la Debian 12 sur mon Laptop et je rencontre des déconnexions régulières au niveau de la carte wifi.
Sur la Bullseye je n’avais jamais rencontré ce problème, pour information le drivers utilisé c’est celui fourni pour l’OS.
Ci-dessous les infos de la carte wifi :

-Logs :

mai 14 18:12:04 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:10 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:11 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:12 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:13 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:47 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:48 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:49 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:50 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:12:51 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:13:19 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:13:37 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS
mai 14 18:13:38 neptune wpa_supplicant[792]: wlo1: CTRL-EVENT-BEACON-LOSS

/etc/network/interfaces :

This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Ajout pour gerer le switching automatique entre le wifi et l'ethernet
iface eno1 inet dhcp

auto wlo1
iface wlo1 inet manual

	wpa-driver nl80211
	wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

# Ajout pour obtenir une adresse IP automatiquement
iface default inet dhcp

/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
	ssid="yyyyyyyyyyyyyy"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	key_mgmt=WPA-PSK
	priority=3
}   

network={
	ssid="zzzzzzzzzzzzzz"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	key_mgmt=WPA-PSK
	priority=2
}

network={
  key_mgmt=NONE

iwconfig wlo1
wlo1      IEEE 802.11  ESSID:"yyyyyyyy"  
     Mode:Managed  Frequency:2.462 GHz  Access Point: 64:6E:EA:8A:55:5C   
     Bit Rate=72.2 Mb/s   Tx-Power=20 dBm   
     Retry short limit:7   RTS thr:off   Fragment thr:off
     Encryption key:off
     Power Management:off
     Link Quality=70/70  Signal level=-36 dBm  
     Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
     Tx excessive retries:0  Invalid misc:4   Missed beacon:0

J’ai passé le Power Manager de la carte à off mais ça ne change rien au problème.

Merci pour votre aide.

Willy

Bonjour,

J’ai résolu mon problème, j’ai téléchargé les sources de la carte Realtek sur le site Github https://github.com/tomaspinho/rtl8821ce
Dans le Readme du package il est clairement dit que le drivers fourni par Realtek pour les noyaux >= 5.9 est « broken » avec des performances faibles.
J’ai effectué les actions suivantes :
-installé le package DKMS
-Retiré le module rtw88_8821ce
-Blacklisté le module
-Installé le drivers venant du site Gihub et plus de déconnexion de la carte Wifi, tout fonctionne parfaitement sur ma Bookworm maintenant.

Willy

Néanmoins surprenant si tu avais bien testé avec firmware-realtek=20230210-5

$ curl -s 'https://metadata.ftp-master.debian.org/changelogs//non-free-firmware/f/firmware-nonfree/firmware-nonfree_20230210-5_changelog' | grep 'linux-support 6'
  * Update to linux-support 6.1.0-8
  * Update to linux-support 6.1.0-6
  * Update to linux-support 6.1.0-5
  * Update to linux-support 6.1.0-4
  * Update to linux-support 6.1.0-1
  * Update to linux-support 6.1.0-2
  * Update to linux-support 6.0.0-6
  * Update to linux-support 6.0.0-5

$ apt policy firmware-realtek
  Candidat : 20230210-5

C’est bien la bonne version du firmware qui est installé :

root@neptune:~# apt policy firmware-realtek
firmware-realtek:
  Installé : 20230210-5
  Candidat : 20230210-5
 Table de version :
 *** 20230210-5 500
        500 http://deb.debian.org/debian bookworm/non-free-firmware amd64 Packages
        100 /var/lib/dpkg/status
root@neptune:~# 

Désinstalle le pour lever toute ambiguïté.
Un peu perplexe sur la solution, alors que bookworm est sur le point de passer en stable, mais trop tard pour analyser plus précisemment.

ci-dessous les actions demandées :

root@neptune:~# apt remove firmware-realtek
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Les paquets suivants seront ENLEVÉS :
  firmware-realtek
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Après cette opération, 7 046 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 240130 fichiers et répertoires déjà installés.)
Suppression de firmware-realtek (20230210-5) ...
root@neptune:~# 
root@neptune:~# apt purge firmware-realtek
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Le paquet « firmware-realtek » n'est pas installé, et ne peut donc être supprimé
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
root@neptune:~# 
root@neptune:~# cd /etc/modprobe.d/
root@neptune:/etc/modprobe.d#
root@neptune:/etc/modprobe.d# vi blacklist.conf 

# desactivation du bip systeme
blacklist pcspkr
#blacklist rtw88_8821ce

wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet X.X.X.X netmask 255.255.255.0  broadcast X.X.X.X
        inet6 yyyyyyyyyyy  prefixlen 64  scopeid 0x20<link>
        ether yyyyyyyyyy  txqueuelen 1000  (Ethernet)
        RX packets 893  bytes 430294 (420.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 723  bytes 117122 (114.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

J’ai enlevé le blacklist du module natif, après reboot la carte est toujours UP, configurée et stable.

Donc ne touche plus à rien.

$ /sbin/modinfo rtw88_core |grep parm 

parm:  disable_lps_deep:Set Y to disable Deep PS (bool)

Sinon, il y a une probable solution moins bourrin pour le prochain:
/etc/modprobe.d/60-rtw88core.conf

options rtw88_core disable_lps_deep=y

De ce que je comprends, si la carte est toujours fonctionnelle et stable c’est grâce aux sources récupérés sur le site Github.
Par contre j’ai besoin du package firmware-realtek, s’il est absent j’ai les erreurs ci-dessous qui sont générés au moment du load des firmware :

root@neptune:/etc/modprobe.d# journalctl -p err
-- Boot ae5277f9d363403a8c89858d5b237f2e --
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: firmware: failed to load rtw88/rtw8821c_fw.bin (-2)
mai 17 20:53:14 neptune kernel: firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: firmware: failed to load rtw88/rtw8821c_fw.bin (-2)
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: failed to request firmware
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: failed to load firmware
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: failed to setup chip efuse info
mai 17 20:53:14 neptune kernel: rtw_8821ce 0000:02:00.0: failed to setup chip information
mai 17 20:53:14 neptune kernel: bluetooth hci0: firmware: failed to load rtl_bt/rtl8821c_fw.bin (-2)
mai 17 20:53:14 neptune kernel: bluetooth hci0: firmware: failed to load rtl_bt/rtl8821c_fw.bin (-2)
mai 17 20:53:14 neptune kernel: Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8821c_fw.bin not found
mai 17 20:53:16 neptune kernel: r8169 0000:03:00.0: firmware: failed to load rtl_nic/rtl8168h-2.fw (-2)
mai 17 20:53:16 neptune kernel: r8169 0000:03:00.0: firmware: failed to load rtl_nic/rtl8168h-2.fw (-2)
mai 17 20:53:16 neptune kernel: r8169 0000:03:00.0: Unable to load firmware rtl_nic/rtl8168h-2.fw (-2)
mai 17 20:53:31 neptune lightdm[1663]: gkr-pam: unable to locate daemon control file

Avec le package installé :

root@neptune:/etc/modprobe.d# journalctl -p err
-- Boot 5c029185ca614839b99ed2c48524be61 --
mai 18 06:58:39 neptune lightdm[1667]: gkr-pam: unable to locate daemon control file

Les firmwares realtek Debian sont de nouveau réclamés puisque tu as déblacklisté rtw88_8821ce, pour une raison que je n’ai pas comprise, puisque j’avais juste demandé de désinstaller firmware-realtek.
Reblacklist le.

Plus généralement, mon avis est que le problème n’est pas le firmware realtek fourni par Debian, mais de ce que j’avais lu, à une modification de paramètre noyau lié à la désactivation du wifi en cas d’inactivité (argumentation sécurité).

Maintenant que tu as bricolé du dkms de directement github, c’est un peu tard pour approfondir, mais tu dois bien te douter que ce ne sera sûrement pas ‹ la › solution pour bookworm pour tous les utilisateurs de realtek, pour un problème connu de longue date (depuis noyau 6).

Je te remercie pour tes explications, je comprends mieux la démarche.
J’ai fait une sauvegarde de mon système avant l’installation du drivers provenant de gihutb, je vais restaurer cette sauvegarde et voir si les applications des workaround ci-dessus résout le problème.
Pour info, le package que j’ai récupéré sur le site gihub est « propre » et bien implémenté, ça s’installe et se désinstalle proprement.

j’ai restauré mon système ajouté la ligne ci-dessous :

root@neptune:~# cat /etc/modprobe.d/60-rtw88core.conf 
options rtw88_core disable_lps_deep=y

Mais les déconnexions apparaissent toujours:

2023-05-18T17:09:06.311510+04:00 neptune wpa_supplicant[815]: wlo1: CTRL-EVENT-BEACON-LOSS 
2023-05-18T17:09:08.327975+04:00 neptune wpa_supplicant[815]: wlo1: CTRL-EVENT-BEACON-LOSS

Ok. ok… Bizarre que ce problème ne remonte pas plus pour le moment.
Remets ce qui marche pour toi pour le rtw88, bien que la solution proposée marche pour d’autres avec rtw88. Bizarre.
A revoir quand bookworm sera en stable, ce problème étant très peu remonté pour le moment.

ps: j’espère que tu rebootes bien entre tes essais relatifs au noyau.

Si téméraire, tu peux essayer ça:

options rtw88_core disable_lps_deep=Y
options rtw88_pci disable_aspm=Y

L’ajout des 2 lignes n’ont pas résolu le problème, oui après chaque modification au niveau du modprobe le système est redémarré.
Je vais revenir au drivers dkms fourni par Github.