NVIDIA Optimus (Français)

État de la traduction:
Cet article est la version francophone de
NVIDIA Optimus
. Date de la dernière traduction: 2022-10-04. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Related articles
PRIME
Bumblebee (Français)
Nouveau (Français)
NVIDIA (Français)
nvidia-xrun
External GPU
NVIDIA Optimus
est une technologie qui permet d'intégrer un GPU intégré Intel et un GPU dédié NVIDIA dans un ordinateur portable et d'y accéder.
Méthodes disponibles
Il y a plusieurs méthodes disponibles :
#Utiliser uniquement la carte Intel
- économise de l'énergie, car le GPU NVIDIA sera complètement éteint.
#Utiliser uniquement la carte NVIDIA
- donne plus de performance que la carte Intel, mais draine plus de batterie (ce qui n'est pas bienvenu pour les appareils mobiles). Cette option utilise le même processus sous-jacent que les options
optimus-manager
et
nvidia-xrun
, elle devrait être utilisée pour le dépannage et la vérification du fonctionnement général, avant d'opter pour l'une des approches plus automatisées.
Utiliser les deux (utiliser le GPU NVIDIA quand c'est nécessaire et le garder éteint pour économiser de l'énergie) :
#Utiliser le déchargement de rendu PRIME
- méthode officielle prise en charge par NVIDIA.
#Utiliser optimus-manager
- choisir la carte graphique avec une seule commande (déconnexion et connexion requises pour prendre effet). Il permet d'obtenir les performances maximales du GPU NVIDIA et de le désactiver s'il n'est pas utilisé. Depuis la version 1.4, la combinaison AMD+NVIDIA est également prise en charge.
#Utiliser nvidia-xrun
- exécute une session X séparée sur différents TTY avec des cartes NVIDIA. Il atteint les performances maximales du GPU NVIDIA et le désactive s'il n'est pas utilisé.
#Utiliser Bumblebee
- fournit des fonctionnalités similaires à celles de Windows en permettant de faire tourner certaines applications avec des cartes NVIDIA tout en utilisant des cartes Intel pour tout le reste. A des problèmes de performance significatifs.
#Utiliser nouveau
- offre de moins bonnes performances (par rapport au pilote propriétaire NVIDIA) et peut causer des problèmes avec la mise en veille et la mise en veille prolongée. Ne fonctionne pas avec les derniers GPU NVIDIA.
#Utiliser EnvyControl
- Similaire à optimus-manager mais ne nécessite pas de configuration extensive ou d'avoir un daemon tournant en arrière-plan ainsi que d'avoir à installer une version patchée de GDM si vous êtes un utilisateur de
GNOME
.
#Utiliser NVidia-eXec
- Similaire à Bumblebee, mais sans l'impact sur les performances. Il fonctionne à la fois sur Xorg et Wayland. Ce paquet est expérimental, et est actuellement testé uniquement sous GNOME/GDM.
#Utiliser nvidia-switch
- Similaire à nvidia-xrun, mais sans avoir besoin de changer de TTY, les changements seront faites par les ouvertures et fermetures de session dans votre gestionnaire d'affichage. Ce paquet est en cours de test sur un système basé sur Debian, mais, comme nvidia-xrun, il doit fonctionner sur tous les systèmes Linux.
Note
Toutes ces options sont mutuellement exclusives, si vous testez une approche et décidez d'en utiliser une autre, vous devez vous assurer de rétablir tous les changements de configuration effectués en suivant une approche avant d'essayer une autre méthode, sinon des conflits de fichiers et des comportements indéfinis peuvent survenir.
Utiliser uniquement la carte Intel
Si vous ne souhaitez utiliser qu'un seul GPU sans changer de carte, vérifiez les options du BIOS de votre système. Il devrait y avoir une option pour désactiver l'une des cartes. Certains ordinateurs portables ne permettent de désactiver que la carte dédiées, ou vice-versa, mais cela vaut la peine de vérifier si vous ne prévoyez d'utiliser qu'une seule des cartes.
Si votre BIOS ne permet pas de désactiver la carte graphique Nvidia, vous pouvez la désactiver à partir du noyau Linux lui-même. Consultez
Hybrid graphics#Fully power down discrete GPU
.
Utiliser CUDA sans changer de fournisseur de rendu
Vous pouvez utiliser CUDA sans basculer le rendu vers la carte graphique Nvidia. Tout ce que vous devez faire est de vous assurer que la carte Nvidia est sous tension avant de lancer une application CUDA, consultez
Hybrid graphics#Fully power down discrete GPU
pour plus de détails.
Désormais, lorsque vous lancerez une application CUDA, celle-ci chargera automatiquement tous les modules du noyau nécessaires. Avant d'éteindre la carte Nvidia après avoir utilisé CUDA, les modules du noyau
nvidia
doivent d'abord être déchargés :
# rmmod nvidia_uvm
# rmmod nvidia
Utiliser uniquement la carte NVIDIA
Le pilote propriétaire NVIDIA peut être configuré pour être le principal fournisseur de rendu. Il présente également des problèmes notables de lissage d'écran, sauf si vous activez la synchronisation principale en activant le paramètre
NVIDIA (Français)#DRM kernel mode setting
, consultez
[1]
pour plus d'informations. Il permet d'utiliser le GPU dédié et présente (à partir de
janvier 2017
) un avantage marqué en termes de performances par rapport au pilote nouveau.
Tout d'abord,
installez
le pilote
NVIDIA
et
xorg-xrandr
. Ensuite, configurez
/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
dont les options seront combinées avec le paquet fourni
/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
pour assurer la compatibilité avec cette configuration.
Note
Sur certaines configurations, cette configuration interrompt la détection automatique des valeurs de l'affichage par le pilote nvidia via le fichier EDID. Pour contourner ce problème, consultez
#Résolution, balayage d'écran incorrect. Erreurs EDID dans Xorg.log
.
/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
Section "OutputClass"
    Identifier "intel"
    MatchDriver "i915"
    Driver "modesetting"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection
Ensuite, ajoutez les deux lignes suivantes au début de votre
~/.xinitrc
:
~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Maintenant, redémarrez pour charger les pilotes, et X devrait démarrer.
Si le dpi de votre affichage n'est pas correct, ajoutez la ligne suivante :
xrandr --dpi 96
Si vous obtenez un écran noir au démarrage de X, vérifiez qu'il n'y a pas d'esperluettes après les deux commandes
xrandr
dans
~/.xinitrc
. S'il y a des esperluettes, il semble que le gestionnaire de fenêtres puisse s'exécuter avant que les commandes
xrandr
ne finissent de s'exécuter, ce qui conduit à un écran noir.
Gestionnaires d'affichage
Si vous utilisez un
gestionnaire d'affichage
, vous devrez créer ou modifier un script de configuration d'affichage pour votre gestionnaire d'affichage au lieu d'utiliser
~/.xinitrc
.
LightDM
Pour le gestionnaire d'affichage
LightDM
:
/etc/lightdm/display_setup.sh
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Rendez le script
exécutable
.
Configurez maintenant lightdm pour qu'il exécute le script en éditant la section
[Seat:*]
dans
/etc/lightdm/lightdm.conf
:
/etc/lightdm/lightdm.conf
[Seat:*]
display-setup-script=/etc/lightdm/display_setup.sh
Maintenant, redémarrez et votre gestionnaire d'affichage devrait démarrer.
SDDM
Pour le gestionnaire d'affichage
SDDM
(SDDM est le DM par défaut pour
KDE
) :
/usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
GDM
Pour le gestionnaire d'affichage
GDM
, créez deux nouveaux fichiers .desktop :
/usr/share/gdm/greeter/autostart/optimus.desktop
/etc/xdg/autostart/optimus.desktop
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
Assurez-vous que GDM utilise
X comme serveur par défaut
.
Vérification de la 3D
Vous pouvez vérifier si la carte NVIDIA est utilisée en installant
mesa-utils
et en exécutant
$ glxinfo | grep NVIDIA
Informations complémentaires
Pour plus d'informations, consultez la page officielle de NVIDIA sur le sujet
[2]
.
Basculer entre les cartes graphiques
Utiliser le déchargement de rendu PRIME
Il s'agit de la méthode officielle de NVIDIA pour prendre en charge le choix de cartes graphiques.
Consultez
PRIME#PRIME render offload
pour plus de détails.
Utiliser nouveau
Consultez
PRIME
pour choisir votre carte graphique et
nouveau
pour le pilote NVIDIA open-source.
Utiliser Bumblebee
Consultez
Bumblebee
.
Utiliser nvidia-xrun
Consultez
nvidia-xrun
.
Utiliser optimus-manager
Consultez la documentation en amont d'
Optimus-manager
. Elle couvre à la fois l'installation et la configuration avec Arch Linux.
Utiliser EnvyControl
Consultez la documentation en amont d'
EnvyControl
. Elle couvre à la fois l'installation et les instructions d'utilisation.
Utiliser NVidia-eXec
Consultez la documentation en amont de
NVidia-eXec
. Elle couvre à la fois les instructions d'installation et d'utilisation.
Utiliser nvidia-switch
Voir la documentation en amont de
nvidia-switch
. Elle couvre à la fois les instructions d'installation et d'utilisation.
Dépannage
Tearing/perte de VSync
Activez le
DRM kernel mode setting
, qui activera à son tour la synchronisation PRIME et corrigera le tearing.
Vous pouvez lire le fil de discussion officiel du forum
[3]
pour plus de détails.
Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!)
Ajouter
rcutree.rcu_idle_gp_delay=1
aux paramètres du noyau. Le sujet original se trouve dans
[4]
et
[5]
.
Résolution, balayage d'écran incorrect. Erreurs EDID dans Xorg.log
Ceci est dû au fait que le pilote NVIDIA ne détecte pas l'EDID de l'écran. Vous devez spécifier manuellement le chemin d'accès à un fichier EDID ou fournir les mêmes informations d'une manière similaire.
Pour fournir le chemin d'accès au fichier EDID, éditez la section Device de la carte NVIDIA dans Xorg.conf, en ajoutant ces lignes et en modifiant certaines parties pour refléter votre propre système :
/etc/X11/xorg.conf
Section "Device" (Périphérique)
       	Option "ConnectedMonitor" "CRT-0" (moniteur connecté)
       	Option "CustomEDID" "CRT-0:/sys/class/drm/card0-LVDS-1/edid"
	Option "IgnoreEDID" "false" (ignorer l'identifiant)
	Option "UseEDID" "true" (vrai)
EndSection
Si Xorg ne démarre pas, essayez de remplacer toutes les références de CRT par DFB.
card0
est l'identifiant de la carte Intel à laquelle l'écran est connecté via LVDS. Le binaire edid se trouve dans ce répertoire. Si l'arrangement matériel est différent, la valeur de CustomEDID peut varier mais ceci doit encore être confirmé. Le chemin commencera dans tous les cas par
/sys/class/drm
.
Vous pouvez également générer votre edid avec des outils comme
read-edid
et faire pointer le pilote vers ce fichier. Même les modélisations peuvent être utilisées, mais assurez-vous alors de modifier
UseEDID
et
IgnoreEDID
.
Mauvaise résolution sans erreur EDID
En utilisant
nvidia-xconfig
, des informations incorrectes peuvent être générées dans
xorg.conf
et en particulier des taux de rafraîchissement de moniteur erronés qui restreignent les résolutions possibles. Essayez de commenter les lignes
HorizSync
/
VertRefresh
. Si cela vous aide, vous pouvez probablement aussi supprimer tout ce qui n'est pas mentionné dans cet article.
Problème de verrouillage (lspci hangs)
Symptômes : lspci se bloque, la suspension du système échoue, l'arrêt se bloque, optirun se bloque.
Concerne : les ordinateurs portables récents avec GTX 965M ou similaire lorsque bbswitch (par exemple via Bumblebee) ou nouveau est utilisé.
Lorsque la ressource d'alimentation dGPU est activée, elle peut ne pas le faire et se bloquer dans le code ACPI (
kernel bug 156341
).
Lorsque vous utilisez nouveau, la désactivation de la gestion de l'alimentation au moment de l'exécution l'empêche de changer l'état de l'alimentation, évitant ainsi ce problème.
Pour désactiver la gestion de l'alimentation au moment de l'exécution, ajoutez
nouveau.runpm=0
aux paramètres du noyau.
Pour les solutions de contournement spécifiques aux modèles connus, consultez
this issue
.
Dans d'autres cas, vous pouvez essayer de démarrer avec
acpi_osi="!Windows 2015"
ou
acpi_osi= ! acpi_osi="Windows 2009"
ajoutés à vos
paramètres du noyau
. (Pensez à signaler votre ordinateur portable dans ce rapport de bug).
Aucun écran trouvé sur un ordinateur portable/NVIDIA Optimus
Vérifiez si le résultat ressemble à :
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation Device 0df4 (rev a1)
Les pilotes NVIDIA prennent en charge Optimus depuis la version 319.12 Beta
[6]
avec les noyaux 3.9 et plus.
Une autre solution consiste à installer le pilote
Intel
pour gérer les écrans, puis si vous voulez des logiciels 3D, vous devez les faire passer par
Bumblebee
pour leur dire d'utiliser la carte NVIDIA.
Gels aléatoires "(EE) NVIDIA(GPU-0) : WAIT"
En utilisant les pilotes propriétaires sur une configuration avec une carte AMD intégrée et avec la carte NVIDIA dédiée comme seule carte utilisée, les utilisateurs signalent des blocages pouvant durer jusqu'à 10 secondes, avec les erreurs suivantes dans les journaux Xorg :
[219.796] (EE) NVIDIA(GPU-0) : WAIT (2, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)
[226.796] (EE) NVIDIA(GPU-0) : WAIT (1, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)
Bien que la cause du problème ne soit pas encore identifiée, elle semble liée à un conflit dans la façon dont les cartes intégrées et dédiées interagissent avec Xorg.
La solution consiste à utiliser des graphiques interchangeables, voir
PRIME#PRIME render offload
pour plus de détails.