Abfrage der Batterie mit upower

habt Ihr Euch mal gefragt, wie die Anzeige des Batteriezustandes im Desktop zustande kommt?

Abfrage der Batterie mit upower

Als erstes brauchen wir mal ein Gerät mit Batterie, in diesem Beitrag ein altes Surface Tablet, da bekomme ich am schnellsten Ladezustandsänderungen hin 😉

Bevor wir uns upower zuwenden, erst einmal der klassische konsolenbasierte Zugang über /sys .Das ist nicht der intuitivste Weg, aber ggf. noch brauchbar, wenn man mal eben die Batterie per Script abfragen will.

Der Weg für Hardcorefans geht über /sys

Im Pfad /sys/class/power_supply/ finden wir zwei Links, einen zum Adapter ADP1, daß ist das Ladegerät selbst und völlig uninteressant, und die Batterie BAT1, die wesentlich interessantere Ausgaben hat:

lrwxrwxrwx. 1 root root 0 18. Sep 2025 ADP1 -> ../../devices/pci0000:00/0000:00:1f.0/PNP0C09:00/ACPI0003:00/power_supply/ADP1
lrwxrwxrwx. 1 root root 0 18. Sep 2025 BAT1 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:19/PNP0C09:00/PNP0C0A:00/power_supply/BAT1

Wie man sehen kann, ist das /sys Filesystem nicht gerade verständlich aufgebaut, deswegen lassen wir den Teil weg, denn genau dafür sind die Links da, um es etwas leichter zu machen.

In diesem BAT1 Verzeichnis finden wir einige lesbare Dateien:

-rw-r--r--. 1 root root 4096 18. Sep 08:34 alarm
-r--r--r--. 1 root root 4096 18. Sep 08:25 capacity
-r--r--r--. 1 root root 4096 18. Sep 08:34 capacity_level
-r--r--r--. 1 root root 4096 18. Sep 08:25 cycle_count
lrwxrwxrwx. 1 root root 0 18. Sep 08:25 device -> ../../../PNP0C0A:00
-r--r--r--. 1 root root 4096 18. Sep 08:25 energy_full
-r--r--r--. 1 root root 4096 18. Sep 08:25 energy_full_design
-r--r--r--. 1 root root 4096 18. Sep 08:25 energy_now
drwxr-xr-x. 2 root root 0 18. Sep 08:34 extensions
drwxr-xr-x. 3 root root 0 18. Sep 2025 hwmon2
-r--r--r--. 1 root root 4096 18. Sep 08:25 manufacturer
-r--r--r--. 1 root root 4096 18. Sep 08:25 model_name
drwxr-xr-x. 2 root root 0 18. Sep 08:34 power
-r--r--r--. 1 root root 4096 18. Sep 08:25 power_now
-r--r--r--. 1 root root 4096 18. Sep 08:25 present
-r--r--r--. 1 root root 4096 18. Sep 08:25 serial_number
-r--r--r--. 1 root root 4096 18. Sep 08:25 status
lrwxrwxrwx. 1 root root 0 18. Sep 2025 subsystem -> ../../../../../../../../../class/power_supply
-r--r--r--. 1 root root 4096 18. Sep 08:25 technology
-r--r--r--. 1 root root 4096 18. Sep 08:25 type
-rw-r--r--. 1 root root 4096 18. Sep 2025 uevent
-r--r--r--. 1 root root 4096 18. Sep 08:25 voltage_min_design
-r--r--r--. 1 root root 4096 18. Sep 08:25 voltage_now

Ihr habt es schon erraten, von der Seriennummer über das Batteriemodell zum aktuellen Ladestrom ist alles dabei was das Batteriefanherz so begeistert 😉 Wenn man sich nicht jede Datei einzeln ansehen will, dann ist uevent Eurer Freund, denn das ist eine Zusammenfassung der Werte. Beschreibbare Dateien können Veränderungen an den Geräten durchführen z.B. LEDs ein und ausschalten. Das zieht sich durch den ganzen Sys-Gerätepark.

DEVTYPE=power_supply
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=381
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=7500000
POWER_SUPPLY_VOLTAGE_NOW=8648000
POWER_SUPPLY_POWER_NOW=6270000
POWER_SUPPLY_ENERGY_FULL_DESIGN=38152000
POWER_SUPPLY_ENERGY_FULL=33285000
POWER_SUPPLY_ENERGY_NOW=31485000
POWER_SUPPLY_CAPACITY=94
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_MODEL_NAME=X910528
POWER_SUPPLY_MANUFACTURER=DYN
POWER_SUPPLY_SERIAL_NUMBER=XXXXXXXXXXX

Wie man sieht, zur Zeit ist der Ladestand der Batterie bei 94 % und sie wird mit rund 6 Watt geladen.

„Aber da stehen doch nur blanke Zahlen, woher weißt Du jetzt, daß das 6 Watt sind?“

POWER=> µW ( 1/1.000.000 tel Watt )
ENERGY=> µWh
VOLTAGE=> µV

Woher wissen wir, daß das stimmt?

Wir checken es gegen mit upower 🙂

upowerd ist ein ein Dienst, der sich um die Energieangelegenheiten kümmert und alle Batterien oder batteriebetriebenen Geräte erfasst und deren Verhalten protokolliert. Schritt 1 für Euch wäre also upower zu installieren (Fedora) und den Service zu starten:  dnf install upower -y && systemctl enable –now upower

Zum Glück für Euch ist der bei den meisten Distros per Default dabei, weil alle Desktopumgebungen ( Gnome, Cinnamon etc. ) den haben wollen für die Energiestatistiken.

Batterien & Geräte finden

upower listet Euch alle Informationsquellen auf. Das DisplayDevice gibt es immer, selbst auf Desktop-PCs.

# upower -e
/org/freedesktop/UPower/devices/battery_BAT1
/org/freedesktop/UPower/devices/line_power_ADP1
/org/freedesktop/UPower/devices/DisplayDevice

Das DisplayDevice ist eine Art Default Gerät, das kann man immer anzeigen und im Falle des Tablets ist das mit der Batterie identisch. Es ist allerdings etwas aufgeräumter als die individualanzeigen der beiden Geräte ADP1 und BAT1, was der Sache aber nicht abträglich ist, weil alles wesentliche drin ist:

# upower -i /org/freedesktop/UPower/devices/DisplayDevice
power supply: yes
updated: Do 18 Sep 2025 08:55:45 CEST (19 seconds ago)
has history: no
has statistics: no
battery
present: yes
state: charging
warning-level: none
energy: 32,947 Wh
energy-full: 33,285 Wh
energy-rate: 3,75 W
charge-cycles: N/A
time to full: 5,4 minutes
percentage: 98%
icon-name: ‚battery-full-charging-symbolic‘

Wie man sehen kann schlägt die Ausgabe auch das anzuzeigende Symbol für den Desktop vor 🙂

Vergleichen wir das mit der Detailansicht der Batterie

# upower -i /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: DYN
model: X910528
serial: XXXXXXXXX
power supply: yes
updated: Do 18 Sep 2025 08:59:15 CEST (14 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 32,947 Wh
energy-empty: 0 Wh
energy-full: 33,285 Wh
energy-full-design: 38,152 Wh
energy-rate: 3,427 W
voltage: 8,672 V
charge-cycles: 381
time to full: 5,9 minutes
percentage: 98%
capacity: 87,2431%
technology: lithium-ion
icon-name: ‚battery-full-charging-symbolic‘
History (rate):
1758178755 3,427 charging
1758178725 3,472 charging
1758178695 3,510 charging
1758178665 3,555 charging

Da finden wir am Ende sogar noch eine Historie des Lade- oder Entladevorhangs und können so Vorhersagen zur Laufzeit treffen.

Jetzt kann upower in der Konsole aber noch mehr, weil man ja nicht ständig den Befehl benutzen will, kann man sich auch alle Updates zu Ent/Ladevorgängen anzeigen lassen: upower –monitor –monitor-detail

Sobald es was Neues gibt, bekommt ihr die obige Anzeige des jeweiligen Gerätes angezeigt, was notorisch Ungeduldigen in die Hände spielt 😉

Bluetooth Headset Ausgabe

Der Monitormodus entdeckt auch, wenn ein neues Gerät, in dem Fall ein BT Headset, hinzugefügt wird:

[09:05:40.286] device added: /org/freedesktop/UPower/devices/headset_dev_XXXXXXXXXXXXXX
native-path: /org/bluez/hci0/dev_XXXXXXXXXXXX
model: Soundcore A1
serial: XXXXXXXXXXXXXXXXXXXX
power supply: no
updated: Do 18 Sep 2025 09:05:40 CEST (0 seconds ago)
has history: yes
has statistics: no
headset
warning-level: none
percentage: 90%
icon-name: ‚battery-missing-symbolic‘
History (charge):
1758179140 0,000 unknown
History (rate):
1758179140 0,000 unknown

Entschuldigt die XXXX Orgie, aber die MAC von dem Gerät geht das Internet nichts an 😉

Wir sehen hier wie versprochen auch den Ladezustand des Headsets. Mit dem Iconnamen bin ich nicht einverstanden, weil sich das irgendwie mit „Prozent: 90%“ nicht in Einklang bringen lässt.

Den upowerd könnt Ihr als Programm auch per DBUS-API abfragen, mehr Infos dazu findet Ihr hier:

https://upower.freedesktop.org/docs/

Linux am Dienstag – Programm für den 2.9.2025

Diesmal bei Linux am Dienstag … OOM Steuerung mit Systemd und die traurige Geschichte wie AMD, HP und Fedora als Projekt gerade versagen 🙁 Und eins noch, nur weil ich hier mal kein Programm poste, findet Linux am Dienstag trotzdem statt. Ihr alle habt Matthias und mich schwer enttäuscht.

Linux am Dienstag – Programm für den 2.9.2025

u.a. im Programm am 2.9.2025, ab 19 Uhr

  • Linux – Systemd und der OOM Score (Matthias)
  • Linux – AMD, HP und die AMDGPU Firmware (Marius)
  • Linux – BCacheFS bleibt vorläufig im Kernel
  • Sicherheit – NetScaler Lücken endlich patchbar
  • Sicherheit – DDOS Angriff auf ArchLinux Infrastruktur
  • Sicherheit – schwedische Gemeinden von Hackangriff schwer getroffen

und andere IT-Newsbeiträge aus aller Welt. Wie jede Woche per Videokonferenz auf https://meet.cloud-foo.de/Linux .

Hinweis: Die bisherigen Vorträge findet man unter https://linux-am-dienstag.de/archiv/ .

Linux auf dem Desktop – Wo ist das Problem???

Hat den Golembeitrag Linux auf dem Desktop, ein Abenteuer für alle die den Alltag langweilig finden schon wer gelesen?

Alleine die Schlagzeile widerspricht allem, was ich seit Jahren erlebe, aber vielleicht war Linux Mint ja einfach nicht die richtige Wahl?

Linux auf dem Desktop – Wo ist das Problem???

Ihr wisst ja vielleicht, daß ich Linux am Dienstag moderiere. Da kämpfen wir seit Jahren mit dem Phänomen, daß wir keine Desktopthemen finden(damit ist der Desktop gemeint, nicht der PC auf dem Tisch 😉 ). Außer vielleicht gelegentlich mal über eine neue Version von einem Desktop zu berichten, geht es meistens um „Wie löse ich Aufgabe X in der Konsole“ oder „Hey, schon dieses Programm gesehen?“ . Natürlich gibt es auch dieses „OMG!“ Momente, weil wieder irgendwas nicht so läuft wie es sollte, weil eine neue Version vom Nvidia-Treiber plötzlich nicht mehr rückwärtskompatibel ist. Aber das ist natürlich auch mit Windows nicht anders 😉

Von der anderen Seite aus betrachtet, sorgen diese „OMG!“ Momente, auch für die Themen bei Linux am Dienstag wo alle mit Herzblut lauschen oder mitarbeiten, denn zum Probleme lösen sind wir bei Linux am Dienstag 🙂  und das uns genau diese Probleme ausgehen, weil „der Krempel“ einfach immer besser wird, ist das eigentliche Problem, das ich als Moderator von Linux am Dienstag mit Linux habe 😉

Privat ärgere ich mich auch über einige Dinge, zum Beispiel das man Bugs meldet und die Maintainer so genervt sind, daß sie es am Reporter auslassen oder noch schlimmer, daß sich gar keiner um das Problem kümmert. Heute möchte ich mich mal positiv darüber auslassen, wie einfach die Installation geworden ist, natürlich nur, wenn man Fedora als Distro ausgewählt hat. Selbst Schuld wenn Ihr die zu Unrecht kaum beachtete Distribution mit dem meisten Kick nicht verwendet, sondern so komischen Empfehlungen folgt, daß Linux Mint #1 wäre 😉

Die Installation mit Anaconda

Fangen wir vorn an, bei der Installation Eures neuen Linux Desktop PCs

Als erstes brauchen wir ein ISO-Image von Fedora(ISO-Image) oder alternativ https://getfedora.org besuchen.

Das Image mit einem Programm Eurer Wahl auf einen USB Stick brennen ( als Abbild, nicht einfach drauf kopieren 😉 ).

Nun den Rechner mit dem USB Stick booten und …. den Anweisungen folgen:

man sieht die Auswahl aller unterstützten Sprachen von Fedora in einer vertikalen Liste.

Schritt 1: Sprache auswählen – Deutsch

Man sieht die Frage, welche Festplatte man auswählen soll und ob die ganze Platte benutzt werden soll.

Schritt 2: Auswahl der zu benutzenden Festplatte

Die Eingabe eines Passworts für die Vershclüsselung der Festplatte

Schritt 3: Die Passworteingabe für die Festplattenvollverschlüsselung

Fortschrittsanzeige

Schritt 4: Zuschauen wie die Software installiert wird.

Fertig

Fertig. Einmal Rebooten bitte.

War das jetzt schwer? Ich denke nicht 🙂

Nach dem Neustart

darf man als erstes seinen Zugang anlegen, also den Benutzernamen und das Passwort. Dann werden noch 2-3 Wünsche abgefragt zu Drittanbietersoftware, Fehlerberichterstattung und Geolocation-Diensten und es kann losgehen.

Firefox und Thunderbird sind schon vorinstalliert, Bildbetrachter und PDF-Viewer auch, da wird es jetzt schon eng mit den Softwarewünschen der ersten Stunde.

Was cooles passierte gerade

Die Aufnahmen für diesen Beitrag habe ich mit einer VM gemacht, die mit Gnome Boxen lief. Da ist mir mitten drin meine reale Cinnamon Sitzung zusammengebrochen und ich mußte neu einloggen. Die VM lief noch, was wichtig war, weil die gerade Updates eingespielt hat 🙂

Normalerweise liefen die VMs via Boxen genau so lange wie die Desktopsession lief, aber offenkundig werden die jetzt als Background-Dienst gestartet, also außerhalb vom Benutzerkontext. Da gabs früher schon eine Option für, aber die war standardmäßig aus. Ich sags ja: „Der Krempel wird immer besser.“ 😉

Die Desktopsession ist gestorben, weil … ja.. wieso eigentlich? Weil  scheinbar eine Gnome-Shell, das ist der Gnome-Desktop, gestartet wurde, während Cinnamon noch lief und da habe ich keine Erklärung für. Geil, dann haben wir morgen ein Problem zu ergründen \o/ 

Seht Ihr, so kommt Linux am Dienstag zu seinen Themen 🙂 Und ich dachte schon, daß Sommerloch wäre wieder da 😉