Cette page n'est plus à jour : il est question de basculement automatique (comment ???) et plus bas de baculement forcément manuel. Merci à des personnes compétentes d'actualiser le document.

Prime : Optimus sous Linux

Cette page présente l'installation du logiciel Prime, dont le but est de supporter la technologie Optimus de NVIDIA sous Linux.

Prime apporte un meilleur support pour les ordinateurs portables disposant de la technologie Optimus. Il permet de gérer cette technologie présente dans de nombreux PC portables équipés d’un processeur Intel et d’une carte graphique dédiée Nvidia. Pour rappel, Optimus permet de basculer automatiquement de l’une à l’autre, en fonction des logiciels lancés par l’utilisateur.

Prime prend en charge les pilotes propriétaires Nvidia mais ne fonctionne pas avec le pilote libre Nouveau !

De manière générale, les différents composants matériels présents dans de tels ordinateurs nécessitent l'utilisation d'un noyau récent.

Si vous voulez installer le support Optimus avec le pilote graphique Nvidia 319 ouplus récent, voici ce que vous devez faire :

Tout d'abord, désinstaller Bumblebee et libvdpau-va-gl1 si nécessaire :

sudo apt-get purge bumblebee* primus libvdpau-va-gl1

Ensuite, il faut installer les drivers propriétaires NVidia. Lancez "Pilotes additionnels" (pressez une fois la touche Super et commencez à taper le nom de l'application) : lancement de "Pilotes additionnel"

Cela lance l'application "Logiciels et mises à jour" sur l'onglet "Pilotes additionnels": Sélecteur de pilotes additionnels Si "Nouveau" est sélectionné, vous utilisez les pilotes libres. Vous constatez que les noms de pilotes finissent pas un numéro de version. Sur l'illustration ci-dessus, la dernière version du driver propriétaire NVIDIA est la 460, c'est donc celle-ci que je sélectionne. N'oubliez pas de cliquer sur "Appliquer les changements". Vous aurez à entrer votre mot de passe. Le pilote sélectionné ne sera actif qu'au redémarrage de votre machine.

Pour obtenir l’accélération GPU pour les vidéos HD via le pilote nvidia et un player compatible (VLC, mplayer, xbmc, etc) il suffit d'installer le paquet vdpau-va-driver

Redémarrez ensuite votre système.

Après le redémarrage, vous pourrez utiliser l'application nvidia-settings pour choisir les performances (passage du GPU intégré au GPU NVidia et vice versa).

Le basculement n'est pas automatique comme sous Windows® mais manuel. Il y a 2 solutions.

Pour les 2 méthodes, le basculement de votre carte graphique nécessite le redémarrage de votre session utilisateur.

Nvidia Settings

Pour Ubuntu et toutes ses variantes:

Sélection du profil

Lancez Nvidia-setting l'utilitaire de configuration Nvidia. Vous aurez un onglet PRIME profiles qui permet de changer le processeur graphique actif.

nvidia-settings profiles

Désormais, il y a 3 options de profil :

  1. NVIDIA (Performance Mode) : ce profile sélectionne votre GPU dédié NVidia ("dGPU"). Votre machine consommera plus (même sans application spécifique lancée), mais si vous lancez une application ouun jeu sollicitant fortement le GPU, vous aurez les meilleures performances. C'est uniquement dans ce mode que vous aurez accès aux autres options de votre GPU Nvidia (résolution, correction des couleurs, etc.)
  2. Nvidia On-Demand : ce profil permet d'alterner entre le dGPU et le GPU intégré ("iGPU"). Ce mode est le plus flexible car il permet d'utiliser l'iGPU peu consommateur en énergie par défaut, et de lancer certaines applications avec le dGPU (jeu ouautre application utilisant intensivement la 3D).
  3. Intel (Power Saving Mode) : ce profil force l'utilisation de l'iGPU uniquement (ici l'iGPU embarqué sur un CPU Intel). Vous n'aurez pas les meilleures performance mais la meilleure autonomie.

Utilisation du profil "On Demand"

Dans ce mode, les applications s'exécutent par défaut avec l'iGPU. Cependant, il rexiste un moyen de lancer une application avec votre dGPU NVidia à la volée.
Via l'interface graphique

À partir du moment où vous utilisez le profil "On Demand", vous pouvez lancer une application avec votre dGPU en faisant un clic droit → "Démarrer en utilisant la carte graphique dédiée" sur son icône de lancement.

Démarrer une application en utilisant la carte dédiée

Via la ligne de commande

De manière générale, vous contrôlez si un programme démarre avec le dGPU avec ces variables d'environnement :

Variable Valeur Effet
__NV_PRIME_RENDER_OFFLOAD 1 Active lerender offload
__GLX_VENDOR_LIBRARY_NAME nvidia Sélectionne le dGPU NVidia. En effet, le render offload peut théoriquement être utilisé avec d'autres dGPU que NVidia

Pour aller plus loin, voir la doc officielle sur le render offload NVidia

Voici deux lignes de commande qui servent à valider que les variables sont bien prises en compte :

$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
$ glxinfo | grep vendor
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
OpenGL vendor string: Intel

Les commandes ci-dessus appellent glxinfo respectivement avec le dGPU et le iGPU, puis sélectionnent les lignes affichant le mot "vendor".

Dans certains cas, il peut être nécessaire d'exporter les variables d'environnement :

  • si vous souhaitez que tous les programmes lancés depuis un terminal utilisent le dGPU
  • si vous souhaitez que tous les programmes lancés depuis un script shell utilisent le dGPU
  • si la ligne de commande que vous exécutez ne lance pas directement le programme qui utilise la carte graphique, mais un script ouun programme intermédiaire
En modifiant un lanceur

Vous pouvez créer un lanceur d'application qui lance toujours l'application cible avec le dGPU en l'éditant avec un éditeur de texte de manière à préfixer la commande de lancement (ligne Exec=) avec les variables vues dans la section précédente.

Par exemple, si lanceur de l'application (un fichier avec l'extension .desktop) contient la ligne :

Exec=/usr/bin/mon_application

… alors vous devrez l'éditer pour obtenir :

Exec=env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia /usr/bin/mon_application
Dans les adaptateurs pour les application et jeux

Les adaptateurs tels wine, steam oulutris possèdent tous des moyens pour définir les variables d'environnement afin que l'application puisse être lancée sur le dGPU. Référez-vous à leurs documentations respectives.

Prime Indicator

Pour Ubuntu Unity et Cubuntu:

La méthode précédente est préférable. Si vous rencontrez des problèmes avec cette méthode, utilisez la précédente. Le support de l'applet Prime Indicator est inconnu.

Prime Indicator est un petit utilitaire pour Ubuntu qui permet aux utilisateurs de basculer rapidement entre les cartes graphiques Intel et Nvidia.

  1. Ajoutez le PPA ppa:kranich/cubuntu1) dans vos sources de logiciels;
  2. Puis redémarrez votre système.

Gel de l'écran à l'utilisation du touchpad

Après l'installation de Prime et des derniers pilotes propriétaires Nvidia, un bug provoquerait un gel de l'écran à l'utilisation du touchpad. Les détails et témoignages sur launchpad.net (en anglais) ici et ici.

Si NVIDIA X Server Settings ne lance plus

Ce problème n'est plus censé se produire. Avec les nouveaux drivers propriétaires NVidia qui supportent le profil "On Demand", prime-select ne devrait plus être utilisé.

Après avoir installé le driver propriétaire, il est possible de switcher dans l'onglet Prime entre la carte graphique et le processeur. Un bug reconnu empêche NVIDIA X Server Settings de se lancer en version 384.69-0ubuntu1 lorsque le choix Prime est mis sur le processeur.

Dans ce cas, pour switcher à nouveau, il faut utiliser cette commande :

sudo prime-select nvidia

pour basculer sur la carte graphique

ou

sudo prime-select intel

pour revenir sur le processeur.

En version 20.04.1 jongler avec cette technique peut empêcher de booter Voir cette discussion

Redémarrez votre ordinateur après chaque changement.


  • prime.txt
  • Dernière modification: Le 24/02/2023, 23:44
  • par 88.166.188.193