Am Freitag, 18. Februar 2005 09:24 schrieb Eckhard Rüggeberg:
Ok: hat jemand 'ne gute Idee, wie ich da den richtigen Rhythmus reinkriege? Oder zum Beispiel einen Tip, wie ich möglicher Weise ACPI nach dem Resume - gefahrlos - so resetten kann, daß der nächste suspend schon beim Zuklappen funktioniert?
Versuch doch mal herauszubekommen, woran das liegt. Z.B. indem Du bei den diversen Auf- und Zuklappungen und Tastendrücken in einer Shell ein "tail -f /var/log/acpid" mitlaufen läßt. Da werden glaube ich die Events protokolliert...
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: --- schnipp --- [Sun Feb 20 14:41:37 2005] starting up [Sun Feb 20 14:41:37 2005] 0 rules loaded [Sun Feb 20 14:41:37 2005] client connected from 5602[0:0] [Sun Feb 20 14:41:37 2005] 1 client rule loaded # erstes Zuklappen, hibernate funktioniert [Sun Feb 20 14:42:50 2005] received event "button/lid LID 00000080 00000007" [Sun Feb 20 14:42:50 2005] notifying client 5602[0:0] [Sun Feb 20 14:42:50 2005] completed event "button/lid LID 00000080 00000007" # zweites Zuklappen, nichts passiert (siehe auch Timestamps) [Sun Feb 20 14:45:25 2005] received event "button/lid LID 00000080 00000008" [Sun Feb 20 14:45:25 2005] notifying client 5602[0:0] [Sun Feb 20 14:45:25 2005] completed event "button/lid LID 00000080 00000008" # drittes Zuklappen, hibernate funktioniert wieder [Sun Feb 20 14:45:40 2005] received event "button/lid LID 00000080 00000009" [Sun Feb 20 14:45:40 2005] notifying client 5602[0:0] [Sun Feb 20 14:45:40 2005] completed event "button/lid LID 00000080 00000009" # und so weiter... [Sun Feb 20 15:05:42 2005] received event "button/lid LID 00000080 0000000a" [Sun Feb 20 15:05:42 2005] notifying client 5602[0:0] [Sun Feb 20 15:05:42 2005] completed event "button/lid LID 00000080 0000000a" [Sun Feb 20 15:05:54 2005] received event "button/lid LID 00000080 0000000b" [Sun Feb 20 15:05:54 2005] notifying client 5602[0:0] [Sun Feb 20 15:05:54 2005] completed event "button/lid LID 00000080 0000000b" --- schnapp --- 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: --- schnipp --- [Sun Feb 20 15:52:10 2005] starting up [Sun Feb 20 15:52:10 2005] 1 rule loaded [Sun Feb 20 15:52:22 2005] received event "button/lid LID 00000080 0000000e" [Sun Feb 20 15:52:22 2005] executing action "/usr/sbin/acpid_proxy button/lid LID 00000080 0000000e" [Sun Feb 20 15:52:22 2005] BEGIN HANDLER MESSAGES execute action dethrottle for event button/lid LID 00000080 0000000e OPEN cat: /proc/sys/vm/bdflush: No such file or directory /usr/sbin/acpid_proxy: line 145: /proc/sys/vm/bdflush: No such file or directory Setting /proc/sys/vm/bdflush to 0 0 0 /usr/sbin/acpid_proxy: line 171: /proc/sys/vm/bdflush: No such file or directory Action dethrottle for event button/lid LID 00000080 0000000e OPEN returned an error [Sun Feb 20 15:52:23 2005] END HANDLER MESSAGES [Sun Feb 20 15:52:23 2005] action exited with status 0 [Sun Feb 20 15:52:23 2005] completed event "button/lid LID 00000080 0000000e" [Sun Feb 20 15:52:36 2005] received event "button/lid LID 00000080 0000000f" [Sun Feb 20 15:52:36 2005] executing action "/usr/sbin/acpid_proxy button/lid LID 00000080 0000000f" [Sun Feb 20 15:52:36 2005] BEGIN HANDLER MESSAGES execute action ignore for event button/lid LID 00000080 0000000f CLOSE [Sun Feb 20 15:52:36 2005] END HANDLER MESSAGES [Sun Feb 20 15:52:36 2005] action exited with status 0 [Sun Feb 20 15:52:36 2005] completed event "button/lid LID 00000080 0000000f" --- schnapp --- Die "action"s sind nicht korrekt, weil ich ein "rcacpid restart" gemacht habe. Dann wird die Konfiguration aus /etc/sysconfig/powermanagement gelesen, beim normalen Start über "rcpowersaved" wird /etc/sysconfig/powersave benutzt. Aber das ist nicht so wichtig. 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". 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? 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... mb