从nvidia-390的挂起状态唤醒后,gnome下Ubuntu 18.04的桌面背景破碎


19

我有Nvidia 1080ti图形卡,该图形卡已经使用了几天。此外,我使用apt全新安装了Ubuntu 18.04,并安装了最新的nvidia-390驱动程序:

~$ 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上是一个问题)。登录屏幕在这里完美运行。

有什么想法如何解决这个问题以及它来自何处?

Answers:


16

我也有类似的问题。我有一个装有GeForce GTX 860M的Dell / Alienware机器,该机器运行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桌面软件……

我很想真正解决这个问题!


我该如何还原呢?因为它引起了一些意外的事情。
Esen Mehmet

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的内容。


5

我也有这个问题。对我来说,解决方法似乎是使用图像作为背景而不是使用颜色。


1

在使用NVIDIA 390.129的Ubuntu 18.04.3中,我也遇到了同样的问题。从挂起计算机中唤醒后,背景显示出嘈杂的图像。我没有找到合适的解决方案,但是想出了一种方法,可以在计算机从挂起状态唤醒时设置适当的后台运行服务。

让我们先创建该文件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并粘贴以下Adam Ryczkowski提供的代码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/system名为的服务文件,例如,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

我希望能解决您的问题,现在应该将计算机从挂起状态唤醒时将背景设置为您选择的图片。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.