Danneggiamento dello schermo dopo l'ibernazione: esiste un altro modo per aggiornare il display X11?


23

Quando ripristino da ibernazione lo schermo è spesso corrotto. Sospetto che la memoria grafica non venga salvata. In caso contrario, Suspend-to-ram funziona bene.

Sembra anche che la cache dei caratteri sia corrotta, poiché tutte le lettere sono corrotte in modo coerente. L'effetto sembra indirizzare un carattere a una dimensione specifica. Ad esempio, se viene colpita la finestra del mio terminale, la modifica del carattere e / o della dimensione del carattere lo risolverà, a meno che quel carattere con quella dimensione non sia già danneggiato.

Se il carattere viene utilizzato altrove (altre app, gestore di finestre, ecc.), Il problema è presente anche lì. A volte il carattere utilizzato per i titoli delle finestre viene colpito, quindi tutti i titoli delle finestre mostrano le stesse lettere danneggiate.

Disconnettersi e riconnettersi risolve il problema , ma non voglio farlo. Ho effettuato il logout e poi il letargo, ma questo è uno sforzo maggiore ed elimina gran parte del beneficio del letargo.

C'è un altro modo per aggiornare il display X11? Il Ctrl+ Alt+ F1... non significa risolve neanche. Cambia terminale ma non ridisegna nulla: mostra solo il vecchio schermo danneggiato.

Sto usando Debian 6.

In questa occasione il titolo della finestra è errato: carattere del titolo della finestra distorto

Contenuto del terminale non valido, ma il titolo è (ancora) corretto: il testo è sistematicamente distorto, ma solo alcuni caratteri sono interessati


1
Quale chip / driver grafico stai usando? Distro?
Caleb,

1
Grafica integrata Debian 6, acer aspire 5338. L'ho fatto funzionare su Ubuntu e sospendere che Ram funzioni in modo eccellente. Sospetto che non stiamo semplicemente salvando la RAM grafica su disco.
ctrl-alt-delor,

1
Ciò non risponde alla domanda poiché quel modello sembra essere stato fornito con le opzioni della scheda video Intel, Nvidia e ATI. Per "integrato" intendi che la tua ha la scheda video Intel GMA?
Caleb,

Non è chiaro da quello che hai detto - hai provato a fare ctrl-alt-F1 prima di andare in letargo (cioè in letargo dalla modalità testo, e tornare a X11 solo dopo aver ripreso)? potrebbe essere necessario scoprire il comando per ibernare dalla riga di comando.
Casuale 832

1
Ho aggiornato a debian7, ora funziona. @terdon le schermate aggiunte alla domanda, sembrano simili a quelle che avevo.
ctrl-alt-delor,

Risposte:


12

Ho avuto una situazione simile con il mio laptop. Lo schermo restava spesso nero quando si svegliava dalla sospensione. La mia soluzione era quella di utilizzare xrandrper ripristinare i miei display. Devi trovare il xrandrcomando che imposta il layout ed eseguirlo. Ad esempio, sul mio sistema, avevo due schermi e questo lo configurava come lo desideravo:

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

Se hai una sola schermata, puoi provare a spegnerla e riaccenderla:

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

Puoi vedere i nomi delle tue schermate eseguendo xrandrsenza argomenti. Sul sistema che sto usando ora (uno schermo VGA), ottengo:

$ 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)

Una volta trovato il comando giusto, assegnagli un collegamento in modo da poterlo eseguire anche quando lo schermo è vuoto.


Non vedo come possa funzionare. Hai una schermata nera e non hai interfaccia ... ma esegui un comando? Come? Fare alt + Fn non funzionerà perché anche tutti i comandi X generano l'errore "Impossibile aprire il display". Provare il export DISPLAY=:0trucco comporta solo un errore diverso.
Cerin,

@Cerin sul mio sistema, ho assegnato un collegamento a quel comando in modo da poterlo eseguire alla cieca premendo Alt + F.
terdon

Grazie, questo è stato per me (ottenendo problemi con lo schermo da quando ho iniziato a usare Citrix Receiver; questo è stato risolto quando tutto il resto falliva). Se si esegue il comando da un VT diverso sullo stesso computer, è possibile che venga visualizzato un Configure crtc 0 failederrore; basta aggiungere un piccolo sonno prima del comando e cambiare il VT in modo che sia attivo quando viene eseguito xrandr. @Cerin questo è probabilmente il tuo problema. sleep 5; xrandr --output VGA-1 --off; xrandr --output VGA-1 --auto
Thomas Guyot-Sionnest l'

Si scopre che non era davvero il mio problema; quando si cambiano VT sembra che il gestore di windows o la shell di gnome raggiungano gli eventi e non rispondano per qualche tempo; il tempo impiegato per eseguire queste azioni è stato sufficiente per recuperare e aggiornare lo schermo. OTOH mi ha aiutato una volta quando ho riscontrato un problema di messa a fuoco in cui non potevo fare clic su nulla e le scorciatoie da tastiera venivano ignorate: disattivando OFF e ON sul display è stato risolto.
Thomas Guyot-Sionnest l'

È normale che il comando sopra (per un display) ti lasci con uno schermo a bassa risoluzione (nero) con il puntatore del mouse? In tal caso, come posso risolvere il problema?
Raffreddare Charac il

7

Hai provato il xrefreshcomando?


Sì, non ha funzionato,
ctrl-alt-delor

Lo proverò la prossima volta ... FWIW la maggior parte delle volte ottengo un problema tecnico che influisce sul display, passando da testo a VT della GUI o usando l'opzione switch user (che blocca un VT e sblocca l'altro) risolve i miei problemi ... ma in rare occasioni sembra che solo xrandr possa risolverlo. Normalmente cambio VT usando CTRL-ALT-F<n>quindi non devo sbloccare tutto il tempo.
Thomas Guyot-Sionnest l'

6

In GNOME 3 , AltF2renteraggiorna la GUI. AltF2avvia il prompt dei comandi Esegui e il rcomando forza un aggiornamento.


Sembra che tu possa anche correre rdalla console. Non ho rinstallato. - Cosa dovrebbe succedere, dici? Cioè quale pacchetto? Qual è il nome completo di quel rprogramma?
Robert Siemer,

1
@RobertSiemer che non è un programma, è una cosa GNOME interna che riavvia il DE. Immagino che funzioni gnome --replacein background ma non lo so.
terdon

3
ro restart(è lo stesso). L'equivalente console sarebbe gnome-shell --replace.
don_crissti,

Corro gnome-panel con metacità.
Robert Siemer,

@richard, ha funzionato?
Severyn Kozak,

5

Sto riscontrando anche questo problema (Debian Squeeze e Wheezy).

Nella mia esperienza, succede principalmente quando la maggior parte della memoria è piena e il sistema utilizza la memoria di swap.

Come soluzione parziale: se cambio i caratteri predefiniti, la corruzione scompare. (Non per sempre, devo cambiare di nuovo quando ricompare la corruzione.)

(Su Debian Wheezy questo viene fatto da gnome-tweak-tool.)


4

Aggiornamento al kernel 3.19. - Ho usato i pacchetti del kernel mainline di Ubuntu , che possono essere trovati qui:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/ (funziona anche su Ubuntu 14.04 fidato)

Il seguente commento di segnalazione bug lo menzionava

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

... e rintracciato il commit con il seguente messaggio:

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

"... da quando l'abbiamo visto solo su gm45 e i965gm."

Ho quel chipset mobile Intel GM45 con grafica integrata. Anche il laptop Acer dell'OP è stato venduto con quel chipset (non tutti però).

(Non aveva nulla a che fare con la sospensione.)


3

Se un driver non riesce a riprendere correttamente un dispositivo, credo che l'unica soluzione che troverai sarà il debug e l'identificazione di dove si trova il problema in modo da poter decidere cosa fare da lì. Ad esempio, non vedo come è possibile aggiornare se la scheda video non viene reinizializzata.

ACPI gestisce la sospensione / ripresa e la visualizzazione. Ad esempio, il seguente problema ACPI che si verifica su alcuni ThinkPad può risolvere i sintomi che stai descrivendo:

Quando si riprende da suspend-to-ram, i display della console di testo potrebbero mostrare immondizia anziché testo effettivo. In caso contrario, la macchina è ancora reattiva e X viene visualizzato correttamente. Se tutto ciò è vero, l'aggiunta dell'opzione kernel acpi_sleep = s3_bios, s3_mode nel menu.lst o lilo.conf potrebbe risolvere il problema.

Problemi con ACPI suspend-to-ram - ThinkWiki

Se stai utilizzando il thinkpad_acpimodulo a cui si rivolge la citazione sopra, potrebbe essere tutto ciò di cui hai bisogno. Per ulteriori informazioni su questa soluzione, consultare Suspend2Ram - Documentazione Powersave

Innanzitutto, ci sono diversi parametri del kernel che possono essere provati. Aggiungili al tuo "kernel" -line in /boot/grub/menu.lst . Maggiori informazioni su questi sono disponibili in /usr/src/linux/Documentation/power/video.txt .

Da video.txt:

Durante il ripristino di S3, è necessario reinizializzare l'hardware. Per la maggior parte dei dispositivi, questo è semplice e il driver del kernel sa come farlo. Sfortunatamente c'è un'eccezione: la scheda video. Questi sono generalmente inizializzati dal BIOS e il kernel non ha abbastanza informazioni per l'avvio della scheda video. (Il kernel di solito non contiene nemmeno il driver della scheda video: vesafb e vgacon sono ampiamente utilizzati).

Altro su video.txt Fare riferimento alla tabella qui per vedere se un noto acpi_sleep=<hack>è elencato per il modello della scheda video.

Debian Suspend e KMS Il wiki di Debian suggerisce di disabilitare KMS per un problema di "video danneggiato al riavvio". 1

Un problema molto comune riscontrato dopo il riavvio del computer è il video danneggiato (o schermo nero o nessuna retroilluminazione LCD). Il primo passo è verificare se il sistema è ancora in esecuzione, cosa che può essere fatta semplicemente premendo il pulsante Capslock e controllare se il LED Capslock sta cambiando di conseguenza. Se il sistema è ancora in esecuzione, nella maggior parte dei casi è necessario aggiungere una stranezza video per la scheda video.

Debian ora ha l'impostazione della modalità kernel (KMS) abilitata di default per la maggior parte delle schede video Intel, nVidia e ATI. Ma la stranezza video di pm-utils [non] supporta ancora KMS. Quindi nella maggior parte dei casi dovresti provare prima a disabilitare KMS. I passaggi dettagliati per la tua scheda video specifica sono disponibili nella pagina KernelModesetting.

Dopo aver disabilitato KMS, se il video dopo il ripristino continua a corrompersi, puoi provare a sospendere il sistema utilizzando alcune stranezze video. Leggi la manpage del programma pm-suspend per una spiegazione molto dettagliata di tutte le stranezze disponibili e prova le loro combinazioni dalla riga di comando. Se trovi correttamente una combinazione di stranezze che funziona per il tuo sistema, puoi aggiungerle in / usr / lib / pm-utils / video-quirks per renderle permanenti. Allo stesso tempo, ti preghiamo di aiutare a presentare un bug sul pacchetto pm-utils con una patch sulle tue modifiche in modo che possa essere utile alla massa.

Un problema comune riscontrato nell'aggiornamento dei sistemi dalle vecchie versioni di Debian è l'abilitazione di quirk-s3-bios che blocca il sistema durante la sospensione. Se il sistema si blocca durante la sospensione, controllare attentamente pm-suspend.log dopo aver abilitato il debug e assicurarsi che quirk-s3-bios non venga utilizzato.

Se ritieni che ciò sia correlato al tuo problema, puoi provare a disabilitare KMS come suggerito. Per istruzioni sulla tua carta, vedi KernelModesetting - Debian Wiki

Sospensione del debug

Il registro dei processi di sospensione e ripresa si trova nel file /var/log/pm-suspend.log. Contiene informazioni moderatamente dettagliate per impostazione predefinita. Ulteriori informazioni possono essere abilitate per il debug inserendo la riga export PM_DEBUG = true all'inizio delle funzioni file / usr / lib / pm-utils / pm- .

Per di più, controlla anche le informazioni sulla funzione di test del kernel menzionata su Suspend - Debian Wiki . Questo può aiutarti a eseguire il debug e isolare il problema.

Alcuni esempi e informazioni di debug più approfondite che potrebbero aiutarti a "driver che non riescono a sospendere o riprendere i loro dispositivi" sono disponibili su https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt

Altre idee di debug per pm-utilsat -pms - ArchWiki e /unix//a/29090/87728

Ecco un elenco completo dei parametri del kernel, molti dei quali sono rilevanti per acpi e suspend.

In bocca al lupo.


Il display X non va bene; i terminali di testo virtuali vanno bene
Robert Siemer,

Hai controllato /var/log/pm-suspend.log? Hai abilitato il debug /usr/lib/pm-utils/pm-functionse verificato dopo?
iyrin,

Puoi testare la sospensione con stranezze dal terminale usando pm-suspend --quirk-s3-bios --quirk-s3-mode. Vedi la sezione opzioni in man pm-action.
Iyrin,

Ho controllato /var/log/pm-suspend.log. Niente di insolito. Sto usando KMS. - La disabilitazione di KMS non è attualmente disponibile (ne ha bisogno il driver xorg Intel); che wiki si indicò è stato aggiornato l'ultima volta 2012.
Robert Siemer

Voglio solo dire che il dmesg | tail -50comando può essere utile per il debug. In realtà ho scoperto un danneggiamento della memoria insufficiente legato alla sospensione che ero in grado di risolvere con i parametri del kernel in grub memmap=64K$0 memory_corruption_check=0. Credo che ti dirà se si è verificato un errore durante l'inizializzazione della scheda video.
iyrin,

2

Questo sembra essere un bug segnalato, controlla il link che segue.

In caso di Ubuntu controlla questo link

Nel caso di Debian leggi questo altro link specialmente il video Fixing corrotto sulla parte di ripresa

Nel caso in cui il problema si trovi in ​​una console di testo: hai provato ad aggiornare la cache dei caratteri?

fc-cache -f -v


Non aiuta ...
Robert Siemer,

1
Questo sembra essere un bug segnalato, controlla il link che segue. Se la tua distro non è Ubuntu, il bug potrebbe non essere specifico di una distro ma di alcune librerie che potrebbero influenzare altre distro. Scava nei bug e vedi se è stato risolto per la tua distro ... bugs.launchpad.net/ubuntu/+source/linux/+bug/659434
YoMismo

Scusa se non ho visto che la tua distribuzione era Debian. Controlla il link seguente: wiki.debian.org/Spendi in particolare il video Fixing corrotto sulla parte del curriculum .
YoMismo,

Ho Ubuntu 14.04.
Robert Siemer,

OK, la domanda affermava "Sto usando Debian 6." prima del primo screenshot. Quindi suppongo che troverai la tua risposta nei bug del launchpad ... Comunque, Ubuntu si basa su Debian, quindi forse una soluzione dal link di Debian può aiutarti.
YoMismo,

0

Questo è quasi certamente perché il driver grafico ha dei bug per il dispositivo di visualizzazione. Probabilmente non importa molto quale sia, perché in entrambi i casi non è qualcosa che puoi probabilmente risolvere. Ma dovresti presentare un bug sul driver del kernel per il dispositivo (una volta che hai capito di cosa si tratta ( lspcipuò essere d'aiuto qui)).

Qualcosa che potresti provare, tuttavia, come soluzione: quando esci dal letargo, prova a premere "ctrl-alt-F4" per passare a un altro terminale virtuale e poi tornare indietro (che è probabilmente ctrl-alt-F1 o ctrl- alt-F7 o forse F8). Questo potrebbe fare abbastanza per un aggiornamento dello schermo da far ripristinare il display. Può essere.


ho provato ctrl-alt-F1 non ha funzionato.
ctrl-alt-delor,

0

Ctrl + Alt + F1 ... non funziona

Bene ... quindi prova a rilasciare sudo chvt 1, quindi torna alla Vty di Xorg usando Ctrl_Alt_Fn o sudo chvt N(dove N è di solito 7 o 8). Nel caso in cui chvtfunzionasse, puoi anche provare a copiarlo.


scusa non sono stato chiaro ctrl + alt + f1 funziona. È la soluzione ctrl + alt + f1 che non lo fa. Posso cambiare i terminali virtuali, ma non corregge la corruzione. Grazie.
ctrl-alt-delor,

0

Prova a ruotare o capovolgere lo schermo con xrandr, ad esempio capovolto e poi tornare alla normalità. Questo potrebbe essere sufficiente per ridisegnarlo completamente.


-1

Prova Crtlalt-allora Crtlalt+. Ciò cambia la risoluzione dello schermo avanti e indietro.


Niente. Può essere che le chiavi non siano associate.
ctrl-alt-delor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.