Uszkodzenie ekranu po hibernacji - Czy istnieje inny sposób odświeżenia ekranu X11?

23

Podczas przywracania ze stanu hibernacji ekran jest często uszkodzony. Podejrzewam, że pamięć graficzna nie jest zapisywana. W przeciwnym razie funkcja zawieszenia do ram działa dobrze.

Wygląda również na to, że pamięć podręczna czcionek jest uszkodzona, ponieważ wszystkie litery są stale uszkodzone. Wydaje się, że efekt jest ukierunkowany na czcionkę o określonym rozmiarze. Np. Jeśli moje okno terminala zostanie trafione, zmiana czcionki i / lub rozmiar czcionki to naprawi, chyba że czcionka o tym rozmiarze jest już uszkodzona.

Jeśli czcionka jest używana w innym miejscu (inne aplikacje, menedżer okien itp.), Problem również istnieje. Czasami uderzana jest czcionka użyta w tytułach okien, a następnie we wszystkich tytułach okien wyświetlane są takie same litery.

Wylogowanie i ponowne zalogowanie rozwiązuje problem , ale nie chcę tego robić. Wylogowałem się, a następnie hibernowałem, ale jest to większy wysiłek i eliminuje większość zalet hibernacji.

Czy istnieje inny sposób odświeżenia wyświetlacza X11? Ctrl+ Alt+ F1... nie naprawić go albo. Przełącza terminal, ale niczego nie przerysowuje: pokazuje tylko stary uszkodzony ekran.

Używam Debiana 6.

Przy tej okazji tytuł okna jest zły: zmieniona czcionka tytułu okna

Zła zawartość terminala, ale tytuł jest (nadal) w porządku: tekst jest systematycznie zniekształcany, ale dotyczy to tylko niektórych czcionek

ctrl-alt-delor
źródło
1
Jakiego układu graficznego / sterownika używasz? Distro?
Caleb
1
Debian 6, acer aspire 5338 zintegrowana grafika. Miałem go działającego w Ubuntu i zawieszam się, aby ram działał doskonale. Podejrzewam, że po prostu nie zapisujemy pamięci RAM na dysku.
ctrl-alt-delor
1
To nie do końca odpowiada na pytanie, ponieważ wydaje się, że ten model został dostarczony z opcjami kart graficznych Intel, Nvidia i ATI. Przez „zintegrowany” masz na myśli, że masz kartę graficzną Intel GMA?
Caleb
Nie jest jasne z tego, co powiedziałeś - czy próbowałeś zrobić ctrl-alt-F1 przed hibernacją (tj. Hibernacją z trybu tekstowego i przełączaniem się z powrotem na X11 po wznowieniu)? może być konieczne znalezienie polecenia hibernacji z wiersza polecenia.
Random832
1
Zaktualizowałem do debian7, teraz działa. @terdon zrzuty ekranu dodane do pytania, wyglądają podobnie do tego, co miałem.
ctrl-alt-delor

Odpowiedzi:

12

Miałem podobną sytuację z moim laptopem. Ekran często pozostawał czarny, gdy budził się z trybu wstrzymania. Moim rozwiązaniem było xrandrzresetowanie wyświetlaczy. Musisz znaleźć xrandrpolecenie konfigurujące układ i uruchomić je. Na przykład w moim systemie miałem dwa ekrany i ustawiłem to tak, jak chciałem:

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

Jeśli masz tylko jeden ekran, możesz spróbować go wyłączyć i włączyć ponownie:

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

Możesz zobaczyć nazwy swoich ekranów, uruchamiając xrandrbez argumentów. W systemie, którego teraz używam (jeden ekran VGA), otrzymuję:

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

Po znalezieniu właściwego polecenia przypisz mu skrót, aby można go było uruchomić, nawet gdy ekran jest pusty.

terdon
źródło
Nie rozumiem, jak to może działać. Otrzymujesz czarny ekran i nie masz interfejsu ... ale uruchomiłeś polecenie? W jaki sposób? Wykonanie Alt + Fn nie będzie działać, ponieważ nawet wszystkie polecenia X zgłaszają błąd „Nie można otworzyć wyświetlacza”. Wypróbowanie export DISPLAY=:0lewy powoduje po prostu inny błąd.
Cerin,
@Cerin w moim systemie, przypisałem skrót do tego polecenia, dzięki czemu mogę go uruchomić na ślepo, naciskając Alt + F.
terdon
Dzięki, zrobiłem to za siebie (uzyskiwanie fantazyjnych błędów ekranowych, odkąd zacząłem używać odbiornika Citrix; naprawiłem to, gdy wszystko inne zawiodło). Zauważ, że jeśli uruchomisz polecenie z innego VT na tym samym komputerze, możesz otrzymać Configure crtc 0 failedbłąd; po prostu dodaj mały sen przed poleceniem i przełącz VT, aby był aktywny, gdy działa xrandr. @Cerin to prawdopodobnie twój problem. sleep 5; xrandr --output VGA-1 --off; xrandr --output VGA-1 --auto
Thomas Guyot-Sionnest
Okazuje się, że to nie był mój problem; podczas przełączania VT wydaje się, że menedżer systemu Windows lub powłoka gnome łapie zdarzenia i przez pewien czas nie reaguje; czas poświęcony na wykonanie tych czynności wystarczył, aby nadrobić zaległości i odświeżyć ekran. OTOH, pomogło mi to raz, kiedy napotkałem problem z ogniskowaniem, w którym nie mogłem niczego kliknąć, a skróty klawiaturowe zostały zignorowane - wyłączenie, a następnie WŁĄCZENIE wyświetlacza naprawiło to.
Thomas Guyot-Sionnest
Czy to normalne, że powyższe polecenie (dla jednego wyświetlacza) pozostawia ekran o niskiej rozdzielczości (czarny) ze wskaźnikiem myszy? Jeśli tak, jak to naprawić?
Cool Charac
7

Próbowałeś xrefreshpolecenia?

Keith Thompson
źródło
Tak, nie działało,
ctrl-alt-delor
Spróbuję następnym razem ... FWIW przez większość czasu dostaję usterkę wpływającą na wyświetlanie, albo przełączanie między tekstem a VT GUI lub użycie opcji przełączania użytkownika (która blokuje jeden VT i odblokowuje drugi) naprawia moje problemy ... ale w rzadkich przypadkach wydaje się, że tylko xrandr może to naprawić. Zwykle zmieniam VT za pomocą, CTRL-ALT-F<n>więc nie muszę cały czas odblokowywać.
Thomas Guyot-Sionnest
6

W GNOME 3 , AltF2renterodświeża GUI. AltF2uruchamia wiersz polecenia Uruchom , a rpolecenie wymusza odświeżenie.

Severyn Kozak
źródło
Wygląda na to, że możesz także uruchomić rz konsoli. Nie mam rzainstalowanego - Co powiesz na to? Tj. Która paczka? Jaka jest pełna nazwa tego rprogramu?
Robert Siemer
1
@RobertSiemer, który nie jest programem, jest to wewnętrzny element GNOME, który ponownie uruchamia DE. Domyślam się, że działa gnome --replacew tle, ale nie wiem.
terdon
3
rlub restart(to jest to samo). Odpowiednikiem konsoli byłby gnome-shell --replace.
don_crissti
Prowadzę gnome-panel z metacity.
Robert Siemer
@richard, czy to zadziałało?
Severyn Kozak
5

Mam też ten problem (Debian Squeeze i Wheezy).

Z mojego doświadczenia wynika, że ​​dzieje się tak głównie wtedy, gdy większość pamięci jest pełna, a system używa pamięci wymiany.

W ramach częściowego obejścia: jeśli zmienię domyślne czcionki, uszkodzenie zniknie. (Jednak nie na dobre, muszę się zmienić, gdy ponownie pojawi się zepsucie).

(W Debian Wheezy jest to wykonywane przez gnome-tweak-tool.)

Robert
źródło
4

Aktualizacja do jądra 3.19. - Użyłem pakietów jądra Ubuntu , które można znaleźć tutaj:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/ (działa również na zaufanym systemie Ubuntu 14.04)

Wspomniał o tym następujący komentarz do raportu o błędzie

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

... i wyśledził zatwierdzenie za pomocą następującego komunikatu:

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

„... odkąd widzieliśmy to tylko na gm45 i i965gm.”

Mam ten mobilny mikroukład Intel GM45 ze zintegrowaną grafiką. Laptop Acer z OP był również sprzedawany z tym chipsetem (choć nie wszystkie).

(Nie miało to nic wspólnego z zawieszeniem).

Robert Siemer
źródło
3

Jeśli sterownik nie wznowi poprawnie urządzenia, uważam, że jedynym rozwiązaniem, które znajdziesz, będzie debugowanie i identyfikacja problemu, abyś mógł zdecydować, co dalej. Na przykład nie widzę sposobu na odświeżenie, jeśli karta wideo nie zostanie ponownie zainicjowana.

ACPI obsługuje zawieszanie / wznawianie i wyświetlanie. Na przykład następujący problem ACPI występujący na niektórych komputerach ThinkPad może rozwiązać objawy, które opisujesz:

Po wznowieniu od zawieszenia do ramu wyświetlacze konsoli tekstowej mogą wyświetlać śmieci zamiast tekstu. Poza tym maszyna nadal reaguje, a X wyświetla się dobrze. Jeśli to wszystko prawda, to dodanie opcji jądra acpi_sleep = s3_bios, s3_mode w menu.lst lub lilo.conf może rozwiązać problem.

Problemy z zawieszeniem ram-ACPI - ThinkWiki

Jeśli używasz thinkpad_acpimodułu, do którego odnosi się powyższy cytat, może to być wszystko, czego potrzebujesz. Aby uzyskać więcej informacji na temat tego rozwiązania, zobacz Suspend2Ram - Dokumentacja Powersave

Po pierwsze, istnieje kilka parametrów jądra, które można wypróbować. Po prostu dodaj je do linii „jądra” w /boot/grub/menu.lst . Więcej informacji na ten temat można znaleźć w /usr/src/linux/Documentation/power/video.txt .

Z video.txt:

Podczas wznawiania S3 sprzęt musi zostać ponownie zainicjowany. W przypadku większości urządzeń jest to łatwe, a sterownik jądra wie, jak to zrobić. Niestety jest jeden wyjątek: karta graficzna. Są one zwykle inicjowane przez BIOS, a jądro nie ma wystarczających informacji do uruchomienia karty graficznej. (Jądro zwykle nawet nie zawiera sterownika karty graficznej - szeroko stosowane są vesafb i ​​vgacon).

Więcej na video.txt Zapoznaj się z tabelą tutaj, aby sprawdzić, czy znany acpi_sleep=<hack>model jest wymieniony dla twojego modelu karty wideo.

Debian Suspend and KMS Wiki Debian sugeruje wyłączenie KMS w przypadku problemu „uszkodzonego wideo przy wznowieniu”. 1

Bardzo częstym problemem występującym po wznowieniu pracy komputera jest uszkodzony obraz wideo (czarny ekran lub brak podświetlenia ekranu LCD). Pierwszym krokiem jest sprawdzenie, czy system nadal działa, co można po prostu zrobić, naciskając przycisk Capslock i sprawdzić, czy dioda LED Capslock zmienia się odpowiednio. Jeśli system nadal działa, w większości przypadków musimy dodać dziwactwo wideo do karty graficznej.

Debian ma teraz domyślnie włączone ustawienie trybu jądra (KMS) dla większości kart graficznych Intel, nVidia i ATI. Ale dziwactwo wideo pm-utils [jeszcze] nie obsługuje KMS. Dlatego w większości przypadków najpierw spróbuj wyłączyć KMS. Szczegółowe kroki dla konkretnej karty wideo można znaleźć na stronie KernelModesetting.

Po wyłączeniu usługi zarządzania kluczami, jeśli wideo po wznowieniu nadal jest uszkodzone, możesz spróbować zawiesić system, używając niektórych dziwactw wideo. Przeczytaj stronę podręczną programu PM-Suspend, aby uzyskać szczegółowe wyjaśnienie wszystkich dostępnych dziwactw i wypróbuj ich kombinacje z wiersza poleceń. Jeśli uda Ci się znaleźć jedną kombinację dziwactw, która działa dla twojego systemu, możesz dodać je do / usr / lib / pm-utils / dziwactwa wideo, aby stały się trwałe. Jednocześnie pomóż zgłosić błąd w pakiecie pm-utils z łatką na temat twoich zmian, aby mógł on skorzystać na masie.

Częstym problemem występującym w aktualizacjach systemów ze starych wersji Debiana jest włączenie quirk-s3-bios zawiesza system podczas zawieszenia. Jeśli twój system zawiesza się podczas zawieszenia, sprawdź dokładnie pm-suspend.log po włączonym debugowaniu i upewnij się, że nie jest używany quirk-s3-bios.

Jeśli uważasz, że jest to związane z Twoim problemem, możesz spróbować wyłączyć KMS zgodnie z sugestią. Informacje na temat karty znajdują się w KernelModesetting - Debian Wiki

Debugowanie Zawieś

Dziennik procesów zawieszenia i wznowienia znajduje się w pliku /var/log/pm-suspend.log. Domyślnie zawiera umiarkowanie pełne informacje. Więcej informacji można włączyć w celu debugowania, wstawiając wiersz eksportu PM_DEBUG = true na początku funkcji pliku / usr / lib / pm-utils / pm-funkcje .

Aby uzyskać więcej informacji, zapoznaj się z informacjami na temat narzędzia do testowania jądra wymienionymi na stronie Suspend - Debian Wiki . Może to pomóc w debugowaniu i izolacji problemu.

Niektóre przykłady i bardziej szczegółowe informacje na temat debugowania, które mogą pomóc w „sterownikach, które nie zawieszają się lub nie wznawiają swoich urządzeń” są dostępne na stronie https://www.kernel.org/doc/Documentation/power/basic-pm-debugging.txt

Więcej pomysłów na debugowanie pm-utilsna pm-utils - ArchWiki i /unix//a/29090/87728

Oto pełna lista parametrów jądra, z których wiele ma związek z acpi i zawieszeniem.

Powodzenia.

iyrin
źródło
Wyświetlanie X nie jest w porządku; wirtualne terminale tekstowe są w porządku
Robert Siemer
Sprawdziłeś /var/log/pm-suspend.log? Czy włączyłeś debugowanie /usr/lib/pm-utils/pm-functionsi po tym sprawdziłeś?
iyrin
Możesz przetestować zawieszenie za pomocą dziwactw z terminala za pomocą pm-suspend --quirk-s3-bios --quirk-s3-mode. Zobacz sekcję opcji w man pm-action.
iyrin
Sprawdziłem /var/log/pm-suspend.log. Nic niezwykłego. Korzystam z KMS. - Obecnie wyłączenie KMS nie jest opcją (sterownik Xorg Intel tego potrzebuje); ta wiki, na którą wskazałeś, była ostatnio aktualizowana 2012.
Robert Siemer
Chcę tylko powiedzieć, że to dmesg | tail -50polecenie może być przydatne do debugowania. Naprawdę odkryłem uszkodzenie małej pamięci związane z zawieszeniem, które udało mi się rozwiązać za pomocą parametrów jądra w Grub memmap=64K$0 memory_corruption_check=0. Wierzę, że powie ci, jeśli wystąpił błąd podczas inicjowania karty graficznej.
iyrin
2

Wygląda na to, że jest to zgłoszony błąd, sprawdź poniższy link.

W przypadku Ubuntu sprawdź ten link

W przypadku Debiana przeczytaj ten inny link, szczególnie Naprawianie uszkodzonego wideo w części wznawiania

Jeśli problem dotyczy konsoli tekstowej: Czy próbowałeś odświeżyć pamięć podręczną czcionek?

fc-cache -f -v

YoMismo
źródło
Nie pomaga ...
Robert Siemer
1
Wygląda na to, że jest to zgłoszony błąd, sprawdź poniższy link. Jeśli Twoja dystrybucja nie jest Ubuntu, błąd może nie być specyficzny dla dystrybucji, ale niektóre biblioteki, które mogą wpływać na inne dystrybucje. Zagłęb się w błąd / s i sprawdź, czy problem został rozwiązany dla Twojej dystrybucji ... bugs.launchpad.net/ubuntu/+source/linux/+bug/659434
YoMismo
Przepraszam, nie widziałem, że twoją dystrybucją jest Debian. Sprawdź następny link: wiki.debian.org/Zawiesz specjalnie część Naprawianie uszkodzonego wideo w części wznawiania .
YoMismo,
Mam Ubuntu 14.04.
Robert Siemer,
OK, pytanie brzmiało: „Używam Debiana 6.” przed pierwszym zrzutem ekranu. Myślę, że znajdziesz odpowiedź w błędach startera ... W każdym razie Ubuntu opiera się na Debianie, więc może rozwiązanie z linku Debiana może ci pomóc.
YoMismo,
0

Jest to prawie na pewno dlatego, że sterownik karty graficznej zawiera błędy w urządzeniu wyświetlającym. Prawdopodobnie nie będzie miało to większego znaczenia, ponieważ tak czy inaczej nie jest to coś, co prawdopodobnie można naprawić. Ale powinieneś zgłosić błąd dotyczący sterownika jądra dla urządzenia (gdy się zorientujesz, co to jest ( lspcimoże pomóc tutaj)).

Coś, co możesz spróbować w ramach obejścia: wychodząc ze stanu hibernacji, naciśnij klawisz „ctrl-alt-F4”, aby przełączyć się na inny terminal wirtualny, a następnie przełącz się z powrotem (prawdopodobnie jest to ctrl-alt-F1 lub ctrl- alt-F7 lub może F8). Może to zrobić wystarczająco odświeżenia ekranu, aby przywrócić wyświetlanie. Może.

Wes Hardaker
źródło
próbowałem ctrl-alt-F1, to nie działało.
ctrl-alt-delor
0

Ctrl + Alt + F1… nie działa

Cóż… następnie spróbuj wydać sudo chvt 1, a następnie przełącz się z powrotem na vty Xorga za pomocą Ctrl_Alt_Fn lub sudo chvt N(gdzie N to zwykle 7 lub 8). Na wypadek, chvtgdyby zadziałało, możesz nawet spróbować go napisać.

poige
źródło
przepraszam nie było jasne ctrl + alt + f1 działa. To rozwiązanie ctrl + alt + f1 nie. Mogę przełączać wirtualne terminale, ale to nie naprawia uszkodzenia. Dzięki.
ctrl-alt-delor
0

Spróbuj xrandrobrócić lub odwrócić ekran za pomocą , np. Do góry nogami, a następnie wrócić do normy. Może to wystarczyć, aby w pełni przerysować.

9000
źródło
-1

Spróbuj Crtlalt-więc Crtlalt+. To zmienia rozdzielczość ekranu tam iz powrotem.

Nils
źródło
nic. Być może klucze nie są związane.
ctrl-alt-delor