Unterbrochener Desktop-Hintergrund auf Ubuntu 18.04 unter Gnome nach dem Aufwachen von Suspend auf NVIDIA-390

19

Ich habe die Nvidia 1080ti-Grafikkarte, die nur ein paar Tage alt ist. Außerdem habe ich eine Neuinstallation von Ubuntu 18.04 und den neuesten nvidia-390-Treibern mit 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

Mein Problem ist, dass mein Hintergrund jedes Mal, wenn ich meinen Computer aus dem Standby-Modus wecke, dieses Rauschmuster annimmt (ich habe Volltonfarben eingestellt):

Bildbeschreibung hier eingeben

Ich denke, es ist erwähnenswert, dass ich KEINE grafischen Pannen auf dem Anmeldebildschirm habe (es war manchmal ein Problem unter Ubuntu 16.04). Der Anmeldebildschirm funktioniert hier einwandfrei.

Irgendwelche Ideen, wie man dieses Problem löst und woher es kommt?

thedk
quelle

Antworten:

16

Ich habe auch ein ähnliches Problem. Ich habe eine Dell / Alienware-Box mit einer GeForce GTX 860M, auf der Ubuntu 18.04 ausgeführt wird.

Wenn der Computer aus dem Standby-Modus aufwacht, habe ich auch das Problem mit einem beschädigten Desktop-Hintergrund, manchmal weiß oder mit der Farbe "Schnee". Ich kann das Problem beheben mit:

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

Ich habe mein Konto so eingerichtet, dass in meinem Lebenslauf kein Sperrbildschirm angezeigt wird, und ich denke, das könnte relevant sein. Lock-on-Suspend scheint keine Rolle zu spielen.

EDIT: Ich habe meinen NVIDIA-Treiber von 390 auf 396 geändert, und das hat es nicht behoben. Aber interessanter, wenn ich Unity Desktop verwende, tritt das Problem NICHT auf. Dies zeigt einen Finger auf die Gnome-Desktop-Software, vielleicht ...

Ich würde es lieben, dies wirklich zu beheben!

Anville
quelle
Wie kann ich das rückgängig machen? Weil es einige unerwartete Dinge verursacht hat.
Esen Mehmet
12

Eine andere Möglichkeit, dieses Problem zu umgehen , ist: Alt + F2 , dann r eingeben und die Eingabetaste drücken.
Dies startet den Gnome neu.

Leonardo Leal
quelle
8

Ich habe das gleiche Problem auch mit Ubuntu 18.04.1. Ich habe die NVIDIA GT220, Treiberversion 340.106. Der Fehler wurde hier gemeldet: bugzilla.gnome.org vor langer Zeit. Es handelte sich um Gnome 3.14 und auf Ubuntu 18 wird jetzt Gnone 3.28 ausgeführt. Es sollte behoben werden. Mit dem Nouveau-Treiber haben Sie dieses Problem nicht.

Folgendes sagt Nvidia dazu:

Unsere aktuelle Softwarearchitektur bewahrt den Inhalt von FBOs nicht über Betriebsartenschalter oder Stromversorgungsereignisse hinweg. Aus diesem Grund ist unsere Implementierung darauf angewiesen, dass Anwendungen in jedem Frame auf ihren FBOs neu gerendert werden. Dies ist eine grundlegende Einschränkung unseres Designs, die in Zukunft behoben wird.

Gnome verwendet FBOs, um den Hintergrund nicht bei jedem Frame rendern zu müssen. Der Inhalt von FBOs wird jedoch nicht gespeichert, wenn der Computer in den Energiesparmodus wechselt.

nikau6
quelle
5

Ich habe auch dieses Problem. Die Problemumgehung für mich scheint darin zu bestehen, ein Bild als Hintergrund zu verwenden, anstatt eine Farbe zu verwenden.

Terry
quelle
1

Ich hatte auch das gleiche Problem in Ubuntu 18.04.3 mit NVIDIA 390.129. Der Hintergrund zeigte ein verrauschtes Bild, nachdem der Computer aus dem Standby-Modus geweckt wurde. Ich habe keine richtige Lösung gefunden, aber eine Möglichkeit gehackt, den richtigen Hintergrund für die Ausführung eines Dienstes festzulegen, wenn der Computer aus dem Standby-Modus aufwacht.

Zuerst erstellen wir die Datei change_background.shin /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'

Stellen Sie den Pfad zum gewünschten Bild ein.

Wir müssen außerdem /usr/bin/discover_session_bus_address.shden folgenden Code mit freundlicher Genehmigung von Adam Ryczkowski erstellen und einfügen . change_background.shgibt die Datei aus, um die DBUS_SESSION_BUS_ADDRESSUmgebungsvariable festzulegen.

#!/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

Zuletzt erstellen wir eine Service-Datei, die sich in /etc/systemd/systemnamed befindet, zum Beispiel: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

Stellen Sie sicher, dass Sie allen Dateien die richtigen Berechtigungen erteilen.

Starten Sie den Dienst mit:

sudo systemctl enable change_background.service

Sie können den Status überprüfen mit:

systemctl status change_background.service

Ich hoffe, das hat Ihr Problem gelöst. Jetzt sollte der Hintergrund auf das Bild Ihrer Wahl eingestellt werden, wenn der Computer aus dem Standby-Modus aufwacht.

Edmundo Sanz-Gadea
quelle