Software Suspend / Hibernation #

Unter "Software-Suspend" (bzw. "Hibernation") versteht man, daß der Rechner in den stromsparenden "Sleep-Modus" versetzt wird bzw. der Systemzustand auf die Festplatte geschrieben wird, um danach beim Hochfahren schnell wieder da zu sein, wo man stehengeblieben ist.

Bisher war es bei mir immer so, daß diese Funktion auf einigen Rechnern offensichtlich funktionierte und auf den meisten leider nicht. Suspend ging dabei im Grunde auf jedem Rechner - nur aufgewacht sind die Dinger nicht mehr...

Wie läuft das ab? #

Bei der Einrichtung meines neuen Notebooks, auf dem es wieder nicht ging, habe ich mich nun ein bisschen in die Architektur eingearbeitet. Ich hoffe, diese Erklärung hilft dem nächsten, seine Probleme etwas schneller zu lösen. Der Ablauf, wenn der Benutzer die Sleep-Taste drückt, ist der folgende:

Das ACPI-System in Form des Programms acpid läuft permanent und wartet auf ACPI-Meldungen vom BIOS. Dieses kann in /etc/acpi/... konfiguriert werden. Läuft z.B. ein kpowersave (wie unter KDE üblich), so wird das Event an dieses Programm weitergereicht. Dieses Programm ist auch dafür zuständig, wenn der Benutzer über die KDE-Oberfläche ein Suspend veranlasst. Dort kann man angenehm konfigurieren, wann welche Art von Suspend durchgeführt wird (z.B. nach einer bestimmten Zeit ohne Benutzeraktivität, bei einem bestimmten Batteriestand oder beim Schliessen des Laptop-Deckels).

Eine Weile habe ich gesucht, woher kpowersave denn nun weiss, wie es denn Rechner herunterfahren soll. Dazu gibt es das Paket hibernate. Dieses bietet in /etc/hibernate/... eine ganze Menge Skripte, die recht intelligent Einstellungen zur Art des Suspend und zum verwendeten Programm erlauben. Es gibt nämlich offensichtlich viele verschiedene Möglichkeiten, ein Suspend durchzuführen. Insbesondere die Art und Weise, wie Daten von Hardeware-Geräten und dabei ganz speziell der Grafikkarte gespeichert werden muss, ist nämlich nicht einheitlich.

Einstellungen ausprobieren #

Von den verschiedenen Programmen, mit denen man ein Suspend durchführen kann, habe ich mir das Paket uswsusp angesehen. Auf der Seite http://en.opensuse.org/S2ram ist hierzu eine Menge sehr hilfreiches Zeug erklärt. Insbesondere steht dort eine kleine Liste mit möglichen Parametern, die man am besten erstmal solange durchprobiert, bis das Suspend funktioniert. Das sollte man wie dort beschrieben zuerst auf der Konsole und dann unter X probieren. Bei mir klappte es schliesslich beim vierten Versuch mit "-f -p -m". Schönes Gefühl. :-)

Wer einen Sinn fürs Gemeinwohl hat (und haben wir Linuxer das nicht alle) sollte seine gefundene Einstellung wie auf der Webseite beschrieben an das Projekt schicken, damit andere auch was davon haben.

Konfigurationsdateien anpassen #

Nun muss man die Erkenntnis, die man dabei gewonnen hat, in die entsprechenden Hibernate Konfigurationsdateien einarbeiten. Dazu habe ich in der Datei /etc/hibernate/ususpend-ram.conf folgende Einträge angepasst:

  USuspendMethod both
  USuspendRamForce yes
  USuspendRamVbeMode yes
  USuspendRamVbePost yes

Und damit ging es dann! :-) Viel Spaß beim Selberbasteln! -- ThomasBayen

Tips & Tricks #

Stellt man in o.g. Datei noch folgendes:

  USuspendMethod both

ein, so wird unmittelbar vor dem "Suspend to RAM" zusätzlich ein "Suspend to Disk" durchgeführt. D.h. man kann seinen Laptop zuklappen und vergessen. Hat man noch Strom, wenn man ihn wieder benötigt, ist er (aus dem RAM) sofort wieder da. Ist der Strom inzwischen ausgegangen, so steckt man das Gerät in die Steckdose, startet ihn ganz normal und automatisch wird der Stand des Systems von der Platte geladen. -- ThomasBayen


Tags:  Notebook

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-1) was last changed on 02-Oct-2008 19:39 by ThomasBayen