Bildschirmbeschädigung nach Ruhezustand - Gibt es eine andere Möglichkeit, die X11-Anzeige zu aktualisieren?

23

Wenn ich aus dem Ruhezustand wiederherstelle, ist der Bildschirm häufig beschädigt. Ich vermute, der Grafikspeicher wird nicht gespeichert. Ansonsten funktioniert Suspend-to-RAM einwandfrei.

Es sieht auch so aus, als ob der Font-Cache beschädigt ist, da alle Buchstaben konsistent beschädigt sind. Der Effekt scheint auf eine Schrift mit einer bestimmten Größe abzuzielen. Wenn beispielsweise mein Terminalfenster angeklickt wird, wird dies durch Ändern der Schriftart und / oder der Schriftgröße behoben, es sei denn, die Schriftart mit dieser Größe ist bereits beschädigt.

Wenn die Schriftart an anderer Stelle verwendet wird (andere Apps, Fenstermanager usw.), liegt das Problem ebenfalls vor. Manchmal wird die für die Fenstertitel verwendete Schrift getroffen, und alle Fenstertitel zeigen die gleichen Buchstaben, die beschädigt sind.

Das Abmelden und erneutes Anmelden behebt das Problem , aber das möchte ich nicht tun müssen. Ich habe mich aus dem Ruhezustand abgemeldet, aber dies ist aufwändiger und beseitigt den größten Teil des Nutzens des Ruhezustands.

Gibt es eine andere Möglichkeit, das X11-Display zu aktualisieren? Die Ctrl+ Alt+ F1... ist es auch nicht beheben. Es wechselt das Terminal, zeichnet aber nichts neu: Es zeigt nur den alten, beschädigten Bildschirm.

Ich benutze Debian 6.

In diesem Fall ist der Fenstertitel schlecht: Fenstertitelschrift verändert

Terminalinhalt schlecht, aber Titel ist (noch) in Ordnung: Text wird systematisch verzerrt, es sind jedoch nur einige Schriftarten betroffen

Strg-Alt-Delor
quelle
1
Welchen Grafikchip / Treiber verwenden Sie? Distribution?
Caleb
1
Debian 6, Acer Aspire 5338 integrierte Grafik. Ich habe es in Ubuntu arbeiten lassen, und Suspend to Ram funktioniert ausgezeichnet. Ich vermute, wir speichern einfach keinen Grafik-RAM auf der Festplatte.
ctrl-alt-delor
1
Das beantwortet die Frage nicht ganz, da dieses Modell anscheinend mit Intel-, Nvidia- und ATI-Grafikkartenoptionen geliefert wurde. Mit "integriert" meinen Sie, dass Sie die Intel GMA-Grafikkarte haben?
Caleb
Es ist nicht klar, was Sie gesagt haben - haben Sie versucht, STRG-ALT-F1 vor dem Ruhezustand auszuführen (dh aus dem Textmodus in den Ruhezustand zu wechseln und erst nach dem Fortsetzen zu X11 zurückzukehren)? Möglicherweise müssen Sie den Befehl zum Ruhezustand über die Befehlszeile ermitteln.
Random832
1
Ich habe auf debian7 aktualisiert, es funktioniert jetzt. @terdon die Screenshots zur Frage hinzugefügt, sehen ähnlich aus, was ich hatte.
Strg-Alt-Delor

Antworten:

12

Ich hatte eine ähnliche Situation mit meinem Laptop. Der Bildschirm blieb oft schwarz, wenn er aus dem Standby-Modus geweckt wurde. Meine Lösung bestand darin xrandr, meine Displays zurückzusetzen. Sie müssen den xrandrBefehl zum Einrichten Ihres Layouts suchen und ausführen. Zum Beispiel hatte ich auf meinem System zwei Bildschirme und diese stellten es so ein, wie ich es wollte:

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

Wenn Sie nur einen Bildschirm haben, können Sie versuchen, ihn aus- und wieder einzuschalten:

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

Sie können die Namen Ihrer Bildschirme anzeigen, indem Sie xrandrohne Argumente ausführen. Auf dem System, das ich gerade benutze (ein VGA-Bildschirm), erhalte ich:

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

Wenn Sie den richtigen Befehl gefunden haben, weisen Sie ihm eine Verknüpfung zu, damit Sie ihn auch dann ausführen können, wenn der Bildschirm leer ist.

terdon
quelle
Ich sehe nicht, wie das funktionieren könnte. Sie erhalten einen schwarzen Bildschirm und haben keine Benutzeroberfläche ... aber Sie führen einen Befehl aus? Wie? Die Tastenkombination Alt + Fn funktioniert nicht, da selbst alle X-Befehle den Fehler "Kann Anzeige nicht öffnen" auslösen. Das export DISPLAY=:0Ausprobieren führt nur zu einem anderen Fehler.
Cerin
@Cerin auf meinem System, ich habe diesem Befehl eine Verknüpfung zugewiesen, damit ich ihn blind ausführen kann, indem ich Alt + F
drücke.
Danke, das hat es für mich getan (seit ich Citrix Receiver benutze, bekomme ich ausgefallene Bildschirmstörungen; das hat es behoben, als alles andere fehlgeschlagen ist). Beachten Sie, dass Sie möglicherweise eine Configure crtc 0 failedFehlermeldung erhalten , wenn Sie den Befehl von einem anderen VT auf demselben Computer ausführen . Fügen Sie einfach vor dem Befehl einen kleinen Ruhezustand hinzu und schalten Sie das VT so, dass es aktiv ist, wenn xrandr ausgeführt wird. @Cerin das ist wahrscheinlich dein Problem. sleep 5; xrandr --output VGA-1 --off; xrandr --output VGA-1 --auto
Thomas Guyot-Sionnest
Es stellte sich heraus, dass das nicht wirklich mein Problem war; Beim Wechseln der VTs scheint der Windows-Manager oder die Gnome-Shell über Ereignisse auf dem Laufenden zu bleiben und für einige Zeit nicht zu reagieren. Die Zeit, die für diese Aktionen aufgewendet wurde, reichte aus, um den Bildschirm aufzufrischen und zu aktualisieren. OTOH, es hat einmal geholfen, als ich auf ein Fokusproblem gestoßen bin, bei dem ich nichts anklicken konnte und Tastenkombinationen ignoriert wurden - das Ausschalten und das Einschalten des Displays haben es behoben.
Thomas Guyot-Sionnest
Ist es normal, dass der obige Befehl (für eine Anzeige) mit dem Mauszeiger einen Bildschirm mit niedriger Auflösung (schwarz) anzeigt? Wenn ja, wie behebe ich das?
Cool Charac
7

Hast du den xrefreshBefehl ausprobiert ?

Keith Thompson
quelle
Ja, hat nicht funktioniert,
Strg-Alt-Delor
Ich werde es das nächste Mal versuchen ... FWIW Die meiste Zeit bekomme ich einen Fehler, der die Anzeige beeinflusst. Entweder wechsle ich zwischen Text- und GUI-VTs oder verwende die Option Benutzer wechseln (die eine VT sperrt und die andere entsperrt), um meine Probleme zu beheben. In seltenen Fällen kann dies jedoch nur mit xrandr behoben werden. Normalerweise schalte ich VTs mit, CTRL-ALT-F<n>damit ich nicht die ganze Zeit entsperren muss.
Thomas Guyot-Sionnest
6

In GNOME 3 , AltF2rentererfrischt die GUI. AltF2Startet die Eingabeaufforderung Ausführen , und der rBefehl erzwingt eine Aktualisierung.

Severyn Kozak
quelle
Das hört sich so an, als könntest du auch rvon der Konsole aus laufen . Ich habe keine rinstalliert. - Was soll das heißen, sagst du? Dh welches Paket? Wie lautet der vollständige Name dieses rProgramms?
Robert Siemer
1
@RobertSiemer das ist kein Programm, es ist eine interne GNOME-Sache, die das DE neu startet. Ich vermute, es läuft gnome --replaceim Hintergrund, aber ich weiß es nicht.
Terdon
3
roder restart(es ist das gleiche). Das Konsolenäquivalent wäre gnome-shell --replace.
don_crissti
Ich starte Gnome-Panel mit Metacity.
Robert Siemer
@richard, hat das funktioniert?
Severyn Kozak
5

Ich habe auch dieses Problem (Debian Squeeze und Wheezy).

Meiner Erfahrung nach geschieht dies hauptsächlich, wenn der größte Teil des Speichers voll ist und das System den Swap-Speicher verwendet.

Eine teilweise Umgehung: Wenn ich die Standardschriftarten ändere, geht die Beschädigung verloren. (Nicht für immer, aber ich muss mich wieder umziehen, wenn die Korruption wieder auftaucht.)

(Unter Debian Wheezy wird dies mit dem Gnome-Tweak-Tool durchgeführt.)

Robert
quelle
4

Upgrade auf Kernel 3.19. - Ich habe die Ubuntu-Mainline-Kernel-Pakete verwendet , die hier zu finden sind:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/ (läuft auch unter Ubuntu 14.04)

Der folgende Fehlerberichtkommentar erwähnte es

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

... und das Commit mit der folgenden Meldung aufgespürt:

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

"... seit wir das nur auf gm45 und i965gm gesehen haben."

Ich habe diesen Intel GM45 Mobile Chipsatz mit integrierter Grafik. Der Acer-Laptop des OP wurde auch mit diesem Chipsatz verkauft (allerdings nicht alle).

(Es hatte nichts mit Suspend zu tun.)

Robert Siemer
quelle
3

Wenn ein Treiber ein Gerät nicht ordnungsgemäß reaktiviert, besteht die einzige Lösung meines Erachtens darin, das Problem zu beheben und zu identifizieren, sodass Sie entscheiden können, was von dort aus zu tun ist. Beispielsweise sehe ich nicht, wie Sie aktualisieren können, wenn die Grafikkarte nicht neu initialisiert wird.

ACPI verwaltet Suspend / Resume und Display. Das folgende ACPI-Problem, das bei einigen ThinkPads auftritt, kann beispielsweise die von Ihnen beschriebenen Symptome beheben:

Wenn Sie von Suspend-to-RAM fortfahren, wird in der Textkonsole möglicherweise kein Text mehr angezeigt. Das Gerät reagiert sonst immer noch und X wird gut angezeigt. Wenn all dies zutrifft, kann das Problem möglicherweise durch Hinzufügen der Kerneloption acpi_sleep = s3_bios, s3_mode in Ihrer menu.lst oder lilo.conf behoben werden .

Probleme mit ACPI-Suspend-to-RAM - ThinkWiki

Wenn Sie das thinkpad_acpiModul verwenden, auf das sich das obige Zitat bezieht, ist dies möglicherweise alles, was Sie benötigen. Weitere Informationen zu dieser Lösung finden Sie in der Dokumentation zu Suspend2Ram - Powersave

Erstens gibt es mehrere Kernel-Parameter, die ausprobiert werden können. Füge sie einfach zu deiner "Kernel" -Zeile in /boot/grub/menu.lst hinzu . Weitere Informationen dazu finden Sie in /usr/src/linux/Documentation/power/video.txt .

Aus video.txt:

Während der S3-Wiederaufnahme muss die Hardware neu initialisiert werden. Bei den meisten Geräten ist dies einfach und der Kerneltreiber weiß, wie es geht. Leider gibt es eine Ausnahme: Grafikkarte. Diese werden normalerweise vom BIOS initialisiert, und der Kernel verfügt nicht über genügend Informationen, um die Grafikkarte zu starten. (Der Kernel enthält normalerweise nicht einmal einen Grafikkartentreiber - vesafb und vgacon sind weit verbreitet).

Weitere Informationen finden Sie unter video.txt. Sehen Sie in der Tabelle hier nach, ob acpi_sleep=<hack>für Ihr Grafikkartenmodell ein Bekannter aufgeführt ist.

Debian-Suspend und KMS Das Debian-Wiki schlägt vor, KMS für ein "beschädigtes Video bei Wiederaufnahme" -Problem zu deaktivieren. 1

Ein sehr häufiges Problem, das nach dem Fortsetzen des Computers auftritt, ist ein beschädigtes Video (oder ein schwarzer Bildschirm oder keine LCD-Hintergrundbeleuchtung). Der erste Schritt besteht darin, zu überprüfen, ob das System noch läuft. Dies kann einfach durch Drücken der Feststelltaste erfolgen, und zu überprüfen, ob sich die Feststelltaste-LED entsprechend ändert. Wenn das System noch ausgeführt wird, müssen wir in den meisten Fällen eine Video-Quirk für Ihre Grafikkarte hinzufügen.

Debian hat jetzt die Kernel-Modus-Einstellung (KMS) standardmäßig für die meisten Intel-, nVidia- und ATI-Grafikkarten aktiviert. Die Video-Eigenart von pm-utils unterstützt KMS jedoch noch nicht. In den meisten Fällen sollten Sie daher zuerst versuchen, KMS zu deaktivieren. Die detaillierten Schritte für Ihre spezielle Grafikkarte finden Sie auf der Seite KernelModesetting.

Wenn nach dem Deaktivieren von KMS das Video nach dem Fortsetzen immer noch fehlerhaft ist, können Sie versuchen, das System mithilfe einiger Video-Macken anzuhalten. Lesen Sie die Manpage des pm-suspend-Programms, um eine sehr detaillierte Erklärung aller verfügbaren Macken zu erhalten, und probieren Sie die Kombinationen von ihnen über die Befehlszeile aus. Wenn Sie eine für Ihr System geeignete Kombination von Macken gefunden haben, können Sie sie in / usr / lib / pm-utils / video-quirks einfügen, um sie dauerhaft zu machen. Bitte helfen Sie dabei, einen Fehler gegen das pm-utils-Paket mit einem Patch über Ihre Änderungen einzureichen, damit die Masse davon profitiert.

Ein häufiges Problem bei der Aktualisierung von Systemen von alten Debian-Versionen ist die Aktivierung von quirk-s3-bios, um das System während des Suspend-Vorgangs einzufrieren. Wenn Ihr System während des Suspend-Vorgangs abstürzt, überprüfen Sie die Datei pm-suspend.log nach dem aktivierten Debugging sorgfältig und stellen Sie sicher, dass quirk-s3-bios nicht verwendet wird.

Wenn Sie der Meinung sind, dass dies mit Ihrem Problem zusammenhängt, können Sie KMS wie vorgeschlagen deaktivieren. Anleitungen für Ihre Karte finden Sie unter KernelModesetting - Debian Wiki

Debugging-Suspend

Das Protokoll der Suspend- und Resume- Prozesse befindet sich in der Datei /var/log/pm-suspend.log. Standardmäßig enthält es mäßig ausführliche Informationen. Weitere Informationen zum Debuggen können aktiviert werden, indem Sie den Zeilenexport PM_DEBUG = true am Anfang der Datei / usr / lib / pm-utils / pm-functions einfügen .

Weitere Informationen finden Sie auch in den Informationen zur Kernel- Testeinrichtung im Suspend-Debian-Wiki . Dies kann Ihnen beim Debuggen und Isolieren des Problems helfen.

Einige Beispiele und ausführlichere Debugging-Informationen, die Ihnen helfen können, "Treiber, deren Geräte nicht angehalten oder fortgesetzt werden können", finden Sie unter https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt

Weitere Debugging-Ideen für pm-utilsbei pm-utils - ArchWiki und /unix//a/29090/87728

Hier ist eine vollständige Liste der Kernel-Parameter, von denen viele für acpi und suspend relevant sind.

Viel Glück.

Iyrin
quelle
X-Anzeige ist nicht in Ordnung; Virtuelle Textterminals sind in Ordnung
Robert Siemer
Hast du nachgesehen /var/log/pm-suspend.log? Haben Sie das Debuggen aktiviert /usr/lib/pm-utils/pm-functionsund danach überprüft?
Iyrin
Sie können das Anhalten mit Macken vom Terminal mit testen pm-suspend --quirk-s3-bios --quirk-s3-mode. Siehe den Abschnitt Optionen in man pm-action.
Iyrin
Ich habe nachgesehen /var/log/pm-suspend.log. Nichts Ungewöhnliches. Ich benutze KMS. - Das Deaktivieren von KMS ist heutzutage keine Option (xorg Intel Driver benötigt dies). Das Wiki, auf das Sie verwiesen haben, wurde zuletzt 2012 aktualisiert.
Robert Siemer
Ich möchte nur sagen, dass der dmesg | tail -50Befehl zum Debuggen nützlich sein kann. Ich habe tatsächlich eine Speicherbeschädigung im Zusammenhang mit Suspend entdeckt, die ich mit Kernelparametern in grub beheben konnte memmap=64K$0 memory_corruption_check=0. Ich glaube, es wird Ihnen sagen, ob ein Fehler beim Initialisieren der Grafikkarte vorliegt.
Iyrin
2

Dies scheint ein gemeldeter Fehler zu sein. Überprüfen Sie den folgenden Link.

Im Falle von Ubuntu überprüfen Sie diesen Link

Im Falle von Debian lesen diesen anderen Link speziell im Abschnitt Fixing corrupted video on resume

Falls das Problem in einer Textkonsole liegt: Haben Sie versucht, den Schriftarten-Cache zu aktualisieren?

fc-cache -f -v

YoMismo
quelle
Hilft nicht ...
Robert Siemer
1
Dies scheint ein gemeldeter Fehler zu sein. Überprüfen Sie den folgenden Link. Wenn Ihre Distribution nicht Ubuntu ist, ist der Fehler möglicherweise nicht spezifisch für eine Distribution, aber für einige Bibliotheken, die sich auf andere Distributionen auswirken können. Stöbern Sie in den Fehlern und prüfen
YoMismo
Tut mir leid, dass ich nicht gesehen habe, dass Ihre Distribution Debian ist. Überprüfen Sie den nächsten Link: wiki.debian.org/Suspend besonders das Reparieren des beschädigten Videos im Wiederaufnahmeteil .
YoMismo
Ich habe Ubuntu 14.04.
Robert Siemer
OK, die Frage lautete "Ich verwende Debian 6." vor dem ersten Screenshot. Dann werden Sie Ihre Antwort vermutlich in den Fehlern des Launchpads finden ... Wie auch immer, Ubuntu basiert auf Debian, also kann Ihnen vielleicht eine Lösung über den Debian-Link helfen.
YoMismo
0

Dies liegt mit ziemlicher Sicherheit daran, dass der Grafiktreiber Fehler für das Anzeigegerät aufweist. Es spielt wahrscheinlich keine Rolle, um was es sich handelt, denn so oder so können Sie es wahrscheinlich nicht beheben. Sie sollten jedoch einen Fehler bezüglich des Kerneltreibers für das Gerät melden (sobald Sie herausgefunden haben, worum es sich handelt ( lspcikann hier hilfreich sein)).

Als Abhilfe können Sie Folgendes versuchen: Wenn Sie den Ruhezustand verlassen, drücken Sie "Strg-Alt-F4", um zu einem anderen virtuellen Terminal zu wechseln, und wechseln Sie dann zurück (dies ist wahrscheinlich entweder Strg-Alt-F1 oder Strg-F4). alt-F7 oder vielleicht F8). Dies kann bei einer Bildschirmaktualisierung ausreichen, um die Anzeige wiederherzustellen. Vielleicht.

Wes Hardaker
quelle
habe versucht ctrl-alt-F1 es hat nicht funktioniert.
Strg-Alt-Delor
0

Die Tastenkombination Strg + Alt + F1… funktioniert nicht

Nun, dann versuchen Sie es mit Issuing sudo chvt 1und wechseln dann mit Ctrl_Alt_Fn oder sudo chvt N(wobei N normalerweise 7 oder 8 ist) zurück zu Xorgs vty . Falls chvtes klappen sollte, können Sie sogar versuchen, Skripte zu erstellen.

Poige
quelle
sorry mir war nicht klar strg + alt + f1 funktioniert. Dies ist die Strg + Alt + F1-Lösung, die dies nicht tut. Ich kann virtuelle Terminals wechseln, die Beschädigung wird jedoch nicht behoben. Vielen Dank.
Strg-Alt-Delor
0

Versuchen Sie, den Bildschirm zu drehen oder umzudrehen xrandr, z. B. mit dem Kopf nach oben und dann wieder normal. Dies könnte ausreichen, um es vollständig neu zu zeichnen.

9000
quelle
-1

Versuchen Sie es Crtlalt-dann Crtlalt+. Das ändert die Bildschirmauflösung hin und her.

Nils
quelle
nichts. Möglicherweise sind die Schlüssel nicht gebunden.
Strg-Alt-Delor