124 votes

Artéfacts étranges sur les bords des fenêtres après avoir réveillé l'ordinateur en mode veille

NB : N Réponse de ByteCommander , ma propre réponse y/o La réponse de Kaz Wolfe .


Au réveil de la suspension d'Ubuntu 16.04, les problèmes graphiques suivants apparaissent autour de toutes les fenêtres, des menus contextuels, etc :

enter image description here


Ce problème est actuellement connu pour affecter les cartes NVIDIA suivantes en fonctionnement les pilotes propriétaires :

  • NVIDIA GeForce 610M, pilote version 375.39, 340.102
  • NVIDIA GT 630M, version du pilote 375.39
  • NVIDIA GTX 650, version du pilote 375.39
  • NVIDIA GT 740M, version du pilote 378.13
  • NVIDIA GTX 745, version du pilote inconnue
  • NVIDIA GTX 850M, pilote version 375.39, 378.13
  • NVIDIA GT 940M, version du pilote 375.39
  • NVIDIA GTX 950M, version du pilote inconnue
  • NVIDIA GTX 960M, version du pilote 378.13
  • NVIDIA GTX 970, version du pilote 375.39
  • NVIDIA GTX 970M, version du pilote 375.39
  • NVIDIA GTX 980 TI, version du pilote inconnue
  • NVIDIA GTX 1060, pilote version 375.26, 375.39, 378.09
  • NVIDIA GTX 1070, version du pilote 378.09

La liste ci-dessus a été établie à partir de rapports d'autres utilisateurs. ici sur AU, este le fil, et este fil.

NB : Cette liste n'est en aucun cas exclusive. Elle concerne probablement presque toutes les cartes Nvidia.

De plus, ce problème a été reproduit sur une installation propre où le seul changement était une mise à jour du logiciel et l'installation des derniers pilotes NVIDIA.


Que se passe-t-il, et comment le résoudre ?

79voto

Stefan Points 799

NB : Il s'agit d'une solution de contournement temporaire jusqu'à ce que Nvidia publie un pilote corrigé. Faites défiler vers le bas pour trouver les autres réponses avec le correctif actuel. - Développement Android


J'ai le même problème en utilisant le GPU : Nvidia GTX 970 avec le pilote nvidia 375.39 sur Ubuntu 16.04.2 LTS.

J'ai observé ce phénomène depuis une mise à jour récente du pilote Nvidia. Je soupçonne donc qu'il s'agit d'un bogue dans le pilote.

J'ai trouvé une réponse sur la carte nvidia . Il s'agit d'un bug confirmé dans le pilote et nvidia travaille apparemment déjà dessus. En attendant, on peut redémarrer compiz avec

compiz --replace

pour se débarrasser des artefacts.

Le bogue est dans le système de suivi des bogues d'Ubuntu incluant une solution de contournement script pour redémarrer automatiquement compiz après la reprise.

59voto

Byte Commander Points 99026

UPDATE 2 :

Nvidia a également mis à jour son nvidia-375 pilotes à la version 375.66 qui est disponible dans les dépôts standards Ubuntu de toutes les versions actuellement supportées .

Cela signifie qu'à partir de maintenant, vous ne devriez plus avoir à prendre de mesures spéciales sauf pour faire les mises à jour normales du système, comme toujours. Vous n'avez pas besoin du paquet de pilotes de l'application graphics-drivers PPA si vous n'en voulez pas.

Voici l'extrait du journal des modifications pour le paquet provenant des dépôts principaux sur 16.04 concernant ce bogue :

$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1

  [...]
    - Fixed a regression that caused corruption in certain
      applications, such as window border shadows in Unity, after
      resuming from suspend.
  [...]

UPDATE :

Nvidia a finalement résolu ce problème et publié une nouvelle version du pilote : nvidia-381

La solution décrite dans cette réponse a également été mise à jour et suggère maintenant de mettre à niveau vers cette version corrigée au lieu de rétrograder vers la dernière version avant le bogue. La procédure reste cependant la même, il suffit d'intervertir les noms des paquets.


Cause du problème :

Certains des paquets de pilotes graphiques Nvidia propriétaires pour Ubuntu (à savoir nvidia-375 y nvidia-378 ) sont bogués et produisent les artefacts blancs autour des bordures de fenêtres qui sont montrés dans vos captures d'écran dans la question. Cela se produit de manière reproductible chaque fois que vous suspendez et réveillez de nouveau.

Jusqu'à il y a quelques jours, le nvidia-367 dans le dépôt de Xenial fonctionnait bien et de manière fiable, mais ils l'ont maintenant mis à jour et l'ont converti en un paquet de transition qui installe automatiquement le paquet bogué nvidia-375 à la place.

Solution (mise à jour après la publication d'un correctif par Nvidia) :

Assurez-vous que vous avez bien une carte graphique Nvidia, qui est à l'origine du problème, et non une carte d'une autre marque qui, par coïncidence, se comporte de la même manière. L'installation de pilotes Nvidia pour des cartes graphiques non Nvidia ne servira à rien.

Vous pouvez le vérifier en consultant la sortie de la commande ci-dessous :

lspci -k | grep -iEA3 '3d|vga'

Ma solution pour l'instant est de rétrograder de nvidia-375 o nvidia-378 a nvidia-370 qui semble fonctionner correctement jusqu'à présent.
Comme Nvidia a publié une nouvelle version mise à niveau du pilote nvidia-381 avec ce bug corrigé, nous pouvons (et devrions) installer celui-là au lieu de rétrograder.

Ce paquetage n'est pas disponible dans les dépôts standards, mais vous pouvez facilement l'obtenir à partir d'un PPA et remplacer votre pilote actuel par celui-ci en exécutant les commandes ci-dessous :

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*

sudo apt install nvidia-370

sudo apt install nvidia-381

Après avoir terminé cette procédure, redémarrez votre ordinateur et vérifiez si vous avez toujours des problèmes. Pour moi, ils ont disparu. Bonne chance.

7voto

Victor A. Points 126

Ce problème est présent dans les pilotes 375 et 378...


Étant donné que le simple fait de tuer le processus compiz règle le problème de la mauvaise bordure, j'ai testé une solution qui fonctionne sur mon système Ubuntu 16.04 à chaque fois que le système se réveille.

Étape 1 :

J'ai créé un script appelé fixbadborders dans le répertoire /lib/systemd/system-sleep . Il contenait les éléments suivants :

#!/bin/sh
## This file (or a link to it) must be in the folder /lib/systemd/system-sleep/
## Purpose: Kill compiz after system wakes up from sleep.
## This will fix bad window borders caused by Nvidia driver 375.39.
kill $(ps -C compiz -o pid=)

Étape 2 :

Autorisé le script à avoir la permission d'exécuter avec :

sudo chmod +x fixbadborders

Pour supprimer ce script :

sudo rm /lib/systemd/system-sleep/fixbadborders

Tous les crédits vont à Ourson du soleil qui a créé ce script commentaire 13

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X