Certaines applications et certains jeux conçus avec la prise en charge d'OpenGL et fournis sous forme de Flatpak ne peuvent pas démarrer avec les pilotes Nvidia propriétaires. Cet article explique comment lancer de telles applications ou jeux Flatpak sans installer les pilotes open source (Nouveau).
Voici un exemple. J'utilise les pilotes Nvidia propriétaires sur mon bureau Ubuntu 18.04 (nvidia-driver-390
) et lorsque j'essaie de démarrer le dernier Krita 4.1 installé en tant que Flatpak (qui a été construit avec le support OpenGL), j'obtiens les erreurs suivantes :
$ /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=krita --file-forwarding org.kde.krita
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Could not initialize GLX
Les jeux Winepak (jeux Windows fournis avec Wine en tant que packages Flatpak) semblent également affectés par cette sortie Flatpak qui est ouverte depuis 2016.
Pour réparer les jeux et applications Flatpak qui ne démarrent pas lors de l'utilisation d'OpenGL avec des pilotes graphiques Nvidia propriétaires, vous devrez installer un runtime pour vos pilotes Nvidia propriétaires actuellement installés. C'est comme ça.
1. Ajoutez le référentiel FlatHub si vous ne l'avez pas déjà fait. Vous pouvez trouver des instructions détaillées pour votre distribution Linux ici.
2. Vous devez maintenant connaître la version exacte des pilotes Nvidia propriétaires installés sur votre système.
Cette étape dépend de la distribution Linux que vous utilisez et je ne peux pas couvrir tous les cas. Les instructions ci-dessous sont orientées vers Ubuntu (et les variantes d'Ubuntu), mais j'espère que vous pourrez découvrir par vous-même quelle version du pilote Nvidia est installée sur votre système.
Pour ce faire dans Ubuntu, ouvrez Software & Updates
, passer à Additional Drivers
Tab et notez le nom du package de pilotes Nvidia.
Par exemple, c'est nvidia-driver-390
Dans mon cas, comme vous pouvez le voir ici :
Ce n'est pas tout. Nous n'avons trouvé que la version majeure du pilote Nvidia, mais nous devons également connaître la version mineure. Pour obtenir la version exacte du pilote Nvidia dont nous aurons besoin pour l'étape suivante, exécutez cette commande (devrait fonctionner dans n'importe quelle distribution Linux basée sur Debian comme Ubuntu, Linux Mint, etc.) :
apt-cache policy NVIDIA-PACKAGE-NAME
Où NVIDIA-PACKAGE-NAME est le nom du package de pilotes Nvidia répertorié dans Software & Updates
. Par exemple, pour connaître la version exacte du nvidia-driver-390
Package, exécutez cette commande :
$ apt-cache policy nvidia-driver-390
nvidia-driver-390:
Installed: 390.48-0ubuntu3
Candidate: 390.48-0ubuntu3
Version table:
*** 390.48-0ubuntu3 500
500 https://ro.archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages
100 /var/lib/dpkg/status
Dans la sortie de cette commande, recherchez le Installed
Sectionnez et notez les numéros de version (sauf -0ubuntu3
et similaires). Nous connaissons maintenant la version exacte des pilotes Nvidia installés (390.48
dans mon exemple). N'oubliez pas car nous en avons besoin pour la prochaine étape.
3. Enfin, vous pouvez installer le runtime Nvidia pour vos pilotes graphiques Nvidia propriétaires installés à partir de FlatHub
Pour répertorier tous les packages d'exécution Nvidia disponibles sur FlatHub, vous pouvez utiliser cette commande :
flatpak remote-ls flathub | grep nvidia
Espérons que le runtime de vos pilotes Nvidia installés sera disponible sur FlatHub. Vous pouvez maintenant procéder à l'installation de l'environnement d'exécution en utilisant cette commande :
- Pour les systèmes 64 bits :
flatpak install flathub org.freedesktop.Platform.GL.nvidia-MAJORVERSION-MINORVERSION
Remplacez MAJORVERSION par la version majeure du pilote Nvidia installé sur votre ordinateur (390 dans mon exemple ci-dessus) et
MINOR VERSION par la version mineure (48 dans mon exemple de l'étape 2).
Par exemple, pour installer le runtime du pilote graphique Nvidia version 390.48, vous devez utiliser cette commande :
flatpak install flathub org.freedesktop.Platform.GL.nvidia-390-48
- Pour les systèmes 32 bits (ou pour pouvoir exécuter des applications ou des jeux 32 bits sur 64 bits), installez l'environnement d'exécution 32 bits avec :
flatpak install flathub org.freedesktop.Platform.GL32.nvidia-MAJORVERSION-MINORVERSION
Encore une fois, remplacez MAJOR VERSION par la version majeure du pilote Nvidia installé sur votre ordinateur (390 dans mon exemple ci-dessus) et MINORVERSION par la version mineure (48 dans mon exemple de l'étape 2).
Par exemple, pour installer le runtime 32 bits pour la version 390.48 du pilote graphique Nvidia, vous devez utiliser cette commande :
flatpak install flathub org.freedesktop.Platform.GL32.nvidia-390-48
C'est tout ce que vous devez faire pour obtenir des applications packagées Flatpak ou des jeux créés avec OpenGL.