Сломанный фон рабочего стола на Ubuntu 18.04 под gnome после пробуждения из режима ожидания на nvidia-390

19

У меня есть видеокарта Nvidia 1080ti, которой всего несколько дней. Кроме того, у меня есть чистая установка Ubuntu 18.04 и последние установленные драйверы nvidia-390, используя 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

Моя проблема заключается в том, что каждый раз, когда я выхожу из режима ожидания компьютера, фон меняется на шум (у меня установлен сплошной цвет):

введите описание изображения здесь

Я думаю, что стоит упомянуть, что у меня нет никаких графических глюков на экране входа в систему (иногда это было проблемой в Ubuntu 16.04). Экран входа в систему отлично работает здесь.

Есть идеи, как решить эту проблему и откуда она взялась?

thedk
источник

Ответы:

16

У меня тоже есть похожая проблема. У меня есть коробка Dell / Alienware с GeForce GTX 860M, работающая под управлением Ubuntu 18.04.

Когда компьютер выходит из режима ожидания, у меня также возникает проблема с поврежденным фоном рабочего стола, иногда белым или с цветным «снегом». Я могу решить проблему с:

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

У меня настроена учетная запись, чтобы при возобновлении работы не отображался экран блокировки, и я думаю, что это может иметь значение. Блокировка при приостановке не имеет значения.

РЕДАКТИРОВАТЬ: я изменил мой драйвер nvidia с 390 до 396, и это не исправило. Но что еще интереснее, если я использую настольный компьютер Unity, проблема не возникает. Это указывает пальцем на настольную программу Gnome, может быть ...

Я хотел бы исправить это по-настоящему!

Anville
источник
Как я могу вернуть это? Потому что это вызвало некоторые неожиданные вещи.
Эсен Мехмет
12

Другой способ обойти эту проблему: Alt + F2 , затем введите r и нажмите Enter.
Это перезапустит Gnome.

Леонардо Лил
источник
8

У меня та же проблема, что и при запуске Ubuntu 18.04.1. У меня есть nvidia GT220, версия драйвера 340.106. Об этой ошибке сообщалось здесь: bugzilla.gnome.org очень давно. Это касалось Gnome 3.14, а в Ubuntu 18 теперь работает Gnone 3.28. Это должно быть исправлено. С водителем Nouveau вы не получите эту проблему.

Вот что говорит об этом Nvidia:

Наша текущая программная архитектура не сохраняет содержимое FBO через переключатели режимов или события питания. В результате наша реализация полагается на то, что приложения повторно визуализируют свои FBO в каждом кадре. Это фундаментальное ограничение нашего дизайна, которое будет исправлено в будущем.

Gnome использует FBO, чтобы не отображать фон в каждом кадре. Но содержимое FBO не сохраняется, когда компьютер входит в спящий режим.

nikau6
источник
5

У меня тоже есть эта проблема. Обходной путь для меня, кажется, состоит в том, чтобы использовать изображение в качестве фона вместо использования цвета.

Терри
источник
1

У меня тоже была такая же проблема в Ubuntu 18.04.3 с использованием NVIDIA 390.129. Фон показывал шумное изображение после пробуждения компьютера от приостановки. Я не нашел правильного решения, но взломал способ установить правильный фон при запуске службы, когда компьютер выходит из режима ожидания.

Давайте сначала создадим файл change_background.shв /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'

Установите путь к изображению, которое вы хотите.

Нам также нужно создать /usr/bin/discover_session_bus_address.shи вставить следующий код, предоставленный Адамом Рычковски . change_background.shИсходный файл для того, чтобы установить DBUS_SESSION_BUS_ADDRESSпеременную среды.

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

Наконец, давайте создадим служебный файл, расположенный в /etc/systemd/systemnamed, например,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

Убедитесь, что вы дали правильные разрешения для всех файлов.

Запустите сервис с:

sudo systemctl enable change_background.service

Вы можете проверить статус с:

systemctl status change_background.service

Я надеюсь, что это решило вашу проблему, теперь фон должен быть настроен на изображение по вашему выбору, когда компьютер выходит из режима ожидания.

Эдмундо Санс-Гадеа
источник