PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suspend to RAM - Laptop wacht nicht korrekt auf falls Modul 'button' entladen wurde



-hanky-
15.07.06, 13:01
Hi,

ich habe mich nach langer Zeit und einem c't-Artikel in der aktuellen Ausgabe mal wieder mit meinem Laptop und dem leidigen Thema "Suspend to RAM" auseinandergesetzt. Mittlerweile bin ich soweit, dass ich den Laptop dank 's2ram' in den Ruhezustand versetzen und auch wieder aufwecken kann.

Allerdings stehe ich nun vor einem, in der c't bereits erwähnten, Problem. Sobald der Laptop aufwacht erhält der ACPI-Handler einen Hinweis, dass der Power-Button gedrückt wurde und führt dann die unter /etc/acpi/acpi_handler.sh definierte Aktion aus ( per default hier ein /sbin/init 0, d.h. ein Shutdown ). In meinem Fall ist das ein Suspend to Disk - nicht unbedingt Sinn der Sache ;)

Aus diesem Grund habe ich einen neuen Kernel erstellt, der den ACPI-Button nur als Modul bereitstellt, welches ich - soweit die Theorie - kurz vor dem "Schlafengehen" des Laptops entlade und direkt nach dem Aufwachen wieder einbinde.

In der Praxis jedoch wacht der Laptop nicht mehr korrekt auf, sobald ich dies ausführe - lasse ich das Modul dauerhaft geladen, funktioniert alles einwandfrei, es muss also direkt damit zusammenhängen. Das Problem liegt beim Entladen und nicht beim erneuten Laden ( habe ich überprüft ). Der Entladezeitpunkt ist direkt bevor ich den Laptop schlafen schicke, später geht nicht; ich hatte das Modul zuvor direkt zu Beginn entladen, gleicher Effekt.

Ich behelfe mir momentan damit, dass ich beim Aufruf des suspend2ram-Skripts unter /var/lock eine suspend.ram-Datei erstelle und deren Existenz in meinem suspend2disk-Skript abprüfe. Existiert die Datei, so ist der Laptop kurz zuvor aus dem Suspend 2 RAM erwacht und das Skript bricht ab, andernfalls wird es ausgeführt.

Allerdings betrachte ich das eher als Notlösung denn als sinnvolle Vorgehensweise.

Deshalb die Frage - habe ich irgendetwas übersehen? Muss ich mit dem Button eventuell noch andere ACPI-Module entladen ( momentan ist nur der Button als Modul eingebunden, der Rest ist noch fest im Kernel )?

-hanky-

edit: Zum besseren Verständnis hier mal mein suspend2ram-Skript:



#!/bin/sh

####################
# changing to vt8 #
# removing modules #
####################

chvt 8

touch /var/lock/suspend.ram
rmmod ipw2100
rmmod ehci-hcd
rmmod uhci-hcd
######################
# syncing filesystem #
# suspending... #
######################

sync

sleep 1
logger "Suspending to Ram..."
/usr/bin/s2ram -f -a 2 -s
sleep 2

#######################
# waking up #
# setting resolution #
# enabling xlock #
#######################
#/sbin/modprobe button

hwclock --hctosys

/usr/sbin/855resolution 3c 1400 1050 >/dev/null

#su -c "xscreensaver-command -lock" hanky

modprobe uhci_hcd
modprobe ehci_hcd
#modprobe button
rm /var/lock/suspend.ram
chvt 7


Das suspend2disk-Skript prüft per



if [ -f /var/lock/suspend.ram ]; then
exit 1;
fi
[...]


direkt nach dem Aufruf ab ob der Laptop erst "erwacht" ist und bricht ggf. ab. Wie gesagt, damit funktioniert es, ich halte es aber für "unschön" zumal laut Internet & c't-Artikel das entfernen und neu laden des Button-Moduls funktionieren sollte.