Corrupção de tela após hibernação - Existe outra maneira de atualizar a tela do X11?

23

Quando eu restauro do hibernar, a tela geralmente está corrompida. Eu suspeito que a memória gráfica não está sendo salva. Suspender para ram funciona bem caso contrário.

Também parece que o cache da fonte está corrompido, pois todas as letras estão corrompidas de forma consistente. O efeito parece direcionar uma fonte para um tamanho específico. Por exemplo, se minha janela do terminal for atingida, alterar a fonte e / ou o tamanho da fonte irá corrigi-la, a menos que a fonte com esse tamanho já esteja danificada.

Se a fonte for usada em outro lugar (outros aplicativos, gerenciador de janelas etc.), o problema também estará lá. Às vezes, a fonte usada para os títulos das janelas é atingida e todos os títulos das janelas mostram as mesmas letras corrompidas.

Sair e entrar novamente corrige isso , mas não quero fazer isso. Estive desconectando e hibernando, mas isso é mais esforço e elimina a maioria dos benefícios do hibernar.

Existe outra maneira de atualizar a tela X11? O Ctrl+ Alt+ F1… também não o corrige. Ele muda de terminal, mas não redesenha nada: apenas mostra a tela corrompida antiga.

Estou usando o Debian 6.

Nesta ocasião, o título da janela é ruim: fonte do título da janela desarranjada

Conteúdo do terminal inválido, mas o título (ainda) está correto: o texto é distorcido sistematicamente, mas apenas algumas fontes afetadas

ctrl-alt-delor
fonte
1
Que chip / driver gráfico você está usando? Distro?
Caleb
1
Debian 6, acer aspire 5338 de gráficos integrados. Eu tive que trabalhar no Ubuntu, e suspender a ram funciona excelente. Eu suspeito que nós apenas não salvamos ram gráficos em disco.
Ctrl-alt-delor 6/06/11
1
Isso não responde bem à pergunta, pois esse modelo parece ter sido enviado com as opções de placa de vídeo Intel, Nvidia e ATI. Por "integrado", você quer dizer que a sua possui a placa de vídeo Intel GMA?
Caleb
Não está claro pelo que você disse - você tentou fazer ctrl-alt-F1 antes de hibernar (ou seja, hibernando do modo de texto e retornando ao X11 depois de continuar)? pode ser necessário descobrir o comando para hibernar na linha de comando.
usar o seguinte comando
1
Eu atualizei para o debian7, agora funciona. @terdon as capturas de tela adicionadas à pergunta, parecem semelhantes ao que eu tinha.
Ctrl-alt-delor

Respostas:

12

Eu tive uma situação semelhante com o meu laptop. A tela geralmente fica preta quando acorda da suspensão. Minha solução foi usar xrandrpara redefinir meus monitores. Você precisa encontrar o xrandrcomando que configura seu layout e executá-lo. Por exemplo, no meu sistema, eu tinha duas telas e configurá-lo como eu queria:

xrandr --output DP-3 --auto --output VGA-0 --auto --right-of DP-3 --primary

Se você tiver apenas uma tela, tente desligá-la e ligá-la novamente:

xrandr --output VGA-1 --off; xrandr --output VGA-1 --auto;

Você pode ver os nomes de suas telas executando xrandrsem argumentos. No sistema que estou usando agora (uma tela VGA), recebo:

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080      60.0*+
   1680x1050      60.0  
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
DVI-I-1 disconnected (normal left inverted right x axis y axis)

Depois de encontrar o comando certo, atribua um atalho para que você possa executá-lo mesmo quando a tela estiver em branco.

terdon
fonte
Não vejo como isso poderia funcionar. Você tem uma tela preta e não tem interface ... mas executa um comando? Quão? Executar alt + Fn não funcionará porque mesmo todos os comandos X geram o erro "Não é possível abrir a tela". Tentar o export DISPLAY=:0truque resulta em um erro diferente.
Cerin
@Cerin no meu sistema, eu atribuído um atalho para esse comando para que eu possa executá-lo cegamente por bater Alt + F.
terdon
Obrigado, isso foi por mim (obtendo falhas de tela sofisticadas desde que comecei a usar o receptor Citrix; isso foi corrigido quando tudo mais falhou). Observe que, se você executar o comando de uma VT diferente no mesmo computador, poderá receber um Configure crtc 0 failederro; basta adicionar um pouco de sono antes do comando e alternar o VT para que ele fique ativo quando o xrandr for executado. @ Cerin, esse provavelmente é o seu problema. sleep 5; xrandr --output VGA-1 --off; xrandr --output VGA-1 --auto
Thomas Guyot-Sionnest 08/12/16
Acontece que esse não era realmente o meu problema; ao trocar de VT, parece que o gerenciador do Windows ou o shell do gnome atualiza os eventos e permanece sem resposta por algum tempo; o tempo gasto com essas ações foi suficiente para atualizar e atualizar a tela. OTOH ajudou uma vez quando encontrei um problema de foco em que não podia clicar em nada e os atalhos do teclado foram ignorados - DESLIGAR e LIGAR no visor o corrigiram.
Thomas Guyot-Sionnest
É normal que o comando acima (para um monitor) deixe uma tela de baixa resolução (preta) com o ponteiro do mouse? Se sim, como faço para corrigir isso?
Arrefecer personag
7

Você tentou o xrefreshcomando?

Keith Thompson
fonte
Sim, não funcionou,
ctrl-alt-delor 15/11/2013
Vou tentar isso da próxima vez ... FWIW na maioria das vezes, recebo uma falha que afeta a exibição, alternando entre texto e VT da GUI ou usando a opção de usuário do switch (que bloqueia um VT e desbloqueia o outro) corrige meus problemas ... mas, em raras ocasiões, parece que apenas o xrandr pode corrigi-lo. Normalmente, troco os VTs CTRL-ALT-F<n>para não ter que desbloquear o tempo todo.
Thomas Guyot-Sionnest
6

No GNOME 3 , AltF2renteratualiza a GUI. AltF2inicia o prompt Executar comando e o rcomando força uma atualização.

Severyn Kozak
fonte
Parece que você também pode executar a rpartir do console. Eu não tenho rinstalado. - O que deve correr, você diz? Ou seja, qual pacote? Qual é o nome completo desse rprograma?
Robert Siemer
1
@RobertSiemer que não é um programa, é uma coisa interna do GNOME que reinicia o DE. Suponho que seja executado gnome --replaceem segundo plano, mas não sei.
terdon
3
rou restart(é o mesmo). O console equivalente seria gnome-shell --replace.
31515 Don_crissti
Eu corro o painel do gnomo com metacidade.
Robert Siemer
@richard, isso funcionou?
Severyn Kozak
5

Também estou tendo esse problema (Debian Squeeze e Wheezy).

Na minha experiência, isso acontece principalmente quando a maior parte da memória está cheia e o sistema está usando a memória swap.

Como uma solução alternativa parcial: se eu alterar as fontes padrão, a corrupção desaparecerá. (Não é bom, porém, tenho que mudar novamente quando a corrupção reaparecer.)

(No Debian Wheezy, isso é feito pelo gnome-tweak-tool.)

Robert
fonte
4

Atualize para o Kernel 3.19. - Usei os pacotes principais do Ubuntu , que podem ser encontrados aqui:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/ (roda também no Ubuntu 14.04 confiável)

O seguinte comentário do relatório de bug mencionou

https://bugs.freedesktop.org/show_bug.cgi?id=45092#c37

... e rastreado o commit com a seguinte mensagem:

https://github.com/torvalds/linux/commit/656bfa3afc14e45e2d9e1624bf60d79b3beb12f2

"... já que só vimos isso nos gm45 e i965gm."

Eu tenho esse chipset móvel Intel GM45 com gráficos integrados. O laptop Acer do OP também foi vendido com esse chipset (embora nem todos).

(Não tinha nada a ver com suspensão.)

Robert Siemer
fonte
3

Se um driver não conseguir retomar um dispositivo corretamente, acredito que a única solução que você encontrará será na depuração e identificação de onde está o problema, para que você possa decidir o que fazer a partir daí. Por exemplo, não vejo como atualizar se a placa de vídeo não for reinicializada.

A ACPI lida com a suspensão / retomada e exibição. Por exemplo, o seguinte problema da ACPI que ocorre em alguns ThinkPads pode solucionar os sintomas que você está descrevendo:

Ao retomar de suspender para ram, as telas do console de texto podem mostrar lixo em vez de texto real. Caso contrário, a máquina ainda responde e X é exibido corretamente. Se tudo isso for verdade, a adição da opção do kernel acpi_sleep = s3_bios, s3_mode no menu.lst ou lilo.conf pode resolver o problema.

Problemas com o ACPI suspend-to-ram - ThinkWiki

Se você estiver usando o thinkpad_acpimódulo que a citação acima está abordando, pode ser tudo o que você precisa. Para obter mais informações sobre esta solução, consulte Suspend2Ram - Powersave Documentation

Primeiro, existem vários parâmetros do kernel que podem ser testados. Apenas adicione-os à sua linha do "kernel" em /boot/grub/menu.lst . Mais informações sobre isso podem ser encontradas em /usr/src/linux/Documentation/power/video.txt .

Do video.txt:

Durante a retomada do S3, o hardware precisa ser reinicializado. Para a maioria dos dispositivos, isso é fácil e o driver do kernel sabe como fazê-lo. Infelizmente, há uma exceção: placa de vídeo. Geralmente são inicializados pelo BIOS e o kernel não possui informações suficientes para inicializar a placa de vídeo. (O kernel geralmente nem contém o driver da placa de vídeo - o vesafb e o vgacon são amplamente utilizados).

Mais em video.txt Consulte a tabela aqui para ver se um conhecido acpi_sleep=<hack>está listado para o modelo da sua placa de vídeo.

Debian Suspend e KMS O wiki Debian sugere desabilitar o KMS para um problema de "vídeo corrompido ao reiniciar". 1

Um problema muito comum encontrado após o reinício do computador é o vídeo corrompido (ou tela preta ou sem luz de fundo do LCD). O primeiro passo é verificar se o sistema ainda está em execução, o que pode ser feito simplesmente pressionando o botão Capslock e se o LED Capslock está mudando de acordo. Se o sistema ainda estiver em execução, na maioria dos casos, precisamos adicionar uma peculiaridade de vídeo para sua placa de vídeo.

O Debian agora tem a configuração do modo kernel (KMS) ativada por padrão para a maioria das placas de vídeo Intel, nVidia e ATI. Mas a peculiaridade de vídeo da pm-utils ainda [não] suporta o KMS. Portanto, na maioria dos casos, você deve tentar desativar o KMS primeiro. As etapas detalhadas para sua placa de vídeo específica podem ser encontradas na página KernelModesetting.

Após o KMS desativado, se o vídeo após a continuação ainda corromper, você pode tentar suspender o sistema usando algumas peculiaridades de vídeo. Leia a página de manual do programa pm-suspend para obter uma explicação detalhada de todas as peculiaridades disponíveis e tente as combinações delas na linha de comando. Se você encontrar com êxito uma combinação de peculiaridades que funcione para o seu sistema, poderá adicioná-las a / usr / lib / pm-utils / video-peculiaridades para torná-las permanentes. Ao mesmo tempo, ajude a registrar um bug no pacote pm-utils com um patch sobre suas alterações para que ele possa beneficiar a massa.

Um problema comum encontrado na atualização de sistemas das versões antigas do Debian é a habilitação do quirk-s3-bios congela o sistema durante a suspensão. Se o seu sistema congelar durante a suspensão, verifique cuidadosamente o pm-suspend.log após a depuração ativada e verifique se o quirk-s3-bios não está sendo usado.

Se você acha que isso está relacionado ao seu problema, tente desativar o KMS, conforme sugerido. Para instruções sobre o seu cartão, consulte KernelModesetting - Debian Wiki

Suspensão de depuração

O log dos processos de suspensão e retomada está no arquivo /var/log/pm-suspend.log. Ele contém informações moderadamente detalhadas por padrão. Mais informações podem ser ativadas para depuração, inserindo a linha export PM_DEBUG = true no início das funções do arquivo / usr / lib / pm-utils / pm-pm .

Para mais, consulte as informações sobre as instalações de teste do Kernel mencionadas no Suspend - Debian Wiki . Isso pode ajudá-lo a depurar e isolar o problema.

Alguns exemplos e informações mais detalhadas sobre depuração que podem ajudá-lo a "drivers que falham em suspender ou reiniciar seus dispositivos" estão disponíveis em https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt

Mais algumas idéias de depuração pm-utilsno pm-utils - ArchWiki e /unix//a/29090/87728

Aqui está uma lista completa dos Parâmetros do Kernel, muitos deles relevantes para acpi e suspensão.

Boa sorte.

iyrin
fonte
O display X não está bom; terminais de texto virtuais são muito bem
Robert Siemer
Você checou /var/log/pm-suspend.log? Você ativou a depuração /usr/lib/pm-utils/pm-functionse verificou depois disso?
19715
Você pode testar a suspensão com peculiaridades do terminal usando pm-suspend --quirk-s3-bios --quirk-s3-mode. Veja a seção de opções em man pm-action.
21715
Eu verifiquei /var/log/pm-suspend.log. Nada incomum. Estou usando o KMS. - Desabilitar o KMS não é uma opção hoje em dia (o driver intel xorg precisa dele); que wiki você apontou foi última actualização de 2012.
Robert Siemer
Só quero dizer que o dmesg | tail -50comando pode ser útil para depuração. Na verdade, descobri uma corrupção de memória baixa relacionada à suspensão que consegui resolver com os parâmetros do kernel no grub memmap=64K$0 memory_corruption_check=0. Acredito que ele dirá se há um erro ao inicializar a placa de vídeo.
iyrin
2

Este parece ser um bug relatado, verifique o link a seguir.

No caso do Ubuntu, verifique este link

No caso do Debian, leia este outro link, especialmente o vídeo Corrigindo corrompido na parte do resumo.

Caso o problema esteja em um console de texto: você tentou atualizar o cache de fontes?

fc-cache -f -v

YoMismo
fonte
Não ajuda ...
Robert Siemer
1
Este parece ser um bug relatado, verifique o link a seguir. Se sua distribuição não for o Ubuntu, o bug pode não ser específico a uma distribuição, mas algumas bibliotecas que podem afetar outras distribuições. Pesquise o (s) bug (s) e veja se ele foi resolvido para sua distro ... bugs.launchpad.net/ubuntu/+source/linux/+bug/659434
YoMismo
Desculpe por não ter visto sua distribuição no Debian. Verifique o próximo link: wiki.debian.org/Suspenda especialmente o vídeo Corrigindo a correção na parte do resumo .
YoMismo
Eu tenho o Ubuntu 14.04.
Robert Siemer
OK, pergunta declarada "Estou usando o Debian 6." antes da primeira captura de tela. Então acho que você encontrará sua resposta nos bugs da barra de lançamento ... De qualquer forma, o Ubuntu é baseado no Debian, então talvez uma solução no link do Debian possa ajudá-lo.
YoMismo 25/02
0

Isso ocorre quase certamente porque o driver gráfico possui bugs no dispositivo de exibição. Provavelmente não importa muito o que é, porque de qualquer forma não é algo que você possa consertar. Mas você deve registrar um bug sobre o driver do kernel do dispositivo (depois de descobrir o que é ( lspcipode ajudar aqui)).

Algo que você pode tentar como solução alternativa: ao sair do hibernar, tente pressionar "ctrl-alt-F4" para alternar para outro terminal virtual e, em seguida, voltar (o que provavelmente é ctrl-alt-F1 ou ctrl- alt-F7 ou talvez F8). Isso pode fazer uma atualização suficiente da tela para recuperar a exibição. Talvez.

Wes Hardaker
fonte
tentei ctrl-alt-F1 não funcionou.
Ctrl-alt-delor 23/06
0

O Ctrl + Alt + F1… não funciona

Bem ... tente emitir sudo chvt 1, depois volte para o vty do Xorg usando Ctrl_Alt_Fn ou sudo chvt N(onde N é geralmente 7 ou 8). Caso chvtfuncione, você pode até tentar criar scripts.

poige
fonte
desculpe, eu não estava claro ctrl + alt + f1 funciona. É a solução ctrl + alt + f1 que não funciona. Eu posso trocar de terminal virtual, mas isso não corrige a corrupção. Obrigado.
ctrl-alt-Delor
0

Tente girar ou virar a tela com xrandr, por exemplo, de cabeça para baixo e depois volte ao normal. Isso pode ser suficiente para que seja totalmente redesenhado.

9000
fonte
-1

Tente Crtlalt-então Crtlalt+. Isso muda a resolução da tela para frente e para trás.

Nils
fonte
nada. Pode ser que as chaves não estejam vinculadas.
ctrl-alt-Delor