Cette page à pour but de rassembler les problèmes connus qui sont lié aux cartes graphique Nvidia.
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 bogue).
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.
CompizConfig
(ccsm) (apt://compizconfig-settings-manager doit être installé), cliquer sur « Solutions », et activer la case "Force synchronization between X and GLX". CompizConfig
(ccsm) 1) → Options générales → Onglet Paramètre d'affichage :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 redémarrage vous constatez que la taille de l'écran revient en 640×480 ou 800×600 et que sous nvidia-settings
vous avez réglé la taille en 1024×768 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 bogue : Le plantage est lié au fait que nvidia-settings
essaie de modifier un fichier qui, pour une raison ou une autre, ne correspond plus à votre configuration actuelle sans que cela vous ait empêché de charger une session graphique. En clair, ce bogue 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 à exclure 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 billet)
Xinerama est la méthode utilisée par le serveur X pour informer le gestionnaire de fenêtres (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 implémentation 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
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
.
Il est possible d'avoir un écran multiple twinview
sans que les barres de menus 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, etc.). Pour déplacer une fenêtre sur l'écran d'à côté, il suffira juste de la faire glisser avec la souris. Elle se maximisera (ou se mettra en plein-écran) 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écalé de 1280 px à droite de l'écran « CRT » fixé à la résolution 1280×1024.
Puis il faut rajouter la section :
Section "ServerFlags" Option "Xinerama" "0" EndSection
Qui désactive xinerama
.
Le mode 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 points-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 double écran)
Il peut arriver que le module "nvidia" rentre en conflit avec le driver "nouveau". (un lsmod confirme que nouveau est chargé). Au lancement de X, on obtient un message du type
FATAL: Error inserting nvidia (/lib/modules/3.0.0-22-generic/kernel/drivers/video/nvidia.ko): No such device
Idem en passant par la commande modprobe. Pour éviter cela, il suffit de dire au noyau de ne pas charger le pilote nouveau. Pour cela, on crée un fichier nommé blacklist-nouveau.conf dans /etc/modprobe.d. Son contenu sera :
#disable nouveau driver. Use nvidia instead of blacklist nouveau
Après un redémarrage, dans la condition où le champ driver est spécifié à "nvidia" dans /etc/xorg.conf, le module "nvidia" devrait être fonctionnel.
Parfois, il n'y a pas de message. Si les linux-headers ne sont pas installés, les pilotes NVidia ne seront pas fonctionnels.
Démarrez en basse résolution et tapez dans le terminal
sudo apt-get install --reinstall linux-headers-`uname -r`
Suite à une mise à jour (du noyau) qui se serait mal passée, au moment de redémarrer, vous vous retrouvez en graphiques de basse qualité ou êtes bloqué en 800×600, votre pilote étant cassé.
Premièrement, essayez 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 entêtes n'ont pas été bien installés, ce que l'on va résoudre ici :
On répare les éventuels problèmes dans la gestion des paquets (dépendances, paquets mal installés, etc.) :
sudo apt-get install -f
On réinstalle les entêtes 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 entêtes, 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.
Sur certaines installation l'accéleration 3D ne fonctionne pas.
Visiblement le driver installé par défaut avec Ubuntu 12.04 est bogué. Il s'agit de la version 295.40.
Une solution est de revenir à la version 295.33 du driver, La manipulation à faire :
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo aptitude update sudo apt-get install nvidia-current=295.33-0ubuntu1~precise~xup1
Avec les pilotes propriétaires il peut arriver que la résolution au démarrage et à l'arrêt soit très faible. La solution au problème se trouve sur la page Plymouth.
Si, après l'installation du driver NVidia, vous n'avez plus accès au réglage de la luminosité de l'écran :
sudo nano /usr/share/X11/xorg.conf.d/10-nvidia-brightness.conf
Section "Device" Identifier "Device0" Driver "nvidia" Option "RegistryDwords" "EnableBrightnessControl=1" EndSection
Si cette méthode ne fonctionne toujours pas, éditez le fichier de configuration de grub afin d'ajouter un paramètre au kernel
sudo nano /etc/default/grub
sudo update-grub
Taper Alt-F2 puis :
gconf-editor
Déployer /apps/panel/toplevels/bottom_panel_screen0
et changer la valeur de monitor
(la faire passer de 0 à 1).
Idem pour /apps/panel/toplevels/top_panel_screen0
.
Les changements sont instantanés.
Sous Ubuntu 17.10, Wayland (remplaçant de X11) semble poser problème avec certaines cartes graphiques Nvidia, si l'invite de login ou l'interface graphique ne charge pas, la solution peut-être de décommenter la ligne
#WaylandEnable=false
(dans /etc/gdm3/custom.conf)
qui deviendra donc :
WaylandEnable=false
https://askubuntu.com/questions/968365/ubuntu-17-10-nvidia-drivers-black-screen-loop/968679#968679
Voir astuce sur le page : Avant-Window-Navigator.
Contributeurs : [[:contributeurs|Les contributeurs d'Ubuntu-fr