Nach systemctl hibernate ist der Rechner aus! Ich kann die Steckdosenleiste, die den Rechner mit Strom versorgt ausmachen - der Rechner hat also keinen Strom mehr. Wenn ich den danach wieder anstelle, sind alle Programme und Fenster so geöffnet wie zum Zeitpunkt von systemctl hibernate
Also scheint suspend to disk zu funktionieren.
Schön, da sind wir uns einig. Ja, es funktioniert nicht. Er geht aus und sofort wieder an!
s2idle ist ein rein softwaremäßiger Bereitschaftsmodus. Bedeutet, es setzt alles in low-power Mode. Wenn von einem Gerät verweigert → Fehler.
Wenn du den üblichen S3 Modus verwendest, dann wäre das BIOS/UEFI unterstützt. Beispiel:
kernel: ACPI: PM: Preparing to enter system sleep state S3
kernel: ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
kernel: ACPI: PM: Saving platform NVS memory
Da i2idle verwendest wird, hat Linux keinen S3 Modus erkannt und vermutlich hast du auch keinen. S4 (Suspend-to-disk) scheint bei dir im BIOS/UEFI aktiviert zu sein, deswegen funktioniert es, aber das ist nur eine Vermutung. Wenn den PC sich einfach ausschaltet, dann würde ich eher von vom Softwaremodus swsusp ausgehen und nicht BIOS/UEFI Modus S4.
Ich hab jetzt im BIOS nach einer Option für S3/S5 gesucht, aber nicht wirklich was gefunden. Entweder es ist gut versteckt, oder im BIOS kann da nichts eingestellt werden.
Normalerweise in etwa unter: Advanced → ACPI Settings → ACPI Sleep State
Auf jeden Fall ist das größtenteils ein UEFI Problem.
Falls aktiviert, könnte es auch sein, dass Linux in den ACPI Tables dafür nicht erwähnt wurde. Daher könnte man auch die OSI ändern, um dem UEFI ein Windows vorzugaukeln:
Ich würde mich schon schwer wundern, dass kein S3 oder S4 auf so einem Mainboard vorhanden ist, aber könnte von der Initative vn Windows entfernt/deaktivert worden sein? Kein Ahnung.
Ich persönlich mag das nicht, da es im S0 Modus verbleibt und alles software basierend ist. Man versucht den “Smartphone-Standby” auf den Desktop zu etablieren. Das ist auch in etwa s2idle, aber mit S0 und man fährt zb. die cstates (cpu) runter.
Also, ich hab jetzt noch ein bisschen gelesen. Und Weingeist hatte vor einiger Zeit auch mal Probleme mit einem Laptop und Energissparmodus.
Da hat er was von Kernelversionen geschrieben. Ich bin ja auf einem Kernel 5.15.84 unterwegs. Also hab ich es als erstes mit einem 6er Kernel versucht. Gleiches Problem. Dann bin ich auf den Kernel 5.10.161 zurück. Und siehe da, es klappt. Der Rechner geht nach 5 Minuten aus.
ABER: Ich habe eine Master/Slave Steckdosenleiste. Wenn der Master wenig Strom verbraucht, werden die SLAVE ausgeschaltet. Das passiert auch. Allerdings kann ich den Rechner mit einem Tastendruck an der Funktastatur wieder hochfahren - innerhalb weniger Sekunden ist das Bild wieder da. Das geht mir fast zu schnell. Ich gehe also davon aus, das der Rechner zwar so wenig Strom verbraucht, das die SLAVE alle ausgeschaltet werden, aber er immer noch nicht in den S3 oder S4 geht, sondern wohl eher im S0 bzw. S1 landet. Praktisch ist es ja, aber n icht dass was ich will.
Wenn ich das richtig verstehe, ist mein System der Meinung, das es S3 und auch S4 kann (Ausgabe mit dem Kernel 5.10):
$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/mem_sleep
s2idle [deep]
Das bestätigt erstmal die Aussage von @megavolt das es hier um Energiesparen in Software geht (s2idle) - aber eigentlich müsste auch deep (richtiges suspend to ram) gehen. Sonst würde es nicht in der Ausgabe auftauchen. Das wäre ja mal ein Anfang. Allerdings hilft der Kernelparameter mem_sleep_default=deep nicht weiter. Ich hab das in /etc/default/grub eingetragen und grub-update gemacht. Es ändert sich aber nichts am Verhalten.
Ich habe Gigabyte nach ACPI im BIOS gefragt. In meiner ersten Frage wurde darauf verwiesen, das Linux nicht unterstützt wird. Ich habe dann noch mal nachgehakt. Hier die Antwort:
Außerdem wäre ein journal hilfreich, falls dort UEFI Bugs gemeldetet werden.
journalctl --boot -1 > journal.log
Gruß
EDIT: Das wäre auch hilfreich:
cat /proc/acpi/wakeup
In jedem Fall würde ich behaupten, dass das UEFI mit Windows getestet wurde und manchaml mit einer sehr speziellen Windows Version. Hintergründe zu dem ganzen kann man hier lesen: ACPI _OSI and _REV methods — The Linux Kernel documentation Man müsste wirklich jede mögliche Windows Version testen, wie oben beschrieben.
Hmm, mir ist gerade was aufgefallen. Die letzten Tage bin ich kaum am Rechner gewesen und hab ihn auch nicht laufen lassen. Heute war ich kurz weg und wurde aufgehalten. Als ich wieder kam, war er aus und ich konnte ihn per Tastatur wieder starten. Er war sofort wieder da - also wohl eher Suspend to RAM.
Ich hatte als letztes im BIOS die Option ErP deaktiviert (keine Ahnung was das genau ist - im Handbuch steht keine Erklärung - hat aber wohl was mit Energie zu tun … aber eigentlich gehts da um S5). Außerdem hatte ich den Kernel von 5.15 auf 5.10 wieder zurückgedreht. Beides habe ich nun wieder geändert und die beiden Dateien neu erstellt. ALLERDINGS: Es bleibt dabei. Nach 5 Minuten geht der Rechner aus und ich kann ihn per druck auf die Tastatur wecken.