Fundo de área de trabalho quebrado no Ubuntu 18.04 sob o gnome depois de acordar da suspensão na nvidia-390


19

Eu tenho a placa de vídeo Nvidia 1080ti, que tem apenas alguns dias. Além disso, tenho uma instalação limpa do Ubuntu 18.04 e os drivers nvidia-390 mais recentes instalados, usando o 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

Meu problema é que toda vez que estou ativando meu computador do modo de suspensão, meu plano de fundo passa para esse padrão de ruído (tenho cores sólidas definidas):

insira a descrição da imagem aqui

Acho que vale a pena mencionar que NÃO tenho nenhuma falha gráfica na tela de login (às vezes era um problema no Ubuntu 16.04). A tela de login funciona perfeitamente aqui.

Alguma idéia de como resolver esse problema e de onde ele vem?

Respostas:


16

Eu também estou tendo um problema semelhante. Eu tenho uma caixa Dell / Alienware com uma GeForce GTX 860M, executando o Ubuntu 18.04.

Quando o computador sai da suspensão, também tenho o problema com um plano de fundo da área de trabalho corrompido, às vezes branco, ou com a cor "neve". Eu posso corrigir o problema com:

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

Minha conta está configurada para não ter uma tela de bloqueio no currículo e acho que isso pode ser relevante. Bloquear na suspensão não parece importar.

Edição: Eu mudei meu driver nvidia de 390 para 396, e que não foi corrigido. Mas, mais interessante, se eu usar o Unity Desktop, o problema NÃO ocorre. Isso aponta um dedo para o software de desktop Gnome, talvez ...

Eu adoraria consertar isso de verdade!


Como posso reverter isso? Porque causou algumas coisas inesperadas.
Esen Mehmet

12

Outra maneira de solucionar esse problema é: Alt + F2 , digite re pressione Enter.
Isso reiniciará o Gnome.


8

Eu tenho o mesmo problema também executando o Ubuntu 18.04.1. Eu tenho a nvidia GT220, versão do driver 340.106. O bug foi relatado aqui: bugzilla.gnome.org há muito tempo. Dizia respeito ao Gnome 3.14 e o Ubuntu 18 agora está executando o Gnone 3.28. Deve ser consertado. Com o driver Nouveau, você não obtém esse problema.

Aqui está o que a Nvidia diz sobre isso:

Nossa arquitetura atual de software não preserva o conteúdo dos FBOs entre comutadores de modo ou eventos de energia. Como resultado, nossa implementação depende da renderização dos aplicativos para seus FBOs a cada quadro. Essa é uma limitação fundamental do nosso design que será corrigida no futuro.

O Gnome usa FBOs para não precisar renderizar o plano de fundo em todos os quadros. Mas o conteúdo dos FBOs não é salvo quando o computador entra no modo de suspensão.


5

Eu também tenho esse problema. a solução alternativa para mim parece ser usar uma imagem como plano de fundo em vez de usar uma cor.


1

Eu também tive o mesmo problema no Ubuntu 18.04.3 usando o NVIDIA 390.129. O fundo mostrou uma imagem barulhenta depois de acordar o computador da suspensão. Não encontrei uma solução adequada, mas hackeei uma maneira de definir o plano de fundo adequado para executar um serviço quando o computador acorda da suspensão.

Vamos primeiro criar o arquivo change_background.shem /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'

Defina o caminho para a imagem que você deseja.

Também precisamos criar /usr/bin/discover_session_bus_address.she colar o seguinte código, cortesia de Adam Ryczkowski . change_background.shorigina o arquivo para definir a DBUS_SESSION_BUS_ADDRESSvariável de ambiente.

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

Por fim, vamos criar um arquivo de serviço localizado em /etc/systemd/systemnomeado, por exemplo,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

Certifique-se de fornecer as permissões corretas para todos os arquivos.

Inicie o serviço com:

sudo systemctl enable change_background.service

Você pode verificar o status com:

systemctl status change_background.service

Espero que isso tenha resolvido o seu problema, agora o plano de fundo deve ser definido como a imagem de sua escolha quando o computador sair da suspensão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.