Nachdem ich’s nun endlich hinbekommen habe suspend-to-ram mit dem TuxOnIce Kernel und dem hibernate script auf meinem Acer Aspire 5100 stabil zum laufen zu bringen hatte ich nur noch ein letztes Problem:
Der acpid muss nach dem Aufwachen neu gestartet werden, da er sonst keine Events mehr wahrnimmt und man somit nicht bequem erneut bequem per Tastendruck schlafen gehen kann.
Sollte ja eigentlich kein Problem sein … sollte …
Das hibernate script bietet zwar Optionen zum Starten und Stoppen von Diensten an, diese funktionieren leider interessanterweise nicht korrekt mit dem acpid.
Beim Stoppen hängt das Script eine Weile bis der Timeout zuschlägt und ein fehlerhaftes Stoppen des Dienstes meldet. Beim Resume empfängt einen dann die Meldung, die besagt der ACPI Dienst liefe bereits – aha … mmh – soweit so gut
acer ~ # /etc/init.d/acpid start * WARNING: acpid has already been started.
Ok, sieht ja ganz gut aus, aaaber trotzdem läuft er nicht >.<
Also nochmal nachhaken:
acer ~ # /etc/init.d/acpid status * Status: stopped acer ~ # /etc/init.d/acpid start * Starting acpid ... [ ok ]
jetzt wird ein korrekter Start gemeldet und alles läuft – WTF???
Leider bin ich auch nach einigem Hin und Her zu keiner besseren Lösung gekommen als den Aufruf zum Starten/Stoppen der Dienste in /usr/share/hibernate/scriptlets.d/services anzupassen.
Und zwar wie folgt:
acer ~ # diff -ru services.old services --- services.old 2008-07-19 20:43:25.000000000 +0200 +++ services 2008-07-19 20:42:59.000000000 +0200 @@ -108,14 +108,14 @@ service="$1" action="$2" [ -x "$INITDIR/$service" ] || return 100 - cmd="$INITDIR/$service $action" + cmd="$INITDIR/$service" if [ "$action" = "start" ] ; then tmp=`echo $INITDIR/../rc${SERVICES_RUNLEVEL}.d/K??$service` [ -x "$tmp" ] && return 101 fi vecho 2 "Executing $cmd" - - $cmd + #$cmd $action 1>/dev/null 2>&1 + /sbin/start-stop-daemon -$action --exec $cmd } fi return 0
Achtung: Diese Lösung stellt lediglich einen Hack für Gentoo (und evtl Debian) dar und wurde auch nur mit dem acpid getestet!
Falls jemand das gleiche Problem, aber eine andere/bessere Lösung oder mehr Infos dazu hat so wäre ein Kommentar dazu sehr nett.
So long…
