Cartes graphiques NVIDIA
Comme tout périphérique, une carte graphique a besoin de pilotes pour fonctionner. Il existe un pilote libre et un pilote propriétaire pour les cartes graphiques NVIDIA.
Identifier sa carte graphique
Avant de continuer plus loin, il peut être intéressant de connaître sa carte graphique. Pour cela, voir identifier sa carte graphique.
Pilote libre
Le pilote libre, du nom de nouveau, (pour le différencier de l'ancien ) est utilisé par défaut sur Ubuntu.
L'utilisation de ce pilote est recommandée par la communauté des logiciels libres. Ils sont par nature mieux intégrés à Ubuntu que les pilotes propriétaires, mais il peut y avoir des lacunes dues aux délais de développement et aux spécifications non publiées par NVIDIA.
Cela dit ; grâce à l'avancée dans le développement de ce pilote, l'accélération matérielle et la 3D seraient sur le point de rattraper les performances du pilote propriétaire. Information à prendre avec réserve, puisque ce n'est pour le moment le cas que sur certains tests, sur certaines cartes graphiques.
(Sources des tests : Phoronix)
À noter, si la version du pilote libre ne convenait pas (cas d'une carte récente pas encore prise en charge), il est possible d'obtenir une version plus récente développée par la Fondation Xorg à l'aide du PPA proposé au chapitre d'installation du pilote propriétaire.
GRUB_GFXMODE=1024x768 #à adapter à votre écran GRUB_GFXPAYLOAD_LINUX=keep
Installation du pilote propriétaire
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Via les dépôts Ubuntu
Pour installer le pilote NVIDIA propriétaire, il est vivement recommandé d'utiliser le gestionnaire de pilotes propriétaires.
Une fois lancé, plusieurs choix de versions peuvent être disponibles.
- Choisir le pilote propriétaire désiré;
- "Appliquer les changements" (ou "activez" sur l'ancienne version du gestionnaire)
- Fermer le gestionnaire;
- Redémarrer votre ordinateur.
- Si aucun choix n'est disponible, c'est que la version du pilote NVIDIA des dépôts n'est pas ou n'est plus compatible avec votre carte. Ne tentez pas alors d'installer le pilote à l'aide d'un autre gestionnaire de paquets. Si vraiment le pilote libre en place ne vous satisfait pas, essayez plutôt une mise à jour Via un PPA ou une installation via le site officiel.
- Si la liste des choix est toujours vide après ces manipulations, parlez-en dans la section « Serveurs graphiques et cartes vidéo » du forum.
Via un PPA
(Ce PPA fonctionne aussi pour le pilote libre "nouveau".)
Une mise à jour vers des versions plus récentes des pilotes NVIDIA installés est disponible depuis un PPA maintenu par la Fondation X.Org .
À noter: Ce dernier est destiné à être utilisé comme un tout. N'installez pas de paquets individuellement mais ajouter seulement ce PPA à vos sources de logiciels et laissez votre gestionnaire de paquets faire la mise à jour. (Informations complémentaires disponibles sur la page launchpad du PPA. (en)).
Pour une première installation des pilotes Nvidia :
- Ajoutez le PPA ppa:graphics-drivers/ppa1) à vos sources de logiciels;
- Recherchez le pilote le plus adapté (driver recommended);
- Installez ce pilote;
Depuis un terminal il faut saisir les commandes suivantes:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update ubuntu-drivers devices sudo apt install nvidia-(numéro du pilote)
Il faut ensuite redémarrer votre ordinateur pour prendre en compte le nouveau pilote.
Pour une mise à jour d'un pilote Nvidia déjà installé vers la dernière version disponible proposée par la Fondation X.Org:
- Ajoutez le PPA ppa:graphics-drivers/ppa2) à vos sources de logiciels;
Ou depuis un terminal en saisissant les commandes suivantes:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update && sudo apt upgrade
Une fois terminé, pour prendre en compte les nouvelles versions, redémarrez votre ordinateur.
Via le site officiel
Si l'installation du pilote propriétaire puis sa mise à jour via le PPA ci-dessous ne vous convient pas ou si vous avez besoin de la toute dernière version pour faire fonctionner correctement votre carte graphique (carte très récente ou un peu ancienne), il est possible d'utiliser la toute dernière version du pilote disponible depuis le site officiel Nvidia.
De plus, contrairement à une installation via les dépôts, le module du pilote ainsi installé ne sera pas chargé dynamiquement. C'est à dire qu'à chaque mise à jour du noyau Linux vous devrez le ré-installer.
- Si un pilote propriétaire est utilisé, désinstallez-le.
- Téléchargez le pilote disponible sur cette page en mode manuel.
Puis dans un terminal à l'aide des commandes suivantes
- Déplacez-vous dans le dossier du téléchargement (exemple pour le dossier "Téléchargements"):
cd Téléchargements
- Rendre ce fichier exécutable
chmod +x NVIDIA-linux*
- Exécuter l'installateur
sudo ./NVIDIA-linux*
- Suivre les instructions;
- Redémarrez votre ordinateur pour qu'il puisse prendre en compte le nouveau pilote.
(Une fois l'installation terminée, conservez le fichier téléchargé, il vous sera utile pour le réinstaller en cas de mise à jour du noyau linux ).
Il ne vous reste plus qu'à configurer votre carte.
Changement de version du noyau Linux
Une fois la mise à jour du noyau faite et AVANT le redémarrage de l’ordinateur, désinstallez le pilote puis ré-installez-le suivant la méthode décrite ci-dessus. Vous pouvez alors redémarrer.
Si par inadvertance vous avez redémarré votre ordinateur avant cela, aucun module de pilote vidéo ne sera chargé dans le nouveau noyau. Vous vous retrouverez alors devant un écran noir. Pas de panique, il suffit simplement de:
- Redémarrer sur l'ancien noyau en choisissant celui-ci depuis le Grub, puis de
- Désinstaller et ré-installer le pilote.
Configuration
Nvidia-settings
Nvidia-settings est un outil pour configurer les pilotes NVIDIA sous Linux. Il est normalement installé par défaut avec le pilote propriétaire. Si ce n'était pas le cas, il suffit d'installer le paquet nvidia-settings
Il permet entre autre de :
- Changer la résolution et la fréquence de l'écran ;
- Configurer plusieurs écrans (en clone ou en twinview) ;
- Changer la luminosité, le contraste, le gamma ;
- Activer la synchronisation verticale ;
- Modifier le niveau d'anticrénelage ou d'anisotropie ;
- Connaître la température de la carte graphique ;
- Lancer l'application depuis le tableau de bord d'Unity avec le mot clé "NVIDIA".
- Ou dans un terminal, saisir la commande suivante:
nvidia-settings
ou en mode administrateur (Certains changements ne sont possibles que dans ce mode):
pkexec nvidia-settings
Options principales
Ces options seront prises en compte au prochain démarrage de l'application 3D.
Synchronisation verticale
Dans OpenGL settings, il est conseillé d'activer la case Sync to VBlank, qui permet de synchroniser l'affichage avec la fréquence verticale de l'écran.
Cela a deux effets bénéfiques :
- Si l'écran est à 60 Hz, pas besoin de dessiner 1300 images par seconde et faire tourner les ventilateurs à fond, 60 suffisent ;
- Sans cette option, il arrive que l'écran dessine réellement l'image alors que la carte graphique est en train d'écrire une nouvelle image, ce qui provoque des effets de « déchirement » :
Cependant, activer cette option ne résout pas TOUS les problèmes de déchirement. Regardez ici si les déchirements persistent.
Anticrénelage
L'anticrénelage permet de réduire les effets « escalier » sur les contours des objets 3D.
Voici la différence de rendu avec et sans anticrénelage (à gauche, l'anticrénelage est désactivé, à droite, il est activé au maximum) :
Pour l'activer, dans Antialiasing Settings, il suffit de sélectionner "Override Application Settings" (pour ne pas laisser le choix à l'application qui utilise de la 3D), et de régler la puissance du filtre.
Malgré le rendu assurément meilleur, il n'est pas conseillé d'activer cette option :
- cela provoque des problèmes de clignotement d'ombres assez désagréables dans compiz (voir le rapport de bogue) ;
- les performances en souffrent énormément.
Anisotropie
Le filtrage anisotrope permet de réduire les effets « escalier » à l'intérieur des fenêtres (sur les textures). Son effet est d'autant plus visible que l'on regarde l'objet 3D (une fenêtre sur une face du cube par exemple) avec un angle proche de 90°.
Voici la différence de rendu avec et sans filtrage anisotrope (à gauche, l'anisotropie est désactivée, à droite, elle est activée au maximum) :
Pour l'activer, dans Antialiasing Settings, il suffit de régler la puissance du filtre.
Pour obtenir un meilleur rendu, il est conseillé de l'activer, d'autant plus qu'elle consomme beaucoup moins de ressources que l'anticrénelage.
Paramètres NVIDIA pour Xorg
Il est possible d'effectuer certains réglages du pilote NVIDIA directement dans le fichier /etc/X11/xorg.conf
.
Une page de documentation est consacrée à ce fichier : Xorg.
xorg.conf
pourrait empêcher votre système de démarrer graphiquement. Avant toute installation ou manipulation, effectuez une sauvegarde du fichier xorg.conf.
Modification de la configuration
Éditez le fichier /etc/X11/xorg.conf avec les droits d'administration, repérez la section concernant les pilotes NVIDIA :
Section "Device" Identifier "Configured Video Device" Driver "nvidia" Option "NoLogo" "true" EndSection
Chaque option se présente sous la forme :
Option "NomDeLOption" "valeur"
Il suffit de rajouter une ligne par option dans la Section
correspondant aux pilotes NVIDIA.
Pour que les modifications soient prises en compte, il faut redémarrer le serveur X.
Options principales
AllowSHMPixmaps
Option "AllowSHMPixmaps" "boolean"
Cette option indique si les applications peuvent allouer des pixmaps en mémoire partagée. Il est recommandé de désactiver cette option (valeur FALSE
), car elle empêche le pilote NVidia d'accelérer de manière optimale les opérations de rendu impliquant des pixmaps.
PixmapCacheSize
Option "PixmapCacheSize" "integer"
Cette option réserve une partie de la mémoire de la carte graphique pour allouer rapidement de la mémoire et améliorer les performances des logiciels qui utilisent intensément les pixmaps. Utiliser une valeur de 1000000 ou supérieure améliore les opérations telles que le redimensionnement des fenêtres sous compiz ou kde4.
RandRRotation
Option "RandRRotation" "boolean"
Cette option permet d'utiliser xrandr pour pouvoir faire tourner l'écran (mode portrait, inversé etc.).
Documentation complète
Une documentation détaillée sur le site de NVIDIA, en anglais, présente toutes les options disponibles : les options des pilotes NVIDIA 177.80, les options des pilotes NVIDIA 96.43.13, …
Utilisation
Optimisations
Pour améliorer les performances des pilotes 177, certaines optimisations sont préconisées sur le forum NVIDIA.
Pour résumer, ajoutez dans la section consacrée aux pilotes NVIDIA de « /etc/X11/xorg.conf » les lignes :
Option "PixmapCacheSize" "1000000" Option "AllowSHMPixmaps" "0"
(pour plus d'informations sur la manière de procéder, voir ici)
Puis dans ~/.gnomerc, rajoutez :
nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
(nvidia-settings doit être installé)
Rotation de l'écran
Le choix se fait simplement dans les paramètres de résolution de l'écran (Paramètres Système → Affichage) en sélectionnant une option de rotation.
Connaître la version des pilotes
Dans nvidia-settings
Dans la page X Server Information de nvidia-settings
, la version des pilotes est affichée dans NVIDIA Driver Version
.
En ligne de commande
- Installer le paquet mesa-utils
- Puis dans un terminal, tapez la commande suivante:
glxinfo | grep OpenGL
Voici un exemple de résultat :
$ glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 1050/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 450.80.02 OpenGL core profile shading language version string: 4.60 NVIDIA OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.6.0 NVIDIA 450.80.02 OpenGL shading language version string: 4.60 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 450.80.02 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 OpenGL ES profile extensions:
Accélération matérielle du décodage des vidéos (VDPAU/VAAPI)
Vous pouvez améliorer le rendu de certaines vidéos avec le pilote propriétaire, grâce à l’accélération vidéo API, voir la page vaapi.
Overclock
sudo apt install nvidia-340 && sudo reboot #Pour bénéficier du support dkms
Veuillez ensuite télécharger le .run dans sa version 340.106, et rendre votre script .run exécutable.
Ensuite, dans un terminal veuillez saisir :
sudo sh /emplacement/de/votre/script/NVIDIA-Linux-x86_64-340.106.run --no-x-check --no-unified-memory --no-cc-version-check -a
Lorsqu'il vous demande, si vous souhaitez bénéficier du support dkms, veuillez répondre non, sinon votre installation échouera.
Puis de nouveau :
sudo reboot
Pour les cartes graphiques antérieures à la série 400
Depuis la sortie des pilotes 1.0-7664, Nvidia a intégré l'overcloking coolbits qui permet ainsi de modifier dans nvidia-settings la fréquence de la ram et du cpu. Pour l'activer rendez-vous dans le fichier xorg.conf, allez dans la partie Section "Device" et ajoutez
Option "Coolbits" "1"
Vous obtenez ainsi :
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "Coolbits" "1" End Section
Sauvegardez et redémarrez le serveur X et vous trouverez une nouvelle option dans nvidia-settings.
Pour les cartes graphiques à partir de la série 400
Il y a 1 solutions :
- Utiliser nvidia-settings
Depuis la sortie des pilotes 337, l'option pour l'overcloking est de nouveau disponible pour les cartes 400 à 700 mais le numéro n'est plus "1" mais "8". De plus sur les versions plus récentes des driver NVidia, l'option est ajouter dans la section "Screen".
Ouvrir le fichier xorg.conf avec les droits administrateur :
gksudo gedit /etc/X11/xorg.conf
Puis à la section "Screen", ajoutez
Option "Coolbits" "8"
Exemple :
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "NoLogo" "True" Option "Coolbits" "8" SubSection "Display" Depth 24 EndSubSection EndSection
Puis redémarrer le serveur X :
sudo restart lightdm
1. Pour pouvoir overclocker votre carte il est nécessaire d'installer le pilote 337 ou supérieur.
2. 29/01/2017 : Le driver NVidia 367.57 installé depuis les dépôts ubuntu ne permet pas l'overclock. Pour en avoir la possibilité il est nécessaire d'installer le driver présent sur le site NVidia (vous pouvez prendre le même que préconisé par Ubuntu : le 367.57), pour cela se référer à la page traitant de l'installation des pilotes disponibles sur le site nvidia.
Dans NVIDIA X Server Setting, section PowerMizer, une nouvelle option est apparue "Editable Performance Levels". Cette option permet d'overclocker votre carte graphique mais également de l'underclocker.
L'overclock n'agit bien souvent que sur un niveau de performance (le plus élevé), donc lorsque vous testez vos modification de fréquence, assurez-vous bien d'être dans le mode de performance modifié. Conseil : dans PowerMizer passez en mode "Performance maximum".
Sauvegarde des paramètres overclock
Après un redémarrage de la session, les paramètres d'overclocking sont perdus car nvidia-settings ne les sauvegarde pas.
- Utiliser nvidia-settings en ligne de commande et donc de créer un script au démarrage de votre Ubuntu, via l'application :
gnome-session-properties
Ou
mate-session-properties
Avec l'application gnome-session-properties ou mate-session-properties, vous devez ajouter votre script nvidia-overclocking.sh pour qu'il se lance au démarrage. Pour se faire, veuillez vous rendre dans Ajouter > Nom :
Nvidia Overclocking
Et dans Commande :
sh -c /usr/local/bin/nvidia-overclocking.sh
Veuillez ensuite créer un fichier via votre terminal, avec pour nom nvidia-overclocking.sh :
sudo touch /usr/local/bin/nvidia-overclocking.sh
Et y insérer :
#!/bin/bash /usr/bin/nvidia-settings --assign GPUOverclockingState=1 &>/dev/null ; \ /usr/bin/nvidia-settings --assign GPU3DClockFreqs=600,522 &>/dev/null ; \ /usr/bin/nvidia-settings --assign [gpu:0]/GPUPowerMizerMode=1 &>/dev/null exit 0
Veuillez ensuite le rendre exécutable :
sudo chmod a+x /usr/local/bin/nvidia-overclocking.sh
Il existe aussi une autre méthode (valable seulement sous Gnome), elle consiste à mettre en place votre commande dans ~/.xsession:
nano ~/.xsession
Ensuite (Veuillez bien mettre les deux commandes sur deux lignes) :
nvidia-settings -a GPUOverclockingState=1 -a GPU2DClockFreqs=169,100 -a GPU3DClockFreqs=350,301 exec gnome-session
Ensuite faites ctrl+x touche o touche entrée.
Forcer le 96/120/144hz sur des moniteurs compatibles (pixel clocking)
Certains moniteurs aux très bonnes caractéristiques (dalle 27" PLS MAT 8ms - 2560x1440P) disponibles par l'import à faible coût, tels que le Qnix QX2710 et le X-Star DP2710, proposent par défaut à la carte graphique un EDID 60hz, alors que les dalles peuvent être facilement overclockées logiciellement en 96hz, voir en 120hz et 144hz si vous êtes chanceux.
Vous pourrez trouver quelques explications sur le sujet et un xorg tout propre sur cette page du wiki.
Désinstallation des pilotes propriétaires
Méthode graphique
Pour désinstaller le pilote propriétaire:
- Lancer le gestionnaire de pilotes propriétaires;
- Choisir le pilote libre "Serveur XX.Org";
- "Appliquer les changements" (ou "activez" sur l'ancienne version du gestionnaire)
- Fermer le gestionnaire;
- Redémarrer votre ordinateur.
En ligne de commande
Cette méthode via un terminal peut être utilisée si vous n’arrivez pas à désinstaller les pilotes avec la méthode graphique ou que vous souhaitez repartir avec une nouvelle configuration.
- Dans un premier temps, il faut relever le PID [qu'est-ce que c'est, il ressemble à quoi ?] du processus "nvidia-persitenced" puis le tuer afin de pouvoir désinstaller le paquet. Au 1er décembre 2014, apt-get était incapable de tuer le bon processus et refusait de désinstaller le pilote propriétaire.
Pour connaître le PID du processusps -ef | grep nvidia-persitenced pid=$(ps -ef | grep nvidia-persitenced | cut -d" " -f5) echo pid=$pid
puis pour le tuer
sudo kill $pid
pkill nvidia-persitenced
(on peut remplacer pkill
par killall
qui est équivalent)
- Ensuite, on supprime les paquets commençant par nvidia,
sudo apt-get purge 'nvidia-*'
puis on enlève les paquets qui ont été installés en même temps : typiquement les librairies CUDA. Attention, la commande "autoremove" peut supprimer d’autre paquets. Il peut être judicieux de vérifier avant d’enlever les paquets nvidia, de vérifier qu’il n’y a pas d’autres paquets qui peuvent être désinstallés.
sudo apt autoremove
- Ensuite on installe le pilote libre nouveau pour obtenir un affichage au prochain démarrage et ne pas se retrouver en mode console.
sudo apt install xserver-xorg-video-nouveau
- Rechercher si nvidia-setting n’a pas mis des fichiers de configuration dans le dossier /etc/X11 et les supprimer.
- Puis on redémarre le serveur X ou l’ordinateur pour valider la nouvelle configuration.
Problèmes connus
Reportez-vous à la page des problèmes liés aux cartes Nvidia.
Voir aussi
- (en) Page NVIDIA de la documentation officielle avec la liste des compatibilités
- (en) Disper : outil en ligne de commande pour paramétrer l'écran avec le pilote propriétaire NVIDIA. Idéal pour être utilisé avec des scripts.
Contributeurs : Les contributeurs d'Ubuntu-fr, claudiux, L'Africain, BeAvEr.