Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:archlinux_-_laptop_batterie-verbrauch_nach_poweroff

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:archlinux_-_laptop_batterie-verbrauch_nach_poweroff [2020/08/18 13:03] – [Datenermittlung] klaustachtler:archlinux_-_laptop_batterie-verbrauch_nach_poweroff [2020/08/18 13:21] (aktuell) klaus
Zeile 8: Zeile 8:
 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). 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 bei Starten ausgeführt wird, so konfiguriert wird.+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 Nachfolgend soll ein Start-Skript im Dienste-Verzeichnis von ''systemd'' und mit nachfolgendem Namen
Zeile 26: Zeile 26:
 ===== Datenermittlung ===== ===== Datenermittlung =====
  
-Nachfolgender Befehl ermittelt, ob ein **APCI** (Advanced Configuration and Power Interface) **enabled** ist und in den **Suspend-Modus** (S3) versetzte wird und **__nicht__** in heruntergefahren wird (S4 oder höher):+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):
 <code> <code>
 # cat /proc/acpi/wakeup | grep enabled # cat /proc/acpi/wakeup | grep enabled
Zeile 36: Zeile 36:
 </code> </code>
  
-Vorhergehende Liste zeigt zwei Geräte, welche in den **Suspend-Modus** (S3) versetzte werden, anstelle das diese heruntergefahren werden (S4 oder höher).+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   * **''XHC''** - USB 3.0 Gerät
   * **''SLPB''** - Ein/Aus (Power)-Knopf   * **''SLPB''** - Ein/Aus (Power)-Knopf
  
-:!: **WICHTIG** - **''SLPB'' - Ein/Aus (Power)-Knopf, sollte __NIEMALS__ heruntergefahren (S4 oder höher) versetzte werden!**+:!: **WICHTIG** - **''SLPB'' - Ein/Aus (Power)-Knopf, sollte __NIEMALS__ heruntergefahren (S4 oder höher) versetzt werden!**
  
-Nachfolgend betrifft es also hier nur das **''XHC''** - USB 3.0 Gerät. +:!: **HINWEIS** - Nachfolgend betrifft es also **__hier__** nur das **''XHC''** - USB 3.0 Gerät. 
  
 ===== /etc/systemd/system/disable-wakeup.service ===== ===== /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''
 +<code>
 +# touch /etc/systemd/system/disable-wakeup.service
 +</code>
 +
 +Der Inhalt sollte dann wie folgt aussehen und kann mit einem Editor der eigenen Wahl hinzugefügt werden:
 +<code ini>
 +[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
 +</code>
 +
 +Nach der Erstellung eines neuen Dienstes für **''systend''**, muss nachfolgender Befehl zur Bekanntgabe der Änderungen ausgeführt werden:
 +<code>
 +# systemctl daemon-reload
 +</code>
 +
 +===== 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:
 +<code>
 +# systemctl enable disable-wakeup.service
 +Created symlink /etc/systemd/system/multi-user.target.wants/disable-wakeup.service → /etc/systemd/system/disable-wakeup.service.
 +</code>
 +
 +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:
 +<code>
 +# systemctl list-unit-files --type=service | grep -e ^disable-wakeup.service
 +disable-wakeup.service                     enabled         disabled
 +</code>
 +bzw.
 +<code>
 +# systemctl is-enabled disable-wakeup.service
 +enabled
 +</code>
 +
 +===== Start: disable-wakeup.service =====
 +
 +Nachfolgender Befehl startet den Dienst einmalig:
 +<code>
 +systemctl start disable-wakeup.service
 +</code>
 +
 +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:
 +<code>
 +# 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
 +</code>
 +
tachtler/archlinux_-_laptop_batterie-verbrauch_nach_poweroff.1597748600.txt.gz · Zuletzt geändert: 2020/08/18 13:03 von klaus