Arrière-plan de bureau cassé sur Ubuntu 18.04 sous gnome après s'être réveillé de la suspension sur nvidia-390

19

J'ai la carte graphique Nvidia 1080ti, qui n'a que quelques jours. De plus, j'ai une installation propre d'Ubuntu 18.04 et des derniers pilotes nvidia-390 installés, en utilisant apt:

~$ sudo dpkg -l  | grep nvidia
ii  libnvidia-cfg1-390:amd64                   390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA binary OpenGL/GLX configuration library
ii  libnvidia-common-390                       390.59-0ubuntu0~gpu18.04.1              all          Shared files used by the NVIDIA libraries
ii  libnvidia-compute-390:amd64                390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA libcompute package
ii  libnvidia-compute-390:i386                 390.59-0ubuntu0~gpu18.04.1              i386         NVIDIA libcompute package
ii  libnvidia-decode-390:amd64                 390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA Video Decoding runtime libraries
ii  libnvidia-decode-390:i386                  390.59-0ubuntu0~gpu18.04.1              i386         NVIDIA Video Decoding runtime libraries
ii  libnvidia-encode-390:amd64                 390.59-0ubuntu0~gpu18.04.1              amd64        NVENC Video Encoding runtime library
ii  libnvidia-encode-390:i386                  390.59-0ubuntu0~gpu18.04.1              i386         NVENC Video Encoding runtime library
ii  libnvidia-fbc1-390:amd64                   390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-fbc1-390:i386                    390.59-0ubuntu0~gpu18.04.1              i386         NVIDIA OpenGL-based Framebuffer Capture runtime library
ii  libnvidia-gl-390:amd64                     390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  libnvidia-gl-390:i386                      390.59-0ubuntu0~gpu18.04.1              i386         NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii  libnvidia-ifr1-390:amd64                   390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA OpenGL-based Inband Frame Readback runtime library
ii  libnvidia-ifr1-390:i386                    390.59-0ubuntu0~gpu18.04.1              i386         NVIDIA OpenGL-based Inband Frame Readback runtime library
ii  nvidia-390                                 390.59-0ubuntu0~gpu18.04.1              amd64        Transitional package for nvidia-driver-390
ii  nvidia-compute-utils-390                   390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA compute utilities
ii  nvidia-dkms-390                            390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA DKMS package
ii  nvidia-driver-390                          390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA driver metapackage
ii  nvidia-kernel-common-390                   390.59-0ubuntu0~gpu18.04.1              amd64        Shared files used with the kernel module
ii  nvidia-kernel-source-390                   390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA kernel source package
ii  nvidia-prime                               0.8.8                                   all          Tools to enable NVIDIA's Prime
ii  nvidia-settings                            396.24-0ubuntu0~gpu18.04.1              amd64        Tool for configuring the NVIDIA graphics driver
ii  nvidia-utils-390                           390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA driver support binaries
ii  xserver-xorg-video-nvidia-390              390.59-0ubuntu0~gpu18.04.1              amd64        NVIDIA binary Xorg driver

Mon problème est que chaque fois que je réveille mon ordinateur du mode suspension, mon arrière-plan se transforme en ce motif de bruit (j'ai un jeu de couleurs unies):

entrez la description de l'image ici

Je pense qu'il vaut la peine de mentionner que je n'ai PAS de problèmes graphiques sur l'écran de connexion (c'était parfois un problème sur Ubuntu 16.04). L'écran de connexion fonctionne parfaitement ici.

Avez-vous des idées pour résoudre ce problème et d'où il vient?

thedk
la source

Réponses:

16

J'ai aussi un problème similaire. J'ai une boîte Dell / Alienware avec une GeForce GTX 860M, exécutant Ubuntu 18.04.

Lorsque l'ordinateur se réveille de la suspension, j'ai également le problème avec un arrière-plan de bureau corrompu, parfois, blanc ou avec la couleur "neige". Je peux résoudre le problème avec:

dbus-send --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval "string:global.reexec_self()"

J'ai mon compte configuré pour ne pas avoir d'écran de verrouillage lors de la reprise, et je pense que cela pourrait être pertinent. Le verrouillage sur suspension ne semble pas avoir d'importance.

EDIT: J'ai changé mon pilote nvidia de 390 à 396, et cela ne l'a pas corrigé. Mais plus intéressant, si j'utilise le bureau Unity, le problème ne se produit PAS. Cela pointe du doigt le logiciel de bureau Gnome peut-être ...

J'adorerais résoudre ce problème pour de vrai!

Anville
la source
Comment puis-je revenir sur cela? Parce que cela a causé des choses inattendues.
Esen Mehmet
12

Une autre façon de contourner ce problème est: Alt + F2 , puis entrez r et appuyez sur Entrée
Cela redémarrera le Gnome.

Leonardo Leal
la source
8

J'ai aussi le même problème avec Ubuntu 18.04.1. J'ai le nvidia GT220, la version du pilote 340.106. Le bug a été signalé ici: bugzilla.gnome.org il y a longtemps, il concernait Gnome 3.14 et Ubuntu 18 exécute maintenant Gnone 3.28. Il devrait être corrigé. Avec le pilote Nouveau, vous n'obtenez pas ce problème.

Voici ce que Nvidia en dit:

Notre architecture logicielle actuelle ne préserve pas le contenu des FBO à travers les commutateurs de mode ou les événements d'alimentation. Par conséquent, notre implémentation repose sur le rendu des applications à leurs FBO à chaque image. Il s'agit d'une limitation fondamentale de notre conception qui sera corrigée à l'avenir.

Gnome utilise des FBO pour ne pas avoir à rendre l'arrière-plan sur toutes les images. Mais le contenu des FBO n'est pas enregistré lorsque l'ordinateur passe en mode veille.

nikau6
la source
5

J'ai aussi ce problème. la solution de contournement pour moi semble être d'utiliser une image comme arrière-plan au lieu d'utiliser une couleur.

éponge
la source
1

J'ai également eu le même problème dans Ubuntu 18.04.3 en utilisant NVIDIA 390.129. L'arrière-plan montrait une image bruyante après avoir réveillé l'ordinateur de la suspension. Je n'ai pas trouvé de solution appropriée, mais j'ai piraté un moyen de définir l'arrière-plan approprié pour exécuter un service lorsque l'ordinateur se réveille de la suspension.

Créons d'abord le fichier change_background.shdans /usr/bin:

#!/bin/bash
source /usr/bin/discover_session_bus_address.sh
export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
export DISPLAY=:0.0
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/your_pick.jpeg'

Définissez le chemin d'accès à l'image souhaitée.

Nous devons également créer /usr/bin/discover_session_bus_address.shet coller le code suivant avec la permission d' Adam Ryczkowski . change_background.shsources le fichier afin de définir la DBUS_SESSION_BUS_ADDRESSvariable d'environnement.

#!/bin/bash

# Remember to run this script using the command "source ./filename.sh"

# Search these processes for the session variable 
# (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( nautilus kdeinit kded4 pulseaudio trackerd )

# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
    PID=$(pidof -s ${index})
    if [[ "${PID}" != "" ]]; then
        break
    fi
done
if [[ "${PID}" == "" ]]; then
    echo "Could not detect active login session"
    return 1
fi

QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
if [[ "${QUERY_ENVIRON}" != "" ]]; then
    export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"
    echo "Connected to session:"
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}"
else
    echo "Could not find dbus session ID in user environment."
    return 1
fi

return 0

Enfin, créons un fichier de service situé dans /etc/systemd/systemnamed, par exemple,change_background.service

[Unit]
Description=Change background when waking up from suspend, by Edmundo. 
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
User=your_username
RemainAfterExit=yes
ExecStop=-/usr/bin/change_background.sh

[Install]
WantedBy=sleep.target

Assurez-vous d'accorder les autorisations correctes à tous les fichiers.

Démarrez le service avec:

sudo systemctl enable change_background.service

Vous pouvez vérifier l'état avec:

systemctl status change_background.service

J'espère que cela a résolu votre problème, maintenant l'arrière-plan devrait être réglé sur l'image de votre choix lorsque l'ordinateur se réveille de la suspension.

Edmundo Sanz-Gadea
la source