Batterieentladung im Standby-Modus verhindern bei deaktiviertem ME (Linux)

Die Dasharo coreboot-Modelle von NovaCustom verfügen über eine Funktion zur Deaktivierung der Intel Management Engine (ME). Die Deaktivierung des ME hat jedoch einen Nachteil: Der Laptop kann nicht mehr den niedrigsten Energiezustand erreichen, der für den modern standby-Modus (S0ix) verwendet wird. Infolgedessen entleert sich der Akku im Suspend-Modus etwa 3 Mal schneller als bei aktiviertem ME. Auch wenn wir dieses Problem nicht lösen können, gibt es eine Umgehungslösung für dieses Problem.

Hintergrund

Früher gab es bei Computern einen Tiefschlafmodus, der Hibernation genannt wurde. Der Ruhezustand ist zwar nicht mehr sinnvoll und in modernen Linux-Betriebssystemen standardmäßig nicht mehr aktiv, aber wir können ihn immer noch aktivieren und nutzen. Hibernation hat allerdings einen großen Nachteil: Die Aufwachzeit ist lang und vergleichbar mit der Aufwachzeit bei einem normalen System-Start.

Beim Suspend-Modus kehrt ein Benutzer zum Computer zurück, kurz nachdem er seinen Arbeitsplatz verlassen hat. Denken Sie an eine Pause oder einen kurzen Spaziergang. Aus Sicherheitsgründen ist es immer das Beste, das System vollständig herunterzufahren. Für einige Benutzer könnte dies jedoch unbequem sein, weshalb sie den Suspend-Modus bevorzugen. In den meisten Fällen wird der Computer innerhalb von 3 Stunden, nachdem der Benutzer seinen Arbeitsplatz verlassen hat, wieder aufgenommen.

Es gibt eine Möglichkeit, den Laptop nach einer bestimmten Zeit von Inaktivität in den Suspend-Modus zu versetzen, während der Akku nicht leerläuft. Die Umgehungslösung, die wir in diesem Artikel anwenden werden, heißt suspend-then-hibernate. Das funktioniert so: Wenn der Laptop in den Ruhestand geht, macht er das zuerst wie üblich. Aber nach einer bestimmten Zeit, sagen wir 3 Stunden, schaltet der Laptop vom normalen Suspend-Modus in den Tiefschlaf (suspend-to-disk).

Vorteile

Die Einrichtung von suspend-then-hibernate, während ME deaktiviert ist, hat einige Vorteile:

  1. Der Akku entleert kaum im Ruhestand.
  2. Die Aufwachzeit des Ruhestands ist in den meisten Fällen immer noch sehr kurz, es sei denn, der Benutzer setzt die Arbeit nach 3 Stunden fort.

Die NV41 Serie mit Linux ist nicht betroffen

Sofern Sie keine Dual-Boot-Konfiguration mit Windows haben, die Sie zur Verwendung des modern standby-Modus zwingt, ist die NV41 Serie nicht vom Problem der Batterieentladung in Verbindung mit deaktiviertem ME betroffen. Das liegt daran, dass diese Notebook-Serie S3 (Suspend-to-RAM) unterstützt, das den Prozessor im Suspend-Modus komplett abschaltet.

So richten Sie suspend-then-hibernate ein

Diese Anleitung wurde für Ubuntu 24.04 mit GNOME geschrieben. Bei anderen Distributionen und Desktop-Umgebungen sind möglicherweise andere Schritte zur Einrichtung von suspend-then-hibernate erforderlich. Es könnte aber auch auf anderen Distributionen funktionieren. Bitte hinterlassen Sie einen Kommentar zu diesem Blog-Beitrag, um andere Benutzer darüber zu informieren, wie dies für die von Ihnen verwendete Distro funktioniert.

Kommentar zu Verschlüsselung der Festplatte: Bisher konnten wir den Ruhezustand noch nicht mit einer verschlüsselten Partition einrichten. Ich habe versucht, eine separate Swap-Partition sowohl für eine bestehende Ubuntu-Installation als auch für eine neue Installation einzurichten, ohne Erfolg, auch nachdem ich diese Anmerkungen gelesen habe. Wenn Sie eine Lösung für dieses Problem haben, zögern Sie bitte nicht, sie in den Kommentaren mitzuteilen.

Schritt 1: Installieren von pm-utils

Sie können dies ganz einfach tun, indem Sie ein Terminalfenster öffnen (Strg + Alt + T) und die folgende Zeile ausführen, während Sie eine aktive Internetverbindung haben:

sudo apt install pm-utils -y

Schritt 2: Vorbereitung einer Swap-Partition

Ubuntu erstellt standardmäßig keine Swap-Partition, aber sie ist für Hibernation notwendig. Die Größe der Swap-Partition sollte mindestens so groß sein wie die Kapazität des internen Speichers. Dies ist über das Betriebssystem selbst nicht möglich.

Wenn Sie Ubuntu neu installieren, können Sie die Swap-Partition während der Einrichtung der Festplattenpartitionen einrichten, indem Sie die Partition manuell über das Installationsprogramm hinzufügen. Sehen Sie sich auch dieses Video an, das zeigt, wie Sie Ubuntu 24.04 mit separaten Partitionen einrichten.

So erstellen Sie die Swap-Partition auf einem System, auf dem Ubuntu bereits installiert ist:

  1. Booten Sie von einem Ubuntu Live-USB-Stick.
  2. Verkleinern Sie Ihre Root-Partition mit Gparted um mindestens Ihre gesamte interne Arbeitsspeicherkapazität. Um auf der sicheren Seite zu sein, empfehlen wir Ihnen, ein Gigabyte mehr als Ihre gesamte Arbeitsspeicherkapazität hinzuzufügen.
  3. Erstellen Sie die Swap-Partition mit Gparted mit der maximalen Größe.
  4. Starten Sie den Laptop neu.

Tipp: Sie können free -h ausführen um die Kapazität Ihres internen Arbeitsspeichers zu überprüfen. Nach Schritt 4 können Sie mit demselben Befehl überprüfen, ob die Gesamtkapazität der Swap-Partition größer ist als die Gesamtkapazität des Arbeitsspeichers.

Schritt 3: Formatieren und Zuweisen der Swap-Partition

Dieser Schritt ist nur notwendig, wenn Sie eine neue Swap-Partition erstellt haben; nicht, wenn Sie die Swap-Partition während der Installation von Ubuntu eingerichtet haben.

Nachdem Sie Ihre normale Installation wieder gestartet haben, formatieren Sie die Swap-Partition, indem Sie ein Terminal öffnen (Strg + Alt + T) und dann ausführen:

sudo mkswap /dev/nvme0n1pX

Ersetzen Sie aber /dev/nvme0n1pX durch Ihre Swap-Partition. Sie können die Anwendung Laufwerke verwenden, um Ihre Swap-Partition zu identifizieren.

Der nächste Schritt besteht darin, die Swap-Partition zu mounten. Sie können dies tun, indem Sie ausführen:

sudo swapon -U UUID

Aber ersetzen Sie UUID durch die tatsächliche UUID Ihrer Swap-Partition. Sie können die UUID Ihrer Swap-Partition auch mit der Anwendung Festplatten überprüfen.

Als Letztes müssen wir die Swap-Partition dauerhaft einhängen, indem wir sie in /etc/fstab binden. Führen Sie in einem Terminalfenster aus:

sudo nano /etc/fstab

Fügen Sie nun diese Zeile am Ende ein:

UUID=xxx    none    swap    sw      0   0

Ersetzen Sie hier xxx durch die tatsächliche UUID Ihrer Swap-Partition.

Vergewissern Sie sich außerdem, dass in der Konfigurationsdatei fstab keine andere Swap-Partition oder Swap-Datei definiert ist. Standardmäßig ist die Datei /swap.img aktiv. Stellen Sie also sicher, dass Sie diese Zeile vollständig entfernt haben. Übrigens können Sie mit Strg + K eine ganze Zeile entfernen.

Speichern Sie die Datei mit dem Tastaturkürzel Strg + X, gefolgt von Y, gefolgt von Enter.

Schritt 4: Die Swap-Partition an GRUB zuweisen

Führen Sie dazu aus:

sudo nano /etc/default/grub

Suchen Sie nun die Zeile GRUB_CMDLINE_LINUX_DEFAULT=. Fügen Sie zwischen den doppelten Anführungszeichen an: resume=UUID=xxx, wobei xxx durch die UUID Ihrer Auslagerungspartition ersetzt werden muss.

In meinem Fall sah die Zeile wie folgt aus:

[ ... ]
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=48c20957-8193-4eb5-a157-f190f9c13d46"
[ ... ]

Speichern Sie die Datei mit dem Tastaturkürzel Strg + X, gefolgt von Y, gefolgt von Enter.

Stellen Sie sicher, dass die Änderungen aktiv sind, indem Sie sie ausführen:

sudo update-grub

Und starten Sie Ihren Computer neu.

Schritt 5: Testen von Hibernation

Um Hibernation auszulösen, müssen Sie den folgenden Befehl ausführen:

systemctl hibernate

Sie können diesen Befehl verwenden, um sicherzustellen, dass der Tiefschlafstand korrekt funktioniert.

Schritt 6: Eine Option zum direkten Auslösen von Hibernation hinzufügen (optional)

Es gibt zwei Möglichkeiten um Hibernation einfach über die grafische Benutzeroberfläche auszulösen:

  1. Durch die Verwendung der GNOME-Erweiterung Hibernate Status Button.
  2. Indem Sie eine benutzerdefinierte Tastenkombination erstellen, um Hibernation einfach zu triggern. Sie können dies tun, indem Sie zu Einstellungen –> Tastatur –> Tastaturkürzel –> Benutzerdefinierte Kürzel –> Kürzel hinzufügen navigieren. Als Name legen Sie Hibernation fest. Setzen Sie als Befehl systemctl hibernate. Klicken Sie dann auf Tastenkombination festlegen … und lösen Sie die gewünschte Tastenkombination aus, um Ihren Laptop in den Tiefschlafmodus zu versetzen.

Schritt 7: Ändern der Ruhezustandskonfiguration von systemd

Das Ziel ist es:

  1. Sicherzustellen, dass der Ruhezustand von systemd zugelassen wird.
  2. Die Verzögerung für den Ruhezustand nach dem Suspend-Modus einzustellen.
  3. Sicherzustellen, dass der Ruhestand tatsächlich die suspend-then-hibernate-Richtlinie auslöst.

Öffnen Sie dazu ein Terminalfenster und führen Sie aus:

sudo nano /etc/systemd/sleep.conf

Entfernen Sie in dieser Datei die Kommentare und setzen Sie die folgenden Zeilen:

AllowSuspend=yes
AllowHibernate=yes
AllowSuspendThenHibernate=yes
HibernateDelaySec=180min

Speichern Sie die Datei mit dem Tastaturkürzel Strg + X, gefolgt von Y, gefolgt von Enter.

Setzen Sie nun den Standard-Schlafmodus mit suspend-then-hibernate in Kraft, indem Sie ausführen:

sudo ln -s /usr/lib/systemd/system/systemd-suspend-then-hibernate.service /etc/systemd/system/systemd-suspend.service

Starten Sie das Notebook neu, um sicherzustellen, dass die Änderungen aktiv sind.

Schritt 8: suspend-then-hibernate testen

Öffnen Sie mehrere Anwendungen und setzen Sie den Laptop einfach wie gewohnt in den Ruhezustand. Warten Sie eine Minute und wecken Sie Ihren Laptop auf. Der Suspend-Modus sollte wie gewohnt funktionieren.

Lösen Sie nun erneut den Suspend-Modus aus. Stellen Sie einen Alarm ein, der in 3 Stunden ausgelöst wird, damit Sie sehen können was passiert, sobald der Laptop länger als diese Zeitspanne inaktiv ist. Der Laptop seinen Zustand speichern und herunterfahren. Um zu überprüfen, ob dieses Ziel erreicht wurde, schalten Sie den Laptop einfach wieder ein. Der Laptop sollte die Anwendungen so wiederherstellen wie sie waren, bevor der Suspend-Modus ausgelöst wurde.

Wessel klein Snakenborg (Gründer von NovaCustom)

LinkedIn

Über den Autor: Wessel Klein Snakenborg ist seit seiner Kindheit technikbegeistert. 2015 gründete er das Unternehmen NovaCustom, das maßgeschneiderte Laptops mit Blick auf Datenschutz und Sicherheit herstellt. Mit dem Fokus auf Benutzerfreundlichkeit definiert NovaCustom das Notebook-Erlebnis neu, angeführt von Wessels Engagement für Innovation und Zusammenarbeit.

Kommentare nur auf Englisch bitte.

Ihren Warenkorb teilen