Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:archlinux_-_laptop_batterie-verbrauch_nach_poweroff

ArchLinux - Laptop Batterie-Verbrauch nach Poweroff

Unter Linux im allgemeinen kann es bei Laptops, hier einem Lenovo Thinkpad E14 vorkommen, dass nach dem Poweroff einige Geräte noch Strom verbrauchen. Nachfolgende Einstellungen wurden im BIOS - deaktiviert - um dies zu verhinden:

  1. Always On USB - Laden über USB, wenn der Laptop heruntergefahren/ausgeschaltet ist
  2. Wake On LAN - Dienst deaktiviert
  3. Absolute Persistence® Module Activation - Absolute Manage-Software-Agenten Überwachung deaktiviert

Das Probleme kann gelöst werden, indem das alle Geräte, auch im Betriebssystem beim Herunterfahren nicht in den Suspend-Modus (S3) versetzt werden, sondern tatsächlich heruntergefahren werden (S4 oder höher).

Dies kann dadurch erreicht werden, das beim Starten des Betriebssystems, dies durch ein systemd-Start-Skript, welches nur einmal beim Starten ausgeführt wird, so konfiguriert wird.

Nachfolgend soll ein Start-Skript im Dienste-Verzeichnis von systemd und mit nachfolgendem Namen

  • /etc/systemd/system/disable-wakeup.service

erstellt werden und bei jedem Betriebssystemstart einmal ausgeführt zu werden, wie nachfolgend beschrieben.

Beschreibung Externer Link
Homepage https://www.archlinux.de/
Herunterladen https://www.archlinux.de/download

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Datenermittlung

Nachfolgender Befehl ermittelt, ob ein APCI (Advanced Configuration and Power Interface) enabled ist und in den Suspend-Modus (S3) versetzt wird und nicht heruntergefahren wird (S4 oder höher):

# cat /proc/acpi/wakeup | grep enabled
XHC	  S3	*enabled   pci:0000:00:14.0
RP09	  S4	*enabled   pci:0000:00:1d.0
RP13	  S4	*enabled   pci:0000:00:1d.4
SLPB	  S3	*enabled   platform:PNP0C0E:00
LID	  S4	*enabled   platform:PNP0C0D:00

Vorhergehende Liste zeigt zwei Geräte, welche in den Suspend-Modus (S3) versetzt werden, anstelle das diese heruntergefahren werden (S4 oder höher).

  • XHC - USB 3.0 Gerät
  • SLPB - Ein/Aus (Power)-Knopf

:!: WICHTIG - SLPB - Ein/Aus (Power)-Knopf, sollte NIEMALS heruntergefahren (S4 oder höher) versetzt werden!

:!: HINWEIS - Nachfolgend betrifft es also hier nur das XHC - USB 3.0 Gerät.

/etc/systemd/system/disable-wakeup.service

Nachfolgender Befehl erstellt ein Start-Skript im Dienste-Verzeichnis von systemd mit nachfolgendem Namen

  • /etc/systemd/system/disable-wakeup.service
# touch /etc/systemd/system/disable-wakeup.service

Der Inhalt sollte dann wie folgt aussehen und kann mit einem Editor der eigenen Wahl hinzugefügt werden:

[Unit]
Description=Disable USB controllers in /proc/acpi/wakeup
 
[Service]
Type=oneshot
ExecStart=bash -c '\
    while read -r device _ status _; do \
        [[ $device == +([EX]HC*|USB*|PS2*) && $status == "*enabled" ]] && \
            echo $device > /proc/acpi/wakeup; \
    done < /proc/acpi/wakeup; \
    true \
'
 
[Install]
WantedBy=multi-user.target

Nach der Erstellung eines neuen Dienstes für systend, muss nachfolgender Befehl zur Bekanntgabe der Änderungen ausgeführt werden:

# systemctl daemon-reload

Dienst/Deamon-Start einrichten

Um einen Dienst/Deamon hinzuzufügen, welcher auch nach einem Neustart des Servers zur Verfügung stehen soll, muss der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable disable-wakeup.service
Created symlink /etc/systemd/system/multi-user.target.wants/disable-wakeup.service → /etc/systemd/system/disable-wakeup.service.

Eine Überprüfung, ob beim Neustart des Server der Dienst/Daemon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e ^disable-wakeup.service
disable-wakeup.service                     enabled         disabled

bzw.

# systemctl is-enabled disable-wakeup.service
enabled

Start: disable-wakeup.service

Nachfolgender Befehl startet den Dienst einmalig:

systemctl start disable-wakeup.service

Nach erfolgreichem Start des Dienstes, sollte die Ausgabe des nachfolgenden Befehls zur Ermittlung, ob ein APCI (Advanced Configuration and Power Interface) enabled ist und in den Suspend-Modus (S3) versetzt wird und nicht heruntergefahren wird (S4 oder höher), das nachfolgende Ergebnis liefern:

# cat /proc/acpi/wakeup | grep enabled
RP09	  S4	*enabled   pci:0000:00:1d.0
RP13	  S4	*enabled   pci:0000:00:1d.4
SLPB	  S3	*enabled   platform:PNP0C0E:00
LID	  S4	*enabled   platform:PNP0C0D:00
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/archlinux_-_laptop_batterie-verbrauch_nach_poweroff.txt · Zuletzt geändert: 2020/08/18 13:21 von klaus