Note: Bumblebee sous Linux Mint 20 et Steam

J'étais sous Linux Mint 19.2 il y a encore une semaine, avec Bumblebee fonctionnel et un driver Nvidia 390. Tout fonctionnait comme il fallait, optirun, primusrun, etc.

Après 3h de mise à jour, me voilà sous Mint 20. Quelques bricoles à reconfigurer (dont Bumblebee), mais tout fonctionne. Sauf le lancement des jeux Steam avec la carte Nvidia.

Quoi que je fasse, Steam utilise la carte Intel. J'ai tout essayé. Dans les options de lancement des jeux : optirun %command%, primusrun %command%, avec ou sans LD_PRELOAD ou d'autres variables. J'ai dû essayer tout ce qui est trouvable sur le net.

Lancer Steam avec optirun steam, primusrun steam, vglrun steam… lance Steam sur la carte Intel.

J'ai même fait un STEAM_RUNTIME=0 steam… mais ça boucle sur l'écran de connexion, sans erreur ni rien.

En désespoir de cause, j'ai enlevé Bumblebee pour essayer PRIME…

  • prime-select intel empêche d'utiliser la carte Nvidia, alors qu'elle est active.
  • prime-select nvidia la fait tourner tout le temps, ce qui est bruyant et fait chauffer le PC.
  • prime-select on-demand fait planter Cinnamon au démarrage en mode de secours (parce qu'aucun accès à une quelconque accélération graphique, comme si je n'avais aucun pilote installé).

En voulant réinstaller Bumblebee à partir de là, j'ai réussi l'exploit d'éteindre complètement la carte Nvidia, de sorte qu'elle n'apparaissait plus dans lspci. Je suspecte PRIME de la cacher d'une manière ou d'une autre.

Ce qui rendait donc Bumblebee inopérant, puisqu'il ne trouvait pas la carte. Système bloqué.

Une relance de Timeshift et une réinstallation des paquets plus tard, me revoilà au point de départ.

La carte Nvidia est bien utilisée pour tout, sauf pour Steam. Et là, je ne vois pas comment faire. Au pire, je peux passer un profil MESA dans les options de lancement, ce qui lance certains jeux qui demandent un OpenGL > 4. Mais ça reste sur la carte Intel…

Comme le laptop va sur ses 9 ans, que la carte Nvidia (GeForce 610M) n'est pas prise en charge par des pilotes plus récents, je vois pas ce que je peux faire de plus.

Je suis bloqué. Ça me désespère. Certes, je pourrais installer PRIME et essayer un truc avec bbswitch pour désactiver la carte Nvidia quand je suis sous Intel. Mais comme le offloading ne fonctionne pas, je devrai redémarrer à chaque fois que je veux jouer. Autant redémarrer sous Windows.

Même nvidia-xrun ne fonctionne pas. J'arrive au mieux à lancer une openbox-session qui débouche sur un X écran noir complet, pas de curseur.


Bon, ce qui ne fonctionnait pas avec nvidia-xrun, c'est que Bumblebee met un blacklist dans /lib/modprobe.d/blacklist-nvidia.conf. Suffit de l'enlever, et on peut lancer une session Openbox.

Steam ne se lance pas à partir du menu, mais j'arrive à le faire démarrer depuis Lutris. Et là, c'est magique, tout fonctionne. Enfin, presque tout, puisque certains jeux ont un fullscreen étrange (on dirait du fenêtré en 800x600, mais en fullscreen avec du noir tout autour…).

Reste donc à modifier nvidia-xrun ou faire un wrapper pour modifier blacklist-nvidia.conf dynamiquement.

Il y a un autre souci : le passage de l'X sous Nvidia à l'X sous Intel fait freeze ce dernier en écran noir. Il faut d'abord quitter le premier pour revenir au TTY, avant de switcher. C'est assez mineur en somme.

D'autres problèmes viennent d'Openbox, comme le fait qu'il récupère une liste d'applications à démarrer depuis Cinnamon (et si avoir Conky en double c'est pas gênant, Mailnag plante…), ou que le terminal ne s'ouvre pas…


Bon. Après une erreur de manip, j'ai réussi à émuler une sorte de PRIME offload avec Bumblebee et Steam.

Grosso modo, si l'on supprime le fichier /lib/modprobe.d/blacklist-nvidia.conf et que l'on redémarre, on se retrouve avec sur la carte Intel, mais avec la possibilité d'utiliser optirun pour lancer Steam sur la carte Nvidia.

Ce serait l'idéal… Mais la carte Nvidia tourne en permanence, et impossible de l'éteindre.


Ça ne marche pas. J'ai tenté de réitérer l'expérience, et ça boot sur la carte Nvidia.

Pareil, j'ai retenté nvidia-xrun openbox-session avec un script qui enlève le dossier ~/.config/autostart et qui supprime le fichier blacklist-nvidia.conf. Ça a fonctionné correctement, jusqu'à la fin de la session X, et au moment de décharger les modules : FATAL: module nvidia is in use. Pourquoi, comment, aucune idée.

Il est possible que l'on doive faire cela dans un certain ordre :

  1. Supprimer blacklist-nvidia.conf
  2. Lancer la session X
  3. Pendant que la session est lancée, remettre blacklist-nvidia.conf

Ou alors il faut fermer Bumblebee. Aucune idée. Ça fait quatre jours que je suis dessus, je commence à fatiguer.


Il fallait fermer Bumblebee.

Fenêtre Steam tournant sous OpenBox avec la carte Nvidia


Ça a l'air de fonctionner. Plus ou moins bien, comme rustine. J'aime pas du tout cette solution, mais elle m'évite d'avoir à redémarrer.

Faut savoir que mon PC est un Asus. Qui va sur ses 9 ans. Qu'il a perdu sa gestion de l'énergie au niveau hardware un an après sa sortie : plus de veille, plus d'hibernation, plus d'extinction. Il peut juste démarrer et redémarrer. J'ai une ligne dans GRUB qui me permet de le laisser sur un écran pour l'éteindre physiquement sans casse.

J'ai aussi un script pour simuler une veille (extinction de tout ce qu'il est possible d'éteindre, CPU au minimum, ventilateur tournant moins vite mais prévenant quand même la surchauffe, etc.).

Donc dans les faits, il reste allumé en permanence, avec une conso électrique assez faible, ce qui me permet de reprendre mon boulot dès le réveil. Donc redémarrer ça signifie fermer tous les logiciels, enregistrer tout mon travail, et me souvenir de rouvrir le navigateur de fichiers et le terminal au bon endroit. Pour ça que j'évite au maximum.

Vous pouvez utiliser votre blog supportant les webmentions pour répondre à cette note. Par engagement, seules les webmentions et les réponses du Fediverse sont affichées.

 Webmention
×

Puisque le web est décentralisé, vous pouvez utiliser votre propre blog supportant les webmentions ou les pingbacks pour réagir. Selon le microformat, un commentaire, un like, un bookmark ou un repost sera affiché ici. En savoir plus.

Votre blog ne supporte pas l’envoi de webmentions ou de pingbacks ? Ajoutez le lien de votre mention dans le champ ci-dessous :

Pour éviter le spam, toute mention provenant d’un domaine qui ne figure pas dans ma liste blanche ou qui n’est pas parrainée par l’un de ces domaines sera considérée comme un simple like.

×

Puisque le Fediverse est décentralisé, vous pouvez utiliser votre compte existant hébergé par un serveur Mastodon ou une plateforme compatible.

Si vous n’êtes pas connecté⋅e sur ce navigateur, copiez et collez cette URL dans le champ de recherche de votre application Fediverse préférée ou de l’interface web de votre serveur Mastodon. Sinon, cliquez sur