Wie kann ich ein Suspend-to-RAM-Problem unter Linux debuggen?


15

Ich hoffe, erfahrungsbasierte Vorschläge zum Debuggen von Suspend-to-RAM-Problemen zu erhalten. Ratschläge, die für meine Situation spezifisch sind (siehe unten), wären großartig, aber ich bin auch an allgemeinen Ratschlägen zum Debuggen solcher Probleme interessiert.

Das Problem:

Wenn ich versuche, meinen Computer anzuhalten, bleibt er häufig in einem Zustand "nicht angehalten, aber nicht wach" hängen. Oft ist der Bildschirm komplett schwarz, aber manchmal wird die folgende Fehlermeldung angezeigt:

GLib-WARNING **: getpwuid_r(): failed due to unknown user id (0) 

Dieser Zustand wird auch von den Fans begleitet, die einen hohen Gang einlegen. Die einzige Möglichkeit, diesen Zustand zu beenden, besteht darin, den Laptop manuell auszuschalten.

Einige Informationen

$ uname -a
Linux baltar 2.6.35-22-generic #34-Ubuntu SMP Sun Oct 10 09:26:05 UTC 2010 x86_64 GNU/Linux

$ lsb_release -a
Distributor ID:    Ubuntu
Description:    Ubuntu 10.10
Release:    10.10
Codename:    maverick

Ich habe mir /var/log/dmesgund angesehen /var/log/pm-suspend.log, aber ich weiß nicht, wonach ich suche, und nichts fällt auf. Ich bin mir nicht sicher, ob es verwandt ist, aber ich habe eine Menge der folgenden in gefunden /var/log/kern.log:

EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro,commit=600

1
Wenn Sie glauben, dass Sie von dem spezifischen Fehler gebissen werden, den ich hier erwähne, posten Sie bitte keine "Ich auch" -Antwort - da dies wirklich keine Antwort ist. Fühlen Sie sich frei, diese Frage zu beantworten, um andere zu ermutigen, darauf zu antworten. Am Ende würde eine gute Antwort nicht nur Ratschläge zur Lösung dieses speziellen Problems geben, sondern auch Ratschläge zum Debuggen dieser Art von Problemen.
Steven D

Gelöscht nach Klarstellung in der Teachers 'Lounge. Die einzigen potenziell wertvollen Informationen No LSB modules are available.werden direkt danach angezeigt lsb_release -a.
Maciej Piechotka

Ich habe eine "Für mich gearbeitet" -Antwort markiert, aber ich denke immer noch, dass eine allgemeinere "Debuggen von Suspend-to-RAM" -Antwort hier wirklich hilfreich wäre.
Steven D

Antworten:



6

PM_DEBUG und PM_TRACE sind anscheinend die tiefsten Debugging-Möglichkeiten, die es derzeit gibt. AFAIK ist der einzige Mechanismus, auf den Sie zurückgreifen können, wenn Sie das gefürchtete Symptom "mysteriöser leerer Bildschirm bei Wiederaufnahme" bemerken. In den meisten Fällen handelt es sich um einen nicht immer funktionierenden Gerätetreiber. Sie können sich auch meine Broadcom brcmsmac Wireless-Treiber-Debugging-Saga unter Kernel-Bug 34682 ansehen, um zu erfahren, was Kernel-Entwickler vorschlagen und suchen.


1

Ich habe den Verdacht, dass das Problem darauf zurückzuführen ist, dass das BIOS nicht korrekt angibt, welches Lowmem es wirklich verwendet.

Standardmäßig ist diese Option aktiviert:

memory_corruption_check_size=64K

Sie können versuchen, diesen Wert auf einen höheren Wert zu setzen, damit der Speicherbeschädigungsscanner einen größeren Teil des LowMem untersucht.

Suchen Sie in nach "memory_corruption_check_size"

etc.

Ich würde gerne wissen, was Sie finden, wenn überhaupt.


0

Meine Erfahrung in diesem Bereich war eher in Windows CE als in Linux.

Während des Unterbrechungs- / Wiederaufnahmezyklus wird das Betriebssystem schrittweise heruntergefahren, wodurch Ihre Fähigkeit eingeschränkt wird, genaue und zuverlässige Informationen darüber zu erhalten, was mit der Betriebssystemfunktionalität geschieht. Darüber hinaus kann Ihre Überwachungsverbindung (z. B. wenn das Problem zeitabhängig ist) das Ergebnis verändern.

Bevorzugte Tools beginnen mit einer C / C ++ - Debugger-Verbindung zum Betriebssystem am oberen Ende und senden Daten am unteren Ende über eine serielle Schnittstelle / POST-Codes oder auf JTAG-Debugger oder Äquivalenten anderer Hardware als X86. Das Endergebnis sind lange Stunden, in denen der Codefluss berechnet und der Punkt ermittelt wird, an dem er sich anders als normal verhält. An diesem Punkt ist die Korrektur normalerweise offensichtlich. Machen Sie sich gute Notizen und nehmen Sie jeweils eine Änderung vor.

Es dauerte 6 Wochen, um das Startproblem mit Windows CE zu identifizieren. Wir hatten eine PC104-Prozessorkarte, die wir für 10 oder 60 Sekunden ausschalten und ohne Probleme einschalten konnten. Wenn die Stromversorgung jedoch für 25 Sekunden unterbrochen wird, wird sie nicht eingeschaltet. Es stellte sich heraus, dass wir über genügend Kapazität verfügten, um den DRAM-Inhalt etwa 20 Sekunden lang ohne Strom zu versorgen. Nach einem kurzen Ausschaltzyklus war Windows CE der Ansicht, dass er aus einem angehaltenen Zustand wiederhergestellt wurde. Wenn der gesamte Speicher erhalten bleibt, ist es tatsächlich gelungen, einen Lebenslauf durchzuführen. Wenn der Speicher teilweise beschädigt ist, wird er während des Lebenslaufs ziemlich verwirrt.

Viel Glück.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.