tlp-stat Akkudaten - Tester mit Coreboot/Libreboot gesucht

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
14.069
Guten Abend allerseits! :)

Ich bräuchte die Hilfe der anwesenden Core- bzw. Libreboot Nutzer (z.B. @iks230). Ich habe mich dazu entschlossen, einen Workaround für die fehlenden Akkudaten in tlp-stat -b einzubauen, da sich von Core- bzw. Libreboot-Enwicklerseite niemand bemüßigt fühlt, das Problem zu fixen.

Pakete gibt es hier: https://download.linrunner.de/packages/

Bitte zeigt die Ausgabe von:
Bash:
sudo tlp-stat -s -b

Hintergrundinfos:
Vielen Dank fürs Testen.
 
Zuletzt bearbeitet:
aber wir wissen nicht wie sie vor dem tlp fullcharge war.
Du liegst richtig. Ich habe eigentlich immer Ladeschwellen drin. Hier die Einstellung aus der tlp.conf

Code:
START_CHARGE_THRESH_BAT0=40
# Battery charge level above which charging will stop.
STOP_CHARGE_THRESH_BAT0=70


Mach mal folgendes und zeig die Ausgaben (ich unterstelle, dass Du Schwellen konfiguriert hast):
sudo tlp setcharge
sudo tlp-stat -b

Code:
sudo tlp setcharge
Passwort:
Setting temporary charge thresholds for battery BAT0:
  start =  40
  stop  =  70 (no change)
Notice: BAT0 charge level is above the stop threshold. Use your laptop on battery power until the battery is discharged to the stop threshold.


sudo tlp-stat -b
Passwort:
--- TLP 1.8.0 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = Panasonic
/sys/class/power_supply/BAT0/model_name                     = 42T4696
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  93960 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  49550 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  38960 [mWh]
/sys/class/power_supply/BAT0/power_now                      =  13362 [mW]
/sys/class/power_supply/BAT0/status                         = Discharging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     40 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     70 [%]

Charge                                                      =   78.6 [%]
Capacity                                                    =   52.7 [%]

+++ Recommendations
* BAT0 charge level is above the stop threshold. Use your laptop on battery power until the battery is discharged to the stop threshold.
* Install kernel 5.17 (or later) for battery recalibration support

sudo tlp fullcharge
sudo tlp-stat -b

Code:
sudo tlp fullcharge
Setting temporary charge thresholds for battery BAT0:
  stop  = 100
  start =  96
Charging starts now, keep AC connected.


sudo tlp-stat -b
--- TLP 1.8.0 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = Panasonic
/sys/class/power_supply/BAT0/model_name                     = 42T4696
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  93960 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  49550 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  38710 [mWh]
/sys/class/power_supply/BAT0/power_now                      =   3526 [mW]
/sys/class/power_supply/BAT0/status                         = Charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     96 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]

Charge                                                      =   78.1 [%]
Capacity                                                    =   52.7 [%]

+++ Recommendations
* Install kernel 5.17 (or later) for battery recalibration support



Und zuletzt noch:

Code:
cat /sys/class/dmi/id/bios_vendor
coreboot
 
@iks230 @thickpad @Ambrosius

Ich bräuchte bitte nochmal von euren Coreboot oder Libreboot ThinkPads die folgende Ausgabe:
Bash:
grep . /sys/class/dmi/id/*

Vielen Dank im voraus für eure Mühe!

Hintergrund: ich brauche Vergleichssdaten zu diesem Fall eines T580. Der User meldet sich leider nicht mehr ... :(
 
Gerne. Hier am X200 mit LB:
Code:
[tp@X2 ~]$ grep . /sys/class/dmi/id/*
/sys/class/dmi/id/bios_date:06/30/2025
/sys/class/dmi/id/bios_release:25.6
/sys/class/dmi/id/bios_vendor:coreboot
/sys/class/dmi/id/bios_version:CBET4000 25.06
/sys/class/dmi/id/board_name:7458AU2
grep: /sys/class/dmi/id/board_serial: Keine Berechtigung
/sys/class/dmi/id/board_vendor:LENOVO
/sys/class/dmi/id/board_version:ThinkPad X200
grep: /sys/class/dmi/id/chassis_serial: Keine Berechtigung
/sys/class/dmi/id/chassis_type:9
/sys/class/dmi/id/chassis_vendor:LENOVO
/sys/class/dmi/id/ec_firmware_release:0.0
/sys/class/dmi/id/modalias:dmi:bvncoreboot:bvrCBET400025.06:bd06/30/2025:br25.6:efr0.0:svnLENOVO:pn7458AU2:pvrThinkPadX200:rvnLENOVO:rn7458AU2:rvrThinkPadX200:cvnLENOVO:ct9:cvr:sku:
grep: /sys/class/dmi/id/power: Ist ein Verzeichnis
/sys/class/dmi/id/product_family:ThinkPad X200
/sys/class/dmi/id/product_name:7458AU2
grep: /sys/class/dmi/id/product_serial: Keine Berechtigung
grep: /sys/class/dmi/id/product_uuid: Keine Berechtigung
/sys/class/dmi/id/product_version:ThinkPad X200
grep: /sys/class/dmi/id/subsystem: Ist ein Verzeichnis
/sys/class/dmi/id/sys_vendor:LENOVO
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvncoreboot:bvrCBET400025.06:bd06/30/2025:br25.6:efr0.0:svnLENOVO:pn7458AU2:pvrThinkPadX200:rvnLENOVO:rn7458AU2:rvrThinkPadX200:cvnLENOVO:ct9:cvr:sku:
 
X230:
Code:
/sys/class/dmi/id/bios_date:11/23/2023
/sys/class/dmi/id/bios_release:4.22
/sys/class/dmi/id/bios_vendor:coreboot
/sys/class/dmi/id/bios_version:CBET4000 4.22.01
/sys/class/dmi/id/board_name:232577G
/sys/class/dmi/id/board_serial:R9YDNWA
/sys/class/dmi/id/board_vendor:LENOVO
/sys/class/dmi/id/board_version:ThinkPad X230
/sys/class/dmi/id/chassis_type:9
/sys/class/dmi/id/chassis_vendor:LENOVO
/sys/class/dmi/id/ec_firmware_release:0.0
/sys/class/dmi/id/modalias:dmi:bvncoreboot:bvrCBET40004.22.01:bd11/23/2023:br4.22:efr0.0:svnLENOVO:pn232577G:pvrThinkPadX230:rvnLENOVO:rn232577G:rvrThinkPadX230:cvnLENOVO:ct9:cvr:sku:
grep: /sys/class/dmi/id/power: Ist ein Verzeichnis
/sys/class/dmi/id/product_family:ThinkPad X230
/sys/class/dmi/id/product_name:232577G
/sys/class/dmi/id/product_serial:R9YDNWA
/sys/class/dmi/id/product_uuid:61469e81-5215-11cb-8149-ee802b3ac066
/sys/class/dmi/id/product_version:ThinkPad X230
grep: /sys/class/dmi/id/subsystem: Ist ein Verzeichnis
/sys/class/dmi/id/sys_vendor:LENOVO
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvncoreboot:bvrCBET40004.22.01:bd11/23/2023:br4.22:efr0.0:svnLENOVO:pn232577G:pvrThinkPadX230:rvnLENOVO:rn232577G:rvrThinkPadX230:cvnLENOVO:ct9:cvr:sku:


T440p
Code:
❯ sudo grep . /sys/class/dmi/id/*
/sys/class/dmi/id/bios_date:11/23/2023
/sys/class/dmi/id/bios_release:4.22
/sys/class/dmi/id/bios_vendor:coreboot
/sys/class/dmi/id/bios_version:4.22.01
/sys/class/dmi/id/board_name:ThinkPad T440p
/sys/class/dmi/id/board_serial:123456789
/sys/class/dmi/id/board_vendor:LENOVO
/sys/class/dmi/id/board_version:1.0
/sys/class/dmi/id/chassis_type:9
/sys/class/dmi/id/chassis_vendor:LENOVO
/sys/class/dmi/id/ec_firmware_release:0.0
/sys/class/dmi/id/modalias:dmi:bvncoreboot:bvr4.22.01:bd11/23/2023:br4.22:efr0.0:svnLENOVO:pnThinkPadT440p:pvr1.0:rvnLENOVO:rnThinkPadT440p:rvr1.0:cvnLENOVO:ct9:cvr:sku:
grep: /sys/class/dmi/id/power: Ist ein Verzeichnis
/sys/class/dmi/id/product_family:ThinkPad T440p
/sys/class/dmi/id/product_name:ThinkPad T440p
/sys/class/dmi/id/product_serial:123456789
/sys/class/dmi/id/product_version:1.0
grep: /sys/class/dmi/id/subsystem: Ist ein Verzeichnis
/sys/class/dmi/id/sys_vendor:LENOVO
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvncoreboot:bvr4.22.01:bd11/23/2023:br4.22:efr0.0:svnLENOVO:pnThinkPadT440p:pvr1.0:rvnLENOVO:rnThinkPadT440p:rvr1.0:cvnLENOVO:ct9:cvr:sku:



Ich habe leider keine T480/T480s/T580 mit Coreboot mehr :). Die sind sämtlich super einfach zu flashen es entfällt das leidige ROM-Teilen uswm. Einfach nur kurz öffnen und einen Chip später..
Beitrag automatisch zusammengeführt:

Was ich evtl. noch hinzufügen kann @linrunner in dem verlinkten Github Eintrag von oben:

+++ Battery Care
Plugin: generic

Deutet daraufhin das der Nutzer von dem T580 nicht "options thinkpad_acpi force_load=1" über die cmdline oder modprobe.d mitlädt. Vermutlich hat er auch kein anständiges Temperature-Monitoring sowie FAN-Control und für dein Tool dann auch nicht den passenden Akku-Plugin.

Das ist ein known Bug und hinreichend gut dokumentiert. https://libreboot.org/faq.html#thinkpad-acpi

Ist die Frage ob man es in tlp als warning aufnehmen könnte wenn vieles aus den dmi id auf ein thinkpad hindeutet bei battery-plugin aber generic steht das modul manuell zu laden wenn der bios-vendor gleichzeitit coreboot ist.. Aber wer es in der Anleitung schon nicht sieht sieht es da vermutlich auch nicht :).
 
Zuletzt bearbeitet:
Deutet daraufhin das der Nutzer von dem T580 nicht "options thinkpad_acpi force_load=1" über die cmdline oder modprobe.d mitlädt.
Daran hatte ich noch gar nicht gedacht.

Er hat sich gerade gemeldet. Hab deinen Hinweis gleich verwertet.

Bei ihm fehlt zudem in product_name am Anfang "ThinkPad". Das frage ich bisher auch ab, obwohl es für Ladeschwellen nicht das entscheidende Kriterium ist.
 
C13 Yoga:
Bash:
/sys/class/dmi/id/bios_date:01/25/2026
/sys/class/dmi/id/bios_release:0.0
/sys/class/dmi/id/bios_vendor:coreboot
/sys/class/dmi/id/bios_version:MrChromebox-2512.2
/sys/class/dmi/id/board_name:Morphius
grep: /sys/class/dmi/id/board_serial: Permission denied
/sys/class/dmi/id/board_vendor:Google
/sys/class/dmi/id/board_version:rev6
grep: /sys/class/dmi/id/chassis_serial: Permission denied
/sys/class/dmi/id/chassis_type:9
/sys/class/dmi/id/chassis_vendor:Google
/sys/class/dmi/id/ec_firmware_release:0.0
/sys/class/dmi/id/modalias:dmi:bvncoreboot:bvrMrChromebox-2512.2:bd01/25/2026:br0.0:efr0.0:svnGoogle:pnMorphius:pvrrev6:rvnGoogle:rnMorphius:rvrrev6:cvnGoogle:ct9:cvr:skusku1510014994:
grep: /sys/class/dmi/id/power: Is a directory
/sys/class/dmi/id/product_family:Google_Zork
/sys/class/dmi/id/product_name:Morphius
grep: /sys/class/dmi/id/product_serial: Permission denied
/sys/class/dmi/id/product_sku:sku1510014994
/sys/class/dmi/id/product_version:rev6
grep: /sys/class/dmi/id/subsystem: Is a directory
/sys/class/dmi/id/sys_vendor:Google
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvncoreboot:bvrMrChromebox-2512.2:bd01/25/2026:br0.0:efr0.0:svnGoogle:pnMorphius:pvrrev6:rvnGoogle:rnMorphius:rvrrev6:cvnGoogle:ct9:cvr:skusku1510014994:
 
Hab hier etwas auf dem x200 mit lb:

Code:
$ sudo tlp setcharge 45 75 BAT0
Passwort:
Setting temporary charge thresholds for battery BAT0:
  start =  45 (Error: write failed)
  stop  =  75

wenn ich den Befehl wiederhole kommt dann:

Code:
$ sudo tlp setcharge 45 75 BAT0
Setting temporary charge thresholds for battery BAT0:
  start =  45 (no change)
  stop  =  75 (no change)

In beiden Fällen wird aber nicht geladen.
Beitrag automatisch zusammengeführt:

Edit: Ich habe darauf hin ein fullcharge gemacht, das ging dann. Hab dann zwischendurch bei 71% ein setcharge dazwischenschieben wollen, um den vorherigen Befehl zu übersteuern, das ging dann wiederum nicht:

Code:
$ sudo tlp setcharge 45 75 BAT0
Passwort:
Setting temporary charge thresholds for battery BAT0:
  start =  45
  stop  =  75 (Error: write failed)

Edit II:
mit 80 hat er diesmal keinen Fehler ausgespuckt. Hat aber im Ergebnis das Laden (vom fullcharge davor) gestoppt

Code:
$ sudo tlp setcharge 45 80 BAT0
Setting temporary charge thresholds for battery BAT0:
  start =  45 (no change)
  stop  =  80

Fazit: Ich weiss gar nicht ob das jetzt ein cb spezifisches Schmankerle war, oder ob ich das mit den Overrides falsch verstanden habe. Bisher hat er immer jeden Wert akzeptiert, den ich ihm gesetzt habe. Woher die error-Meldungen kamen weiss ich jetzt aber leider nicht. Ich konnte ihn nur mit fullcharge letztlich zum Laden bewegen.

Hier noch der gesamte Output von -b:

Code:
$ sudo tlp-stat -b
--- TLP 1.10.2 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SANYO
/sys/class/power_supply/BAT0/model_name                     = 6Y14
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  56160 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  60500 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  44760 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Not charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     45 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     80 [%]

Charge                                                      =   74.0 [%]
Capacity                                                    =  107.7 [%]
 
Zuletzt bearbeitet:
@Ambrosius das erste setcharge ging durch, wie der zweite Versuch mit start=45 zeigt. Statt nochmal blind draufzuhämmern, ist es besser erstmal mit tlp-stat -b nachzuschauen um Symptome zu sichern (hier zu posten). Ein tlp-stat -s nehme ich auch immer gerne zwecks Dokumentation...

Den "write error" meldet der Kernel, wenn er von Coreboot beim ACPI Call einen Fehler oder vielleicht auch keine Rückmeldung bekommt. Offensichtlich ging das erste Write dennoch durch. Ich kann TLP-seitig nichts machen, wenn das BIOS zickt.
@KB19 kannst Du dazu etwas sagen?

Auf jeden Fall scheinst Du ein aktuelles Coreboot zu haben, da ist nämlich der Patch für die Datenanlieferung in energy_* (sprich: mWh) enthalten(y).

Warum es nicht anfängt zu laden, kannst Du mit tlp-stat -b ergründen. Der Ladestand muss unterhalb der eingestellten Startschwelle 45% sein, so funktionieren nunmal die Ladeschwellen bei ThinkPads... ;)
 
Zuletzt bearbeitet:
Okay. Interessant. Ich hab mal einen Gegentest gemacht, da bin ich gestern nicht drauf gekommen und hab einen Stopwert in die globale config Datei geschrieben und dann tlp (re)startet:

Code:
]$ sudo tlp start
Error: writing stop charge threshold for battery BAT0 failed.
TLP started using profile performance/AC (auto).

Interessant: Der Error kam wieder, aber der Wert wurde dennoch übernommen. Habs mit tlp-stat -b und --cdff ausgeben lassen. Hier meine Ausgabe von -s:

Code:
$ sudo tlp-stat -s -b
Passwort:
--- TLP 1.10.2 --------------------------------------------

+++ System Info
System         = LENOVO ThinkPad X200 7458AU2
BIOS           = coreboot CBET4000 25.06
EC firmware    = 0.0
OS release     = Void Linux
Kernel         = 6.18.38_1 #1 SMP PREEMPT_DYNAMIC Sun Jul  5 00:52:03 UTC 2026 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-6.18.38_1 root=UUID=***** ro loglevel=4
Init system    = sysvinit
Boot mode      = BIOS (CSM, Legacy)
Suspend mode   = s2idle shallow [deep]

+++ TLP Status
tlp            = enabled, last run: 13:00:11, 253 sec(s) ago
tlp-rdw        = enabled
tlp-pd         = installed, running
TLP profile    = balanced/BAT
Power source   = AC

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SANYO
/sys/class/power_supply/BAT0/model_name                     = 6Y14
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  56160 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  60500 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  35570 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Not charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     40 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     70 [%]

Charge                                                      =   58.8 [%]
Capacity                                                    =  107.7 [%]
 
@Ambrosius Taucht währenddessen eigentlich was im Kernellog (dmesg -w) auf, z.B. ein ACPI-Error?

Das X200 verwendet bei coreboot jedenfalls anderen ACPI-Code für die Charge-Thresholds als z.B. ein X230/T440p. Und ich bin jetzt doch ein wenig neugierig, woher dieser Fehler kommt. Da das aber nichts mehr mit TLP zu tun hat, können wir diese Diskussion bei Bedarf gerne in einen eigenen Thread auslagern oder per PN fortführen. :)

Auf jeden Fall scheinst Du ein aktuelles Coreboot zu haben, da ist nämlich der Patch für die Datenanlieferung in energy_* (sprich: mWh) enthalten
Laut dem nächsten Beitrag ist es coreboot 25.06, also eher noch ohne den verlinkten Patch. Das dürfte aber bestätigen, dass die älteren Generationen tatsächlich nicht vom PowerUnit-Bug betroffen waren.
 
Zuletzt bearbeitet:
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben