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.
Avant de continuer plus loin, il peut être intéressant de connaître sa carte graphique. Pour cela, voir identifier sa carte graphique.
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
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.
(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 :
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:
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.
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.
Puis dans un terminal à l'aide des commandes suivantes
cd Téléchargements
chmod +x NVIDIA-linux*
sudo ./NVIDIA-linux*
(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.
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:
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 :
nvidia-settings
ou en mode administrateur (Certains changements ne sont possibles que dans ce mode):
pkexec nvidia-settings
Ces options seront prises en compte au prochain démarrage de l'application 3D.
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 :
Cependant, activer cette option ne résout pas TOUS les problèmes de déchirement. Regardez ici si les déchirements persistent.
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 :
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.
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.
É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.
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.
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.
Option "RandRRotation" "boolean"
Cette option permet d'utiliser xrandr pour pouvoir faire tourner l'écran (mode portrait, inversé etc.).
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, …
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é)
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.
Dans la page X Server Information de nvidia-settings
, la version des pilotes est affichée dans NVIDIA Driver Version
.
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:
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.
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
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.
Il y a 1 solutions :
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
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.
Après un redémarrage de la session, les paramètres d'overclocking sont perdus car nvidia-settings ne les sauvegarde pas.
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.
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.
Pour désinstaller le pilote propriétaire:
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.
ps -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)
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
sudo apt install xserver-xorg-video-nouveau
Reportez-vous à la page des problèmes liés aux cartes Nvidia.
Contributeurs : Les contributeurs d'Ubuntu-fr, claudiux, L'Africain, BeAvEr.