Kubuntu 20.04 auf dem Macbook Air lässt sich problemlos in den Ruhezustand versetzen, braucht aber jedes Mal zu lange zum Aufwachen, etwa 20 Sekunden.
Es scheint sich um einen normalen Ruhezustand bzw. Energiesparmodus und nicht um einen Fall von Hibernation zu handeln, da dies systemctl suspend
dasselbe Verhalten auslöst.
laufen, aufwachen und dann laufen
journalctl -b --since "1min ago"
Ich bekommeDas(auf Pastebin). Dort wird der Ruhezustand nicht erwähnt.
Was Speicher und Swap betrifft, denke ich, dass genügend RAM vorhanden ist:
~$ free -h
total used free shared buff/cache available
Mem: 3,8Gi 703Mi 1,7Gi 162Mi 1,4Gi 2,7Gi
Swap: 2,0Gi 440Mi 1,6Gi
Antwort1
Kurze Antwort:
Im Jahr 22.04:
echo deep | sudo tee -a /sys/power/mem_sleep
Wenn das oben genannte in 22.04 nicht funktioniert oder wenn dies in 22.10, 23.04 oder höher passiert:
echo s2idle | sudo tee -a /sys/power/mem_sleep
Die Lösung funktioniert möglicherweise nach Kernel-Updates und sogar nach Neustarts nicht mehr.Ein Skript mit dem benötigten Befehl kann beim Neustart ausgeführt werden.
Der erste Teil ist etwas widersprüchlich, denn deep
es sollte immer der lange Weckruf und s2idle
der kurze Weckruf ausgelöst werden, wie gesagtHier. Wahrscheinlich war bei mir in der Version 22.04 irgendwas fehlerhaft, wobei zumindest scheinbar manchmal das Gegenteil der Fall war.
Lange Antwort:
Sehr bald nachdem ich diese Frage gepostet hatte, bin ich auf eine Lösung gestoßen, die zu funktionieren schien: auf UbuntuforumsHier, mit weiteren Ratschlägen als Antwort darauf,Hier.
Ich verstehe nicht wirklich, wie das funktioniert hat, vielleicht liegt ein Fehler vor. In diesem Beitrag heißt es, die Lösung bestehe darin, /sys/power/mem_sleep
von s2idle
zu zu wechseln deep
. Das war mir nicht klar, weil die Datei beim Nachschlagen nur diese eine Zeile enthielt:
s2idle [deep]
was bedeutet, dassdeep
wurde bereits ausgewählt(!!) — ganz zu schweigen davon, dass, wie oben gesagt, das gegenteilige Verhalten zu erwarten war. —
Ich habe verstanden, was der Befehl macht, nachdem ich danach gefragt habeHier.
Wie in den ersten Kommentaren im Ubuntu-Forum beschrieben, habe ich nicht versucht, die Datei als solche zu ändern, sondern habe den folgenden Befehl verwendet (der auch auf dem zweiten Kommentar basiert):
echo deep | sudo tee -a /sys/power/mem_sleep
Wenn man sich die Datei noch einmal ansieht, scheint sie unverändert zu sein. Auch nach dem Neustart war sie noch da s2idle [deep]
, aber zu diesem Zeitpunkt war dieDas Aufwachen aus dem Ruhezustand erfolgte sofort! (Was, soweit ich im Nachhinein weiß, wie gesagt das Gegenteil von dem war, was erwartet wurde: deep
langes Aufwachen bedeuten sollte!)
Es scheint, dass die Datei durch diesen Befehl nicht verändert wurde, aberetwaswurde geändert – egal, ob es sich auf die Datei bezieht oder nicht.
Das Ändern in [s2idle] deep
mit einem entsprechenden Befehl echo s2idle | sudo tee -a /sys/power/mem_sleep
(um dies ein wenig zu untersuchen, wie in den Kommentaren zur verlinkten Frage beschrieben) hat das 20 Sekunden lange Aufwachproblem behobennichtwieder erscheinen.
Möglicherweise war ein Fehler im Spiel, den ich nicht verfolgen kann.
Nach einigen Kernel-Updates trat das ursprüngliche Problem erneut auf und wurde auf die gleiche Weise behoben. (Tatsächlich /sys/power/mem_sleep
lag die Datei bereits in der Form vor, die der Befehl auslösen soll, aber letztere wird trotzdem benötigt.)
Update (24. Okt. 2022):
Nach einem neuen Update funktionierte die obige Lösung nicht mehr - aber die entgegengesetzte Lösung funktionierte: echo s2idle | sudo tee -a /sys/power/mem_sleep
, was darauf hinausläuft, das gleiche zu tunGegenteildem, wozu mich meine Quellen veranlasst haben.
Das kam mir in diesem Moment bizarr vor, aber jetzt verstehe ich, dass dies eigentlich die ganze Zeit das erwartete Verhalten war: Was vorher passiert war, war merkwürdig und fehlerhaft, und das neue Update hat das behoben; s2idle
es soll das schnelle Aufwachen beweisen.
Nach dem Update auf die „normale“ Version 22.10 schien das Problem für eine Weile behoben, während die Datei /sys/power/mem_sleep
zurückgesetzt aussah deep
. Aber das Problem mit der 20-sekündigen Weckverzögerung trat erneut auf und wurde wie oben unter Update 2 beschrieben behoben. Erneut bestätigt nach einer Neuinstallation von Kubuntu 22.10: Nachdem das Problem einen Monat lang toleriert wurde (nur um zu sehen, ob es anderweitig behoben werden könnte), half der erste Befehl nicht, der zweite schon (Februar 2023).
Da dieses Problem weiterhin besteht (z. B. in 23.04 – und zwischen den Updates recht häufig erneut auftritt), habe ich ein schnelleres Verfahren zum Ausführen dieses Befehls vom Anwendungsstarter aus eingerichtet, indem eine Skriptdatei fix_suspend
in folgender Form erstellt wird:
#!/bin/sh
echo s2idle | sudo tee -a /sys/power/mem_sleep
und eine Datei ~/.local/share/applications/Fix suspend.desktop
mit der Zeile (angepasst für Plasma):
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true /path/to/fix_suspend
Nach einer Weile funktionierte die Lösung nach dem Neustart nicht mehr, daher musste ich das Skript beim Neustart ausführen lassen, wie in der kurzen Antwort am Anfang angegeben.