Fondo de escritorio roto en Ubuntu 18.04 bajo gnome después de despertarse de la suspensión en nvidia-390

19

Tengo la tarjeta gráfica Nvidia 1080ti, que tiene solo unos días. Además, tengo una instalación limpia de Ubuntu 18.04 y los últimos controladores nvidia-390 instalados, usando 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

Mi problema es que cada vez que estoy despertando mi computadora del modo de suspensión mi fondo cambia a este patrón de ruido (tengo un color sólido configurado):

ingrese la descripción de la imagen aquí

Creo que vale la pena mencionar que NO tengo fallas gráficas en la pantalla de inicio de sesión (a veces fue un problema en Ubuntu 16.04). La pantalla de inicio de sesión funciona perfectamente aquí.

¿Alguna idea de cómo resolver este problema y de dónde viene?

thedk
fuente

Respuestas:

16

También estoy teniendo un problema similar. Tengo una caja Dell / Alienware con una GeForce GTX 860M, con Ubuntu 18.04.

Cuando la computadora se despierta de la suspensión, también tengo el problema con un fondo de escritorio dañado, a veces, blanco o con el color "nieve". Puedo solucionar el problema con:

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

Tengo mi cuenta configurada para no tener una pantalla de bloqueo en el currículum, y creo que podría ser relevante. Lock-on-suspend no parece importar.

EDITAR: he cambiado mi controlador nvidia de 390 a 396, y eso no lo solucionó. Pero más interesante, si uso el escritorio de Unity, el problema NO ocurre. Esto apunta un dedo al software de escritorio Gnome, tal vez ...

¡Me encantaría arreglar esto de verdad!

Anville
fuente
¿Cómo puedo revertir esto? Porque ha causado algunas cosas inesperadas.
Esen Mehmet
12

Otra forma de solucionar este problema es: Alt + F2 , luego ingrese r y presione Enter
Esto reiniciará el Gnomo.

Leonardo Leal
fuente
8

También tengo el mismo problema al ejecutar Ubuntu 18.04.1. Tengo el nvidia GT220, versión del controlador 340.106. El error se informó aquí: bugzilla.gnome.org hace mucho tiempo. Se refería a Gnome 3.14, y Ubuntu 18 ahora está ejecutando Gnone 3.28. Debería ser arreglado. Con el controlador Nouveau no obtienes ese problema.

Esto es lo que dice Nvidia al respecto:

Nuestra arquitectura de software actual no conserva el contenido de los FBO en los conmutadores de modo o los eventos de potencia. Como resultado, nuestra implementación se basa en la representación de las aplicaciones en sus FBO en cada cuadro. Esta es una limitación fundamental de nuestro diseño que se solucionará en el futuro.

Gnome usa FBO para no tener que representar el fondo en cada fotograma. Pero el contenido de los FBO no se guarda cuando la computadora entra en modo de suspensión.

nikau6
fuente
5

También tengo este problema. la solución para mí parece ser usar una imagen como fondo en lugar de usar un color.

terry
fuente
1

También tuve el mismo problema en Ubuntu 18.04.3 usando NVIDIA 390.129. El fondo mostró una imagen ruidosa después de despertar la computadora de la suspensión. No encontré una solución adecuada, pero pirateé una forma de establecer el fondo adecuado ejecutando un servicio cuando la computadora se despierta de la suspensión.

Primero creemos el archivo change_background.shen /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'

Establezca la ruta a la imagen que desea.

También necesitamos crear /usr/bin/discover_session_bus_address.shy pegar el siguiente código cortesía de Adam Ryczkowski . change_background.shbusca el archivo para establecer la DBUS_SESSION_BUS_ADDRESSvariable de entorno.

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

Finalmente, creemos un archivo de servicio ubicado en /etc/systemd/systemnamed, por ejemplo,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

Asegúrese de otorgar los permisos correctos a todos los archivos.

Comience el servicio con:

sudo systemctl enable change_background.service

Puede verificar el estado con:

systemctl status change_background.service

Espero que haya resuelto su problema, ahora el fondo debe estar configurado para la imagen que elija cuando la computadora se despierte de la suspensión.

Edmundo Sanz-Gadea
fuente