Gel de Firefox : problème avec ma carte nVidia et le pilote Nouveau?

Tags: #<Tag:0x00007f63e525f738> #<Tag:0x00007f63e525f648> #<Tag:0x00007f63e525f530> #<Tag:0x00007f63e525f418>

Bonjour,

J’ai un vieux ThinkPad T410 équipé d’une carte graphique Nvidia qui souffre de problèmes sérieux avec Firefox sur Debian Bullseye.
Ce dernier gèle ma session graphique aléatoirement, notamment lorsque je vais sur des sites avec des vidéos. Ce gel ne fait toutefois pas planter le système (je ne peux pas basculer sur une console non graphique, mais l’accès SSH fonctionne toujours).

Aucune autre application ne pose problème, y compris Chromium par exemple sur les mêmes sites de vidéos ! Mais qu’est-ce qui se passe chez Mozilla… Un problème de décodage vidéo par la carte graphique Nvidia ?
A noter que j’ai le même problème avec un autre Thinkpad équipé d’une carte Nvidia, alors qu’un autre avec carte intégrée Intel fonctionne très bien à ce niveau.

Version de Firefox :

firefox-esr:
  Installé : 102.6.0esr-1~deb11u1
  Candidat : 102.6.0esr-1~deb11u1
 Table de version :
 *** 102.6.0esr-1~deb11u1 500
        500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
        100 /var/lib/dpkg/status
     91.13.0esr-1~deb11u1 500
        500 https://deb.debian.org/debian bullseye/main amd64 Packages

Ma carte graphique et son pilote :

# lspci -k | grep -A2 -iE 'VGA' 
01:00.0 VGA compatible controller: NVIDIA Corporation GT218M [NVS 3100M] (rev a2)
  Subsystem: Lenovo ThinkPad T410
  Kernel driver in use: nouveau

J’ai remarqué que le pilote Nouveau ne pouvait charger certains firmwares au démarrage :

# journalctl -r -p err
T410 kernel: nouveau 0000:01:00.0: msvld: init failed, -19
T410 kernel: nouveau 0000:01:00.0: msvld: unable to load firmware data
T410 kernel: nouveau 0000:01:00.0: firmware: failed to load nouveau/nva8_fuc084d (-2)
T410 kernel: nouveau 0000:01:00.0: firmware: failed to load nouveau/nva8_fuc084 (-2)

En consultant le site de Nouveau, je constate que ma carte appartient à la famille NV50, avec comme nom de code NVA8.

General code names

Code name Official Name Nvidia 3D object codename
NV50 GeForce 8, GeForce 9, GeForce 100, GeForce 200, GeForce 300 Tesla

NV50 family (Tesla)

Code name Official Name
NVA8 (GT218) GeForce 8400 GS, ION 2, GeForce 205, 210, G 210M, 305M, 310(M), 405 Quadro FX (380 LP, 380M), NVS (300, 2100M, 3100M)

Au niveau du moteur d’accélération vidéo, ma famille de cartes utilise le moteur VP1, qui apparemment a besoin du firmware de la carte pour fonctionner :

Which card has what engine
VP1 : NV41-NV50 (GeForce 6, 7 series, GeForce 8800 GTS)

Video engine support status :

XvMC VDPAU / VA-API Firmware
MPEG1/2 MPEG1/2 H.264 VC-1 MPEG-4
VP1 N/A N/A TODO TODO N/A TODO

Firmware
[…] VP1 […] require firmware to operate that is presently extracted from the NVIDIA binary driver. We cannot redistribute the firmware directly in linux-firmware because NVIDIA’s license forbids redistribution of parts of their driver.

J’ai suivi les recommandations de cette page pour installer les firmwares :

$ mkdir /tmp/nouveau
$ cd /tmp/nouveau
$ wget https://raw.github.com/envytools/firmware/master/extract_firmware.py
$ wget http://us.download.nvidia.com/XFree86/Linux-x86/325.15/NVIDIA-Linux-x86-325.15.run
$ sh NVIDIA-Linux-x86-325.15.run --extract-only
$ python extract_firmware.py
# mkdir /lib/firmware/nouveau
# cp -d nv* vuc-* /lib/firmware/nouveau/

J’ai aussi installé les paquets mesa-va-drivers, libvdpau-va-gl1 et mesa-utils.

Au redémarrage de la machine, les firmwares sont bien chargés, mais le problème persiste dans Firefox.

Cette page recommande d’ajouter/modifier les paramètres suivants dans sa configuration about:config :

media.ffmpeg.vaapi.enabled = true
widget.wayland-dmabuf-vaapi.enabled = true
media.ffmpeg.vaapi-drm-display.enabled = true
media.ffmpeg.enabled = true

Au redémarrage de Firefox, j’arrive à lire quelques vidéos, plus ou moins saccadées, mais au bout de quelques secondes ou minutes, même problème. Ma session graphique gèle, sauf si je tue Firefox par SSH.

Comment régler ce problème ?

Et si tu désactives totalement l’accélération matérielle dans les paramètres de Firefox, ça fait la même chose ?

Et si tu lances glxgears pour voir ?

Effectivement, lorsque je la désactive, ça fonctionne parfaitement mais la charge CPU augmente beaucoup. Donc j’en déduis que je peux faire un trait sur l’accélération matérielle avec ma carte graphique ?

Faire un trait sur une fonctionnalité de base d’une carte Nvidia ? Personnellement, ça ne me choque plus, mais je comprends que ça puisse te pose souci de ne pas donner le travail de rendu visuel à la bonne puce.

Ça me pose moins de souci que voir mon navigateur préféré dysfonctionner ! Donc ça me va comme ça. Je comprends mieux le geste provocateur d’un certain L. Torvalds à propos de Nvidia…
En tous cas, merci, mon ordinosaure continue à fonctionner, c’est mon objectif principal.

Et avec le pilote nVidia ?