Fehlersuche in ACPI Suspend

aus openSUSE, der freien Wissensdatenbank

Fehler melden: Häufig gestellte Fragen - Informationen für Tester - Der GNU Debugger - Die gröbsten Fehler - Novells Bugzilla


Dieser Artikel beschäftigt sich mit der "Hardcore"-Fehlersuche in ACPI Suspend (Suspend to Disk und RAM)

Seit SUSE Linux 9.3 sollte Suspend to Disk auf den meisten Maschinen ohne größere Probleme funktionieren. Bekannte Probleme sind SATA- und SCSI-Festplatten und proprietäre X-Treiber, besonders AMD/ATIs fglrx.

SATA-Festplatten sollten seit openSUSE 10.2 keine Probleme mehr machen.

Die genannten Tipps sind im allgemeinen auch für Suspend to Disk gültig, auch wenn sie dort hoffentlich nicht benötigt werden sollten. :-)

Suspend to RAM ist etwas schwieriger einzurichten. Obwohl es auf vielen Notebooks (und auch einigen Desktops) läuft, macht es das oft nicht direkt nach der Installation. Das Hauptproblem auf vielen Maschinen, auf denen es prinzipiell funktioniert, ist die Grafikkarte, die während des Aufwachens nicht richtig reinitialisiert wird, was oftmals heißt, dass die Hintergrundbeleuchtung des Notebook-Bildschirms ausgeschaltet bleibt. Viele Hinweise dazu, was getan werden kann, finden sich im Artikel über s2ram. S2ram ist ein Programm, dass die meisten der bekannten Lösungen zum Einschalten des Lichts nach dem Aufwecken implementiert. Es befindet sich im Paket suspend. Zusätzliche Informationen finden Sie in der Kernel-Dokumentation (Paket "kernel-source") in der Datei /usr/src/linux/Documentation/power/video.txt.

Für die ersten Tests mit Suspend to RAM ist es (vor allem, wenn es nicht sofort nach der Installation funktioniert) sinnvoll, mit einem Minimalsystem zu starten, und sich dann Schritt für Schritt zu einem voll funktionsfähigem System durchzuarbeiten. Dieses Minimalsystem wird hier beschrieben.

Um den Parameter vga=... komfortabel an der GRUB-Eingabeaufforderung bearbeiten zu können (der Kernel erkennt nur das erste vga-Schlüsselwort), ist es am besten, diese Parameter in der /boot/grub/menu.lst nach dem Schlüsselwort "showopts" einzutragen, so dass Sie ihn bei jedem Systemstart sehen und bearbeiten können.

Ein solcher Eintrag könnte so aussehen (Beispiel):

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
    kernel (hd0,4)/vmlinuz root=/dev/hda7 selinux=0 splash=silent sysrq=yes resume=/dev/hda6 showopts vga=0x342 
    initrd (hd0,4)/initrd

Um mit einer Minimalkonfiguration zu testen, fügen Sie der GRUB-Kommandozeile beim Systemstart "init=/bin/bash" hinzu (ohne Anführungsstriche). Der Kernel bootet nun direkt in eine Shell, ohne die Systemstartskripte zu durchlaufen. Nun können wir versuchen, eine Suspendierung "von Hand" auszulösen:

# binden Sie /proc und /sys ein:
mount /proc
mount /sys
# für Suspend to Disk aktivieren Sie hiern nun swap. Das ist für Suspend to RAM nicht nötig:
# swapon -a
# lösen Sie Suspend to RAM aus ("disk" an Stelle von "mem" für Suspend to Disk):
echo mem > /sys/power/state

Die Maschine sollte nun suspendieren (normalerweise blinkt eine LED). Wecken Sie sie (abhängig vom Gerät) mit dem Power-Knopf, den Schließen/Öffnen des Deckels oder durch Drücken der Fn-Taste auf (die Power-LED geht wieder an). Die Festplatten-LED blinkt vielleicht kurz, sollte dann aber wieder aus gehen. Wenn der Bildschirm aktiv ist und der vorherige Inhalt sichtbar ist, ist das Experiment vorbei: es funktioniert. Falls der Bildschirm dunkel bleibt, mach wir hier weiter.

Prüfen Sie zuerst, ob "nur" der Bildschirm dunkel bleibt, oder ob die Maschine komplett tot ist. Geben Sie blind

find /

ein. Falls die Festplatten-LED nun blinkt, scheint der Rest des Systems zu funktionieren. Dieser find-Befehl kann mit init=/bin/bash nicht unterbrochen werden, Sie müssen die Maschine ausschalten, oder den Reset-Knopf drücken.

Wenn bis hier alles funktioniert, machen Sie mit den Hinweisen weiter, die der Artikel zu S2ram bereithält. Wenn Sie erfolgreich sind, dann berichten Sie uns bitte davon, so dass wir ihr Gerät der Weißliste hinzufügen können.