Comme tout périphérique, une carte graphique a besoin de pilotes pour fonctionner.
Il existe trois pilotes pour les cartes graphiques NVIDIA :
Originalement, il existait un pilote libre (nv) qui était installé et utilisé par défaut dans Ubuntu (< 10.04). Aucune manipulation ou installation ne s'impose si aucune difficulté n'a été rencontrée. Un second pilote libre, du nom de Nouveau (voir PPA pour Ubuntu 9.10) est également en développement. Il est développé en écoutant les communications entre l'ordinateur et la carte graphique. Ce pilote est utilisé par défaut depuis "Ubuntu 10.04 Lucid Lynx"
Le pilote propriétaire (nvidia) est créé par le constructeur. Il offre souvent de meilleures performances, et il permet d'activer les effets de bureaux (3D). Il peut être indispensable pour faire fonctionner le matériel le plus récent.
Pour installer les pilotes propriétaires, il suffit d'aller dans Système –> Administration –> Pilotes de périphériques / Pilotes de périphériques. Plusieurs choix de versions peuvent être disponibles.
Si aucun choix n'est disponible, allez dans Système –> Administration –> Sources de logiciels, et vérifiez dans le premier onglet (Logiciels Ubuntu) que la case "Pilotes propriétaires de périphériques" est bien activée. Si elle était déjà activée, lancez Système –> Administration –> Gestionnaire de mise à jour, pour mettre à jour la liste des paquets disponibles ; si vous venez de l'activer, la mise à jour sera demandée dès la fermeture de la fenêtre "Sources de logiciels". Une connexion internet doit bien sûr être active.
Si après la mise à jour des dépôts, la liste est toujours vide ou que vous ne voyez pas apparaître le pilote souhaité, c’est qu’il faut peut-être installer un paquet spécifique. En effet, la liste des pilotes propriétaires est basée sur les paquets nvidia-XXX-modaliases (ou XXX représente le numéro du pilote concerné). Par exemple, si sous intrepid il vous manque le dernier pilote nvidia-glx-180, installez le paquet nvidia-180-modaliases soit via synaptic soit en ligne de commande via apt.
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.
xorg.conf pourrait empêcher votre système de démarrer graphiquement. Avant toute installation ou manipulation, effectuez une sauvegarde de ce fichier.
NVIDIA fournit directement sur son site un fichier exécutable (portant l'extension .run), qu'il faut exécuter et installer.
Cela permet de profiter des tout derniers pilotes et même de tester les versions bêta (à vos risques et périls).
Une page est dédiée à ce mode d'installation : nvidia.run.
Des paquets nvidia stables mais non supportés par Ubuntu sont disponibles sur Launchpad.
À l'heure actuelle, les derniers pilotes stables 256.xx (de juin 2010) sont fournis pour Hardy, Jaunty, Karmic et Lucid.
Des mises à jours des versions 185.xx, 190.xx et 195.xx sont également proposées.
Pour mettre à jour votre pilote :
ppa:ubuntu-x-swat/x-updates
ppa:nvidia-vdpau/ppa
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu intrepid main deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu intrepid main
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu hardy main deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu hardy main
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CEC06767
Vous pouvez finalement activer le pilote avec la méthode automatique.
Ce tableau a besoin d'être mis à jour…
Vous trouverez dans le tableau suivant le pilote correspondant à votre carte graphique : ( "lspci | grep VGA" en ligne de commandes permet d'avoir l'information )
| Pilote | Matériel supporté | Paquet pour Ubuntu 8.10 | Paquet pour Ubuntu ≤8.04 |
|---|---|---|---|
| 180.xx (unifié) | GeForce 6/7/8/9/9400/GTX liste complète | nvidia-glx-180 | non présent |
| 177.xx (unifié) | GeForce 6/7/8/9/GTX liste complète | nvidia-glx-177 | non présent |
| 173.xx (unifié) | GeForce FX/6/7/8/9 liste complète | nvidia-glx-173 | non présent |
| 169.xx (unifié) | GeForce FX/6/7/8 liste complète | non présent | nvidia-glx-new |
| 96.xx (special legacy) | certaines GeForce 2, GeForce 3/4 (liste complète début de page) | nvidia-glx-96 | nvidia-glx |
| 71.xx (legacy) | TNT, TNT2, GeForce 1, certaines GeForce 2 (liste complète fin de page) | nvidia-glx-71 | nvidia-glx-legacy |
Sur d'anciennes versions de xorg (avant Ubuntu 7.10), pour le pilote Legacy, il peut être nécessaire d'exécuter :
sudo nvidia-xconfig --allow-glx-with-composite
Sur d'anciennes versions de xorg, pour les autres pilotes, il peut être nécessaire d'exécuter :
sudo nvidia-xconfig --add-argb-glx-visuals -d 24
N'exécutez la commande que si vous rencontrez un problème lors du lancement de compiz (le programme qui gère les effets de bureau 3D).
nvidia-settings est un outil pour configurer les pilotes NVIDIA sous Linux.
Il permet, entre autres, de :
Il suffit d'installer le paquet nvidia-settings. (à noter qu'il s'installe normalement par défaut avec le pilote propriétaire.)
Pour ouvrir la fenêtre, allez dans le menu Système → Administration → NVIDIA X Server Settings. Il est également possible de l'ouvrir en ligne de commande :
nvidia-settings
NB: pour pouvoir enregistrer des modifications sur le fichiers xorg.conf, il faut des droits administrateur. Pour cela, on peut utiliser la commande sudo sous GNOME (ou gksudo) ou kdesu sous KDE
sudo nvidia-settings kdesu nvidia-settings
Pour que Compiz prenne en compte les options de nvidia-settings, il faut que ces options soient chargées AVANT le lancement de Compiz.
Pour cela, il faut exécuter :
nvidia-settings -l
avant de démarrer compiz avec :
compiz --replace
Comme vous l'avez remarqué, compiz (également connu sous le nom d'effets de bureaux) est lancé automatiquement au démarrage d'Ubuntu. Malheureusement, le chargement des paramètres de nvidia-settings n'est pas effectué.
Cela a fait l'objet d'un rapport de bug, avec différentes propositions de patches.
En attendant que ce problème soit résolu, la solution la plus simple, en tant qu'utilisateur, est d'écrire dans ~/.gnomerc (il faut créer le fichier s'il n'existe pas) la ligne suivante :
nvidia-settings -l
Pour ceci, il suffit d'exécuter la commande suivante dans un terminal :
echo 'nvidia-settings -l' > ~/.gnomerc
Ces options seront prises en compte au prochain démarrage de compiz (ou autre application 3D).
Dans OpenGL settings, il est conseillé d'activer la case Sync to VBlank, qui permet de synchroniser l'affichage sur la fréquence verticale de l'écran.
Cela a deux effets bénéfiques :
Cependant, activer cette option ne résoud pas TOUS les problèmes de déchirements : lors de la rotation du cube de compiz, chaque image est bien synchronisée, les déchirements ont disparu ; par contre, lors du déplacement d'une fenêtre, compiz ne demande pas la synchronisation (rapport de bug), donc des déchirements resteront visibles.
L'antialiasing permet de réduire les effets "escalier" sur les contours des objets 3D.
Voici la différence de rendu avec et sans antialiasing (à gauche, l'antialiasing 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 anisotropic 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 anisotropic (à gauche, l'anisotropic est désactivé, à droite, il est activé 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'antialiasing.
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 de ce fichier.
Éditez le fichier "/etc/X11/xorg.conf" en "root", 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 0), 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.
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.
Si vous rencontrez des problèmes avec les pilotes propriétaires (ou que vous ne voulez utiliser que des modules libres), vous pouvez repasser aux pilotes libres très simplement. Pour cela, il suffit de ne pas utiliser les pilotes propriétaires, dans ce cas il n'est pas indispensable de les désinstaller (à part si vous tenez absolument à économiser quelques méga-octets).
Par contre, si vous avez installé les pilotes à partir des dépôts (par le gestionnaire de pilotes de périphériques ou par l'installation manuelle des paquets), et que finalement vous désirez installer manuellement les derniers pilotes téléchargés sur le site de NVIDIA, il est nécessaire de désinstaller les paquets auparavant.
Dans Système –> Administration –> Pilotes de périphériques, cliquez simplement sur le bouton Deactivate :
xorg.conf pourrait empêcher votre système de démarrer graphiquement. Avant toute installation ou manipulation, effectuez une sauvegarde de ce fichier.
Dans /etc/X11/xorg.conf, repérez la ligne (cf. section "Device"):
Driver "nvidia"
et remplacez-la par :
Driver "nv"
La méthode de désinstallation dépend évidemment de la méthode utilisée pour l'installation.
Si l'installation a été effectuée par le gestionnaire de pilotes de périphériques ou manuellement par les dépôts, suivez la première méthode de désinstallation. Sinon, si l'installation a été effectuée manuellement avec le pilote téléchargé sur le site de NVIDIA, ou par EnvyNG, suivez la seconde méthode.
Pour supprimer tous les pilotes NVIDIA installés par les dépôts, tapez dans un terminal :
sudo apt-get remove 'nvidia-*'
Ceci est expliqué sur la page consacrée à cette méthode d'installation.
Cette fonctionnalité est présente directement dans l'interface graphique.
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é)
Voir cette page
La moindre erreur dans ce fichier pourrait empêcher votre système de démarrer graphiquement. C'est pourquoi il est important d'en faire une sauvegarde, et d'être capable de le restaurer.
Pour faire une sauvegarde de ce fichier :
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
Pour restaurer cette sauvegarde, il suffira alors d'exécuter :
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
Si vous avez cassé votre fichier xorg.conf et que votre système ne démarre plus graphiquement (vous tombez sur un écran noir avec un curseur clignotant dans le coin supérieur gauche de l'écran), voici la marche à suivre :
<Ctrl><Alt><F1> ;Pour redémarrer le serveur X, il suffit d'appuyer simultanément sur « Ctrl–Alt–⌫ ». « ⌫ », c'est la touche « ← » ou « Retour arrière » au dessus de la touche « Entrée ».
À partir d'Ubuntu 9.04, ce raccourci clavier est désactivé par défaut. Il est remplacé par Alt+SysRq+K (la touche SysRq correspond à la touche Impr écran Syst).
Pour redémarrer le serveur X, il faut réactiver ce raccourci.
Première Méthode
Il faut installer dontzap avec la commande suivante (ou via synaptic):
sudo apt-get install dontzap
Puis cela se fait simplement avec la ligne de commande :
sudo dontzap --disable
Il vous suffit ensuite d'appuyer sur « Ctrl–Alt–⌫ » pour que le serveur X redémarre.
Deuxième Méthode
Cette méthode consiste à l'activer dans les raccourcis clavier
Depuis la version Ubuntu 9.10, l'option DontZap ne fait plus partie des paramètres du serveur graphique X.org. Elle fait désormais partie des options de l'extension XKB, qui est directement réglable par les outils inclus dans chaque environnement de bureau. La manière d'activer ce raccourci clavier varie donc selon l'environnement de bureau que vous utilisez.
Sous GNOME (Ubuntu)
Sous KDE (Kubuntu)
En ligne de commande (toutes variantes d'Ubuntu)
Ouvrez un terminal et exécutez la commande suivante :
utilisateur@machine:~$ echo "setxkbmap -option terminate:ctrl_alt_bksp" >> ~/.xinitrc
Fermez votre session, puis ouvrez-la à nouveau pour que votre nouvelle configuration soit prise en compte.
Dans un terminal, tapez :
lspci | grep VGA
Voici un exemple de résultat :
$ lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation GeForce 8600M GS (rev a1)
Si vous posez une question sur le forum à propos d'un problème graphique, pensez à mentionner ce résultat.
Dans la page X Server Information de nvidia-settings, la version des pilotes est affichée dans NVIDIA Driver Version.
Dans un terminal, tapez :
glxinfo | grep OpenGL
Voici un exemple de résultat :
$ glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce 8600M GS/PCI/SSE2 OpenGL version string: 2.1.2 NVIDIA 177.80 OpenGL shading language version string: 1.20 NVIDIA via Cg compiler OpenGL extensions:
Le pilote propriétaire nVidia permet d'utiliser la carte graphique à travers VDPAU pour accélérer matériellement le décodage des vidéos. Pour ce faire il faut remplir les conditions suivantes :
Le premier point est effectif immédiatement avec les dernières versions du pilote nVidia disponible dans Ubuntu 10.04.
Le second point reste encore un peu expérimental en 2010 et nécessite l'ajout de paquets supplémentaires pour fonctionner. Voici quelques pistes (à vérifier régulièrement en attendant que tout se stabilise) :
Ce bug a été corrigé le 17 octobre. Si personne ne rencontre ce problème avec la version finale, cette partie pourra être supprimée.
note : Je rencontre toujours ce problème qui est résolu avec la méthode ci-dessous. note 2: Je rencontre également ce probleme sous ubuntu 9.10 mais uniquement avec le displayport
Avec certaines cartes graphiques (les séries GeForce 8 et 9 notamment), et les pilotes 177.80, l'écran ne se rafraîchit pas correctement, notamment dans Firefox qui devient quasiment inutilisable (voir le rapport de bug).
Ce problème de rafraîchissement se produit également, mais dans une bien moindre mesure (juste quelques petites zones, assez rarement) avec d'autres versions du pilote.
Si vous rencontrez ce problème, il y a plusieurs solutions de contournement.
Depuis Ubuntu 9.04, compiz possède une option qui résout le problème.
Si possible Sync to Vblank doit aussi être coché dans les pilotes propriétaires nvidia.
La première solution est de repasser à des pilotes plus anciens (173) par exemple. Ceci est faisable directement dans le gestionnaire de pilotes de périphériques.
compiz est démarré avec l'option --loose-binding par défaut. C'est une fonctionnalité développée pour combler certaines lacunes des pilotes NVIDIA, notamment au niveau des performances, en évitant de rafraîchir l'écran inutilement trop souvent.
Cependant, avec les pilotes 177.80, c'est inutilisable.
Pour désactiver cette option, éditez le fichier /usr/bin/compiz et commentez les lignes 340 à 344 :
if check_nvidia; then if [ "x$INDIRECT" != "xyes" ]; then COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding" fi fi
ce qui donne :
# if check_nvidia; then # if [ "x$INDIRECT" != "xyes" ]; then # COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding" # fi # fi
Pour tester :
compiz &
(ça peut planter, dans ce cas, réexécutez la commande)
Maintenant, à chaque redémarrage, cette option ne sera plus activée.
Lors de chaque reboot vous constatez que la taille de l'écran revient en 640x480 ou 800x600 et que sous nvidia-settings vous avez réglé la taille en 1024x768 ou supérieur ,éditez le fichier /home/user/.config/monitors.xml
<monitors version="1">
<configuration>
<clone>no</clone>
<output name="default">
<vendor>???</vendor>
<product>0x0000</product>
<serial>0x00000000</serial>
<width>800</width> #<=à modifier par 1024
<height>600</height> #<=à modifier par 768
<rate>108</rate> #<=taux de rafraîchissement
<x>0</x>
<y>0</y>
<rotation>normal</rotation>
<reflect_x>no</reflect_x>
<reflect_y>no</reflect_y>
</output>
</configuration>
</monitors>
redémarrer et tester
Un moyen de contourner ce problème est expliqué sur son rapport de bug : Le crash est lié au fait que nvidia-settings essaie de modifier un fichier qui pour une raison ou l'autre ne correspond plus à votre configuration actuelle sans que cela vous ait empêché de charger une session graphique. En clair, ce bug arrive surtout aux gens qui se lancent dans le multi-écran ou qui changent de moniteur.
La solution consiste à lancer nvidia-xconfig (en sudo) pour qu'un fichier de configuration correct soit recréé. Après quoi nvidia-settings devrait fonctionner de manière normale.
Si l'installation des pilotes propriétaires NVIDIA vous renvoie systématiquement vers le mode sans échec de l'affichage, une solution consiste à blacklister certains modules.
Pour cela, éditez le fichier /etc/default/linux-restricted-modules-common en root et remplacez :
DISABLED_MODULES=""
par :
DISABLED_MODULES="nvidia nvidia_legacy"
(voir ce post)
Xinerama est la méthode utilisée par le serveur X pour informer le gestionnaire de fenêtre (tel que Compiz) du nombre et de la taille des différents écrans. Le pilote propriétaire NVIDIA n'utilise pas l'implémentation native de X mais sa propre implementation de l'extension Xinerama.
Pour pouvoir utiliser Xinerama, il faut démarrer le serveur X avec les différents écrans branchés, sinon le pilote NVIDIA le désactive. Il faut activer l'option TwinView suivant dans le fichier Xorg.conf :
Option "TwinView" "true"
source (en) : voir le dernier paragraphe de la page. (ne pas confondre twinview et xinerama. Dans bien des cas, xinerama est autorisé mais pas twinview.
un lien vers le forum http://forum.ubuntu-fr.org/viewtopic.php?pid=2412737#p2412737
Il est possible d'avoir un multiple écran twinview sans que les barres de menu et les fenêtres maximisées ne remplissent les deux écrans. Il faut pour cela activer twinview et désactiver Xinerama en indiquant l'écran principal (c'est celui où seront centrées les fenêtres, où il y aura la barre des tâches, …). Pour déplacer une fenêtre sur l'écran d'à coté, il suffira juste de la déplacer à la souris. Elle se maximisera (ou fullscreenera) sur cet écran uniquement. Pour cela :
Dans la section Screen, déclarez
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Subsection "Display"
Depth 24
EndSubsection
Option "TwinViewXineramaInfoOrder" "DFP-0"
Option "TwinView" "1"
Option "metamodes" "CRT: 1280x1024 +0+0, DFP: nvidia-auto-select +1280+0"
EndSection
Là on déclare un seul écran virtuel Twinview, en ayant l'écran "DFP-0" en principal et décaler de 1280px à droite de l'écran CRT fixé à la résolution 1280x1024.
Puis il faut rajouter la section
Section "ServerFlags"
Option "Xinerama" "0"
EndSection
qui désactive xinerama.
Le multi-écran pose problème avec les jeux. Parmi les problèmes possibles :
Pour contourner ce problème, le plus facile est de désactiver un écran pendant l'utilisation du jeu. Par défaut avec l'extension Xinerema ça n'est pas possible car une seule définition apparait dans l'outil de résolution d'écran. Pour changer ce comportement, il faut ajouter des modes vidéos dans le fichier de configuration du serveur X.
L'exemple ci-dessous permet d'utiliser 3 options (séparées par des point-virgules) :
Option "metamodes" "CRT: nvidia-auto-select +1440+0, DFP: nvidia-auto-select +0+0; CRT: NULL, DFP: nvidia-auto-select +0+0; CRT: nvidia-auto-select +0+0, DFP: NULL"
Après un redémarrage du serveur X, vous pourrez utiliser les 3 "résolutions" d'écran.
Ensuite il ne vous reste plus qu'à utiliser l'outil xrandr dans des scripts pour lancer vos jeux afin de faire les changements de résolution avant le démarrage du jeu et après sa terminaison.
source : (jouer en plein écran à Urban Terror (ou autres jeux) avec un dual screen)
Il semblerait que depuis Ubuntu 8.10 la détection des cartes lors de l'installation du pilote échoue
Une page est dédié à ce problème : Nvidia et SLI
Suite à une mise à jour (du noyau) qui se serait mal passée, au moment de rebooter, vous redémarrez en low-graphics et/ou êtes bloqué en 800×600, votre pilote est cassé.
1ère chose, essayer de le réinstaller normalement :
sudo apt-get purge nvidia-* sudo apt-get autoclean sudo apt-get install nvidia-glx-180
(ou autre version selon le matériel)
Si tout se passe bien, félicitations, vous avez réinstallé votre pilote.
Si vous rencontrez cette erreur :
Error! Could not locate nvidia.ko for module nvidia in the DKMS tree.
La mise à jour du noyau s'est mal passée, les headers n'ont pas été bien installés, ce que l'on va résoudre ici : On répare les éventuels problèmes dans aptitude (dépendances, paquets mal installés, etc.)
sudo apt-get install -f
On réinstalle le headers du noyau actuel qui sont mal installés et ne permettent pas la compilation du pilote (ce qui bloque au dessus)
sudo apt-get install --reinstall linux-headers-`uname -r`
Normalement, pendant la réinstallation des headers, le pilote (plus précisément le module DKMS lié au pilote) sera recompilé automatiquement, si jamais ce n'est pas le cas et que le problème persiste, vous pouvez réinstaller le pilote maintenant que le noyau est propre.
Avec les pilotes propriétaires et à partir de Lucid Lynx 10.04, la résolution au démarrage et à l'arrêt est très faible. Le problème vient de Plymouth. Toute la manoeuvre à faire pour corriger ce problème est décrite dans cet article.