On Sun, Feb 20, 2005 at 05:55:54PM +0100, matthias boots wrote:
Habe ich probiert, übrigens, nachdem der Tipp von Stefan mit dem Neuladen des button-Moduls nicht geholfen hatte. Im Log sieht das dann immer so aus:
ok.
Habe dann mal etwas experimentiert, auch mit zwischenzeitlichem Restart von acpi; wobei sich zeigte, daß man besser den powersaved gleich mit restartet, weil der sich sonst bei einem reinen "acpid restart" die gesamte CPU krallt, aber das nur am Rande. Jedenfalls wurde dabei offenbar acpid im Debug-Modus gestartet, und das sah dann so aus:
nein, der acpid wird vom powersave-startskript mit anderen optionen gestartet => so konnte es nicht funktionieren. Was du mal probieren kannst: - rcpowersaved stop - tail -f /proc/acpi/event jetzt zu- und aufklappen und schauen ob sowohl beim zu- als auch beim aufklappen ein event generiert wird. Wenn nicht => BIOS ist schuld (wahrscheinlich). Wenn ja: - POWERSAVED_START_ACPID=no in /etc/sysconfig/powersave/common - rcpowersaved start - nochmals probieren.
Interesssant ist: der acpid interpretiert die LID-Events immer abwechselnd als "CLOSE" und "OPEN", scheinbar ganz automatisch. Das erste Event ist für ihn ein CLOSE, und hibernate funktioniert. Der Laptop fährt runter. Dann mache ich das Display wieder auf, aber der Rechner ist aus, deshalb bemerkt der acpid das nicht. Das nächste LID-Event, also das nächste Zuklappen, kann für acpid - logisch - nur ein OPEN sein. Laut /etc/sysconfig/powersave/events sorgt das für ein "switch_vt", was immer das sein mag, er wird es schon tun, aber er macht eben kein hibernate. Das macht er dann beim nächsten LID-Event, das, weil der Rechner - mit zugeklapptem Display - noch läuft, beim Öffnen des Deckels nun als CLOSE interpretiert wird.
Das wird auch nicht besser durch "rcpowersaved restart".
das deutet auf ein BIOS-Problem hin, der acpid/powersaved müßte beim Neustart "vergessen", wie sein Status war.
Gelöst - nicht wirklich - habe ich das Problem jetzt so in /etc/sysconfig/powersave/events:
--- schnipp --- POWERSAVE_EVENT_BUTTON_POWER="wm_shutdown" POWERSAVE_EVENT_BUTTON_SLEEP="suspend_to_disk" # POWERSAVE_EVENT_BUTTON_LID_OPEN="switch_vt" POWERSAVE_EVENT_BUTTON_LID_OPEN="suspend_to_disk" POWERSAVE_EVENT_BUTTON_LID_CLOSED="suspend_to_disk" --- schnapp ---
Das heißt, auch beim LID_OPEN wird jetzt ein hibernate eingeleitet. Funktioniert bestens. Für eine saubere Lösung bin ich aber immer gern zu haben.
Ich unterstelle dem acpid mal genau wie dem powersaved, daß er tut, was er kann, und daß es am BIOS liegt, was meint Ihr?
Vermutlich. Es könnte aber auch eine unglückliche interaktion von powersaved und acpid sein. Darum - wie oben beschrieben - mal ohne acpid probieren. Der acpid als "proxy" wurde sowieso nur eingebaut, weil manche Software (irgendein gnome-applet wenn ich mich recht erinnere) diesen acpid-socket benötigt und es blödsinnig gewesen wäre, den im powersaved nochmals zu implementieren.
Und noch eine kleine Zugabe: der Power-Button. Funktioniert immer, solange ich kein hibernate gemacht habe. Sobald ich einmal - per Knopf oder auch softwaremäßig mit "powersave -U" - hibernate benutzt habe, sieht man vom Power-Button nichts mehr in /var/log/acpid. Und dafür fehlt mir jetzt sogar die First-Level-Erklärung...
rmmod button; modprobe button oder / und POWERSAVE_SUSPEND2DISK_SHUTDOWN_MODE="platform" in /etc/sysconfig/powersave/sleep? Könnte jeweils helfen, muß aber nicht. Es kommt/kam öfters vor, daß ACPI-buttons nach dem suspend to disk nicht mehr funktionieren. Üblicherweise reicht es, das button-modul neu zu laden oder den shutdown_mode auf platform zu stellen (das kann aber in seltenen Fälle auch dazu führen, daß der suspend garnicht mehr geht :-( ) -- Stefan Seyfried