Linux Projektvorstellung: TLP – Linux Stromsparen

Linux Betriebssystem

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
13.291
Nachdem im Forum öfters nachgefragt wird, wie man Linux die Feinheiten des Stromsparens beibringt, habe ich mich vor einiger Zeit entschlossen, meine Skriptsammlung in eine allgemein benutzbare Form zu bringen. Das Ergebnis möchte ich Euch an dieser Stelle vorstellen.

Dokumentation ist auf der offiziellen Website https://linrunner.de/tlp/ zu finden (die Infos in unserem Wiki werden von mir nicht mehr gepflegt und sind veraltet).

Fragen und Probleme einfach hier im Thread posten.

Für die erste Analyse benötige ich bitte stets den kompletten Output von

Code:
sudo tlp-stat
Anmerkung: ich fordere oft in der weiteren Analyse Teilausgaben an - das sollt ihr jedoch nicht selbstständig tun! Immer zuerst die vollständige Ausgabe.

Bitte auch die FAQ beachten!

Rückmeldungen der Art "alles funktioniert" sind natürlich auch gern gesehen ... :cool:
 
Zuletzt bearbeitet:
Es läßt sich aus dem was wir bisher wissen nicht sagen, woran es lag. Akku-Entnahme wäre eine Möglichkeit, zickende Hardware eine andere.
Verstehe, den Akku entnehme ich doch hin und wieder da ich an dem Teil noch aktiv herumschraube und ich es natürlich nicht schrotten möchte 😃
Also sollte ich das nach jedem Akku entnehmen wieder händisch setzen? Wenn ich weiß das das notwendig ist, dann versuche ich das einfach jedes mal nach entnehmen nochmal auszuführen.

Werden diese Einstellungen eigentlich "am Gerät" und damit für jeden eingesetzten Akku gesetzt oder "am Akku" und damit für jeden Akku einzeln gesetzt? Oder ist das eine dumme Frage? 😂

Und werden diese Schwellen auch berücksichtigt wenn das Gerät aus ist, aber am Strom hängt?
Ich erkläre das an einem Beispiel. Nehmen wir mal an:
  • Du hast Ladeschwellen 75/80% konfiguriert und aktiv wie gehabt
  • Du möchtest einmalig für unterwegs die volle Akkukapazität nutzen und hast per tlp fullcharge temporär 96/100% gesetzt um voll zu laden
  • RESTORE_THRESHOLDS_ON_BAT=1 sorgt dann dafür, dass beim Abziehen des Netzteils automatisch wieder die konfigurierten Schwellen 75/80% aktiviert werden, so dass, wenn Du zurückkommst und das Netzteil wieder anschließt, nur bis 80% geladen wird
Statt automatisch mit RESTORE_THRESHOLDS_ON_BAT=1 geht das Rücksetzen natürlich auch manuell per tlp setcharge oder per Reboot (die Schwellen werden immer beim Systemstart gesetzt).
Beitrag automatisch zusammengeführt:

@harpo : die deutsche Anleitung im Wiki wird (von mir) schon länger nicht mehr gepflegt, besser in die offizielle Doku schauen.
Vielen Dank für das Beispiel, das hat sehr gut bebildert wofür das gut ist :)
Ja, ich selbst schaue auch immer in die offizielle. Aber da einige hier öfters meckern, wenn man ihnen mit englischen Artikeln und Anleitungen kommt und sich an dem speziell angefragten Punkt bislang nichts geändert hat, dachte ich, lieber gleich auf die deutsche Seite verweisen.
Dass die deutsche Wiki-Seite immer etwas länger brauchte bis sie aktualisiert wurde als die offizielle englische war mir auch bewusst. Aber gut zu wissen, dass die Wiki-Seite zu TLP momentan nicht mehr gepflegt wird, dann sollte man wirklich nicht mehr darauf verweisen.
Danke, nett gemeint aber mit Englisch hab ich glücklicherweise keine Probleme. Mit anderen Sprachen sieht es dagegen ganz anders aus 😂
 
Verstehe, den Akku entnehme ich doch hin und wieder da ich an dem Teil noch aktiv herumschraube und ich es natürlich nicht schrotten möchte 😃
Also sollte ich das nach jedem Akku entnehmen wieder händisch setzen? Wenn ich weiß das das notwendig ist, dann versuche ich das einfach jedes mal nach entnehmen nochmal auszuführen.
In Verbindung mit meiner editierten tlp.conf (s.o.) führe ich dann einfach "tlp start" aus und die Schwellen sind wieder drin.
Werden diese Einstellungen eigentlich "am Gerät" und damit für jeden eingesetzten Akku gesetzt oder "am Akku" und damit für jeden Akku einzeln gesetzt? Oder ist das eine dumme Frage? 😂
Das finde ich auch eine interessante Frage!
Ich habe ja mal irgendwo gelesen, dass es im Akku selbst gesetzt wird, aber warum sind die Schwellen dann nach Entnehmen und Wiedereinsetzen weg? Wobei ich mir einbilde, dass das nicht bei allen Akkus/Geräten so ist. Weiß da jemand mehr?
Und werden diese Schwellen auch berücksichtigt wenn das Gerät aus ist, aber am Strom hängt?
Das funktioniert bei mir am T400 problemlos.
 
Werden diese Einstellungen eigentlich "am Gerät" und damit für jeden eingesetzten Akku gesetzt oder "am Akku" und damit für jeden Akku einzeln gesetzt?
Ich bin über die Jahre zu dem Schluss gelangt, dass sie im EC gespeichert werden. Da ich aber nie zwei identische Akkus zur Hand hatte um die Gegenthese auszuprobieren, bin ich nicht ganz sicher. Auf jeden Fall überstehen sie bei neueren Geräten normalerweise das Entnehmen des Akkus (ohne Eingriff von TLP wohlgemerkt).

Den letzten Teil der Frage beantwortet dir ein Blick auf die Anzahl der Ladeschwellen-Parameter in tlp.conf.
Und werden diese Schwellen auch berücksichtigt wenn das Gerät aus ist, aber am Strom hängt?
Wie kommst Du auf die Idee, dass Ladeschwellen funktionieren könnten, ohne dass der ausgeschaltete Zustand (sowie der ohne laufendes OS) berücksichtigt wird?

 
Zuletzt bearbeitet:
Ich bin über die Jahre zu dem Schluss gelangt, dass sie im EC gespeichert werden. Da ich aber nie zwei identische Akkus zur Hand hatte um die Gegenthese auszuprobieren, bin ich nicht ganz sicher. Auf jeden Fall überstehen sie bei neueren Geräten normalerweise das Entnehmen des Akkus (ohne Eingriff von TLP wohlgemerkt).
Ich dürfte welche mit unterschiedlichen restkapazitäten da haben (kleine wie große), wenn du magst kann ich da mal was probieren^^ (nach Anleitung versteht sich^^)
Den letzten Teil der Frage beantwortet dir ein Blick auf die Anzahl der Ladeschwellen-Parameter in tlp.conf.
Da kann ich nicht ganz folgen, hab das file mal aufgemacht aber irgendwie stehe ich auf der Leitung^^
Dafür finde ich es faszinierend das TLP ganz offensichtlich zu funktionieren scheint, aber folgendes in der conf am anfang zu finden ist:
Code:
# ------------------------------------------------------------------------------
# tlp - Parameters for power saving

# Set to 0 to disable, 1 to enable TLP.
# Default: 1

#TLP_ENABLE=1

# Operation mode when no power supply can be detected: AC, BAT.
# Concerns some desktop and embedded hardware only.
# Default: <none>

#TLP_DEFAULT_MODE=AC

# Operation mode select: 0=depend on power source, 1=always use TLP_DEFAULT_MODE
# Note: use in conjunction with TLP_DEFAULT_MODE=BAT for BAT settings on AC.
# Default: 0

#TLP_PERSISTENT_DEFAULT=0
Das # vor TLP_ENABLE=1 spricht doch eher dafür das es nicht...aktiv ist...? 🤔
Wie kommst Du auf die Idee, dass Ladeschwellen funktionieren könnten, ohne dass der ausgeschaltete Zustand (sowie der ohne laufendes OS) berücksichtigt wird?

Keine Ahnung, da ich nicht so wirklich weiß (jetzt etwas mehr) wie das genau funktioniert, ist das natürlich schwer sich vorzustellen wie das funktioniert. Ich habe durchaus programmiererfahrung in diversen sprachen, aber hardware zu programmieren ist ja dann doch was anderes als eine webseite zu schreiben 😂
 
Das # vor TLP_ENABLE=1 spricht doch eher dafür das es nicht...aktiv ist...?
Die Frage, warum alles auskommentiert ist, wird sowohl am Anfang der Datei, als auch in der Doku behandelt. Bitte einfach mal nachlesen :D.
Keine Ahnung, da ich nicht so wirklich weiß (jetzt etwas mehr) wie das genau funktioniert, ist das natürlich schwer sich vorzustellen wie das funktioniert. Ich habe durchaus programmiererfahrung in diversen sprachen, aber hardware zu programmieren ist ja dann doch was anderes als eine webseite zu schreiben😂
Ich habe es vielleicht zu kompliziert formuliert: wenn Ladeschwellen nicht funktionieren würden, wenn das ThinkPads aus ist oder bevor ein OS geladen ist, dann fände ich sie ziemlich sinnlos. Besonders der erste Fall kommt sicherlich häufig im Leben eines ThinkPads vor.
 
Die Frage, warum alles auskommentiert ist, wird sowohl am Anfang der Datei, als auch in der Doku behandelt. Bitte einfach mal nachlesen :D.
Das sollte ich wohl wirklich mal machen 🤓
Ich habe es vielleicht zu kompliziert formuliert: wenn Ladeschwellen nicht funktionieren würden, wenn das ThinkPads aus ist oder bevor ein OS geladen ist, dann fände ich sie ziemlich sinnlos. Besonders der erste Fall kommt sicherlich häufig im Leben eines ThinkPads vor.
Ich hab das schon verstanden, eventuell hab ich zu seltsam geantwortet. Ich habe über diese Fälle halt mit begrenztem Wissen nachgedacht und natürlich würde es keinen Sinn ergeben wenn das nicht funktionieren würde. Da ich aber nicht wusste wie das überhaupt funktioniert mit diesen Ladeschwellen konnte ich mir keinen Reim darauf machen :)
 
Werden diese Einstellungen eigentlich "am Gerät" und damit für jeden eingesetzten Akku gesetzt oder "am Akku" und damit für jeden Akku einzeln gesetzt?
Den letzten Teil der Frage beantwortet dir ein Blick auf die Anzahl der Ladeschwellen-Parameter in tlp.conf.
Da kann ich nicht ganz folgen, hab das file mal aufgemacht aber irgendwie stehe ich auf der Leitung^^
Ich vermute mal ganz stark, dass linrunner hier die Frage von zacki06 anders interpretiert als er sie gemeint hat:
zacki06 meint vermutlich, ob bei unterschiedlichen ('externen') Wechselakkus, die abwechselnd am selben Gerät benutzt werden jeweils eigene (unterschiedliche) Ladeschwellen eingerichtet werden könn(t)en und die auch beim Zurück-Wechseln der Akkus für den jeweiligen erhalten bleiben. Linrunner bezog die Frage wahrscheinlich auf Geräte mit 2 Akkus - einem internen und einem externen/Wechselakku. Denn dafür sind die beiden Ladeschwellen-Einstellpaare für BAT0 (interner und/oder einziger Akku) und BAT1 (externer/Ultrabay- bzw. 2. Akku).
Ist aber nur meine Vermutung Eurer Vermutungen! ;)
 
Ich vermute mal ganz stark, dass linrunner hier die Frage von zacki06 anders interpretiert als er sie gemeint hat:
zacki06 meint vermutlich, ob bei unterschiedlichen ('externen') Wechselakkus, die abwechselnd am selben Gerät benutzt werden jeweils eigene (unterschiedliche) Ladeschwellen eingerichtet werden könn(t)en und die auch beim Zurück-Wechseln der Akkus für den jeweiligen erhalten bleiben. Linrunner bezog die Frage wahrscheinlich auf Geräte mit 2 Akkus - einem internen und einem externen/Wechselakku. Denn dafür sind die beiden Ladeschwellen-Einstellpaare für BAT0 (interner und/oder einziger Akku) und BAT1 (externer/Ultrabay- bzw. 2. Akku).
Ist aber nur meine Vermutung Eurer Vermutungen! ;)
Ja so rum wird ein Schuh draus. 😂
Das ist was ich gemeint habe und jetzt kann ich auch nachvollziehen wovon linrunner (vermutlich) gesprochen hat.

Danke 😃
 
zacki06 meint vermutlich, ob bei unterschiedlichen ('externen') Wechselakkus, die abwechselnd am selben Gerät benutzt werden jeweils eigene (unterschiedliche) Ladeschwellen eingerichtet werden könn(t)en und die auch beim Zurück-Wechseln der Akkus für den jeweiligen erhalten bleiben.
Ist mit TLP nicht möglich.
 
Endlich 😁

Am Sonntag hat Linus den Linux Kernel 5.17 freigegeben. Damit wird bei der Unterstützung der Akkufunktionen von ThinkPads ein lange ersehnter Meilenstein erreicht. Alles was für Ladeschwellen und Rekalibration bei ThinkPads ab Modelljahr 2011 (X220/T420 und neuere) gebraucht wird, ist jetzt im Mainline Kernel eingebaut. Sobald 5.17 in den Distributionen angekommen ist, hat das unsägliche Gefummel mit dem externen Kernelmodul acpi_call ein Ende.

Mit Kernel 5.17 und TLP 1.5.0 sieht die Ausgabe von tlp-stat -b so aus:

Code:
+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
...
/sys/class/power_supply/BAT0/charge_control_start_threshold =     96 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Have fun!
 
Endlich 😁

Am Sonntag hat Linus den Linux Kernel 5.17 freigegeben. Damit wird bei der Unterstützung der Akkufunktionen von ThinkPads ein lange ersehnter Meilenstein erreicht. Alles was für Ladeschwellen und Rekalibration bei ThinkPads ab Modelljahr 2011 (X220/T420 und neuere) gebraucht wird, ist jetzt im Mainline Kernel eingebaut. Sobald 5.17 in den Distributionen angekommen ist, hat das unsägliche Gefummel mit dem externen Kernelmodul acpi_call ein Ende.
Da schaue ich auf meinem T500 ja dann durch die Finger, oder nicht?
Wirst du für diese älteren Geräte weiter "fummeln" oder werden die dann irgendwann gedropt? 🤔

Aber grundsätzlich natürlich eine super Sache :)
 
@zacki06 : von den Modellen bis 2011 war hier nicht die Rede. Die nutzen ein anderes Kernelmodul (tp_smapi), dessen Funktionen wohl nicht mehr Eingang in den Mainline Kernel finden werden. Derzeit ist nicht geplant, den Code dafür aus TLP zu entfernen. Früher oder später wird diese Hardware aber auf dem Wertstoffhof landen. Ich hoffe mein Test-X200 hält noch etwas durch.

EDIT: vom Kernelentwickler, der die Patches für charge_behaviour eingereicht hat, habe ich erfahren, dass Coreboot fürs T400 die ACPI Calls für die Ladeschwellen der neueren Modelle unterstützt. Somit wird dafür kein tp_smapi mehr benötigt und man kann stattdessen den Mainline Kernel ab 4.19 nutzen. Wäre die Coreboot-Umstellung nicht ein Projekt für dein T500?
 
Zuletzt bearbeitet:
@zacki06 : von den Modellen bis 2011 war hier nicht die Rede. Die nutzen ein anderes Kernelmodul (tp_smapi), dessen Funktionen wohl nicht mehr Eingang in den Mainline Kernel finden werden. Derzeit ist nicht geplant, den Code dafür aus TLP zu entfernen. Früher oder später wird diese Hardware aber auf dem Wertstoffhof landen. Ich hoffe mein Test-X200 hält noch etwas durch.
Hoffentlich dauert das mit dem Wertstoffhof noch ein bisschen :)
EDIT: vom Kernelentwickler, der die Patches für charge_behaviour eingereicht hat, habe ich erfahren, dass Coreboot fürs T400 die ACPI Calls für die Ladeschwellen der neueren Modelle unterstützt. Somit wird dafür kein tp_smapi mehr benötigt und man kann stattdessen den Mainline Kernel ab 4.19 nutzen. Wäre die Coreboot-Umstellung nicht ein Projekt für dein T500?
Das ist in der Tat etwas worüber ich nachgedacht habe, allerdings das TLP bisher damit nicht funktioniert hätte war durchaus ein Grund mich da nicht weiter einzulesen. Scheint als wäre die Zeit gekommen das wieder auszugraben.
An der Stelle gleich noch eine weitere Frage, das T520 wäre davon ja auch betroffen weil "zu alt" oder? Und soweit ich weiß gibt's dafür kein coreboot^^ Das wäre nämlich mein Favorit das T500 zu ersetzen wenn das mal nicht mehr tut.
 
(y) unter Debian geht es auch:

Code:
root@mb:~# tlp-stat -s -b
--- TLP 1.5.0 --------------------------------------------

+++ System Info
System         = LENOVO ThinkPad T490s 20NXCTO1WW
BIOS           = N2JET98W (1.76 )
OS Release     = Debian GNU/Linux 11 (bullseye)
Kernel         = 5.17.0-trunk-amd64 #1 SMP PREEMPT Debian 5.17.1-1~exp1 (2022-03-29) x86_64
/proc/cmdline  = BOOT_IMAGE=/vmlinuz-5.17.0-trunk-amd64 root=/dev/mapper/VG-root ro quiet
Init system    = systemd v247 (247.3-7)
Boot mode      = UEFI

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 02:20:27 PM,    633 sec(s) ago
Mode           = AC
Power source   = AC

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
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                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 02DL014
/sys/class/power_supply/BAT0/cycle_count                    =     35
/sys/class/power_supply/BAT0/energy_full_design             =  57020 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  54150 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  38180 [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   =    100 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   70.5 [%]
Capacity                                                    =   95.0 [%]

Edit works:

Code:
Currently discharging battery BAT0:
voltage            =  11858 [mV]
remaining capacity =  37560 [mWh]
remaining percent  =     69 [%]
remaining time     =    398 [min]
power              =   5656 [mW]
state              = Discharging
force-discharge    = 1
Press Ctrl+C to cancel.
^C Cancelled.
root@mb:~# tlp fullcharge
Setting temporary charge thresholds for BAT0:
  start =  96
  stop  = 100 (no change)
Charging starts now, keep AC connected.
root@mb:~# tlp-stat -b
--- TLP 1.5.0 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
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                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 02DL014
/sys/class/power_supply/BAT0/cycle_count                    =     35
/sys/class/power_supply/BAT0/energy_full_design             =  57020 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  54150 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  37710 [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   =    100 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   69.6 [%]
Capacity                                                    =   95.0 [%]

root@mb:~# tlp-stat -p
--- TLP 1.5.0 --------------------------------------------

+++ Processor
CPU model      = Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  3900000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = balance_performance [HWP.EPP]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power

/sys/devices/system/cpu/cpu1..cpu7: omitted for clarity, use -v to show all

/sys/devices/system/cpu/intel_pstate/status            = active
/sys/devices/system/cpu/intel_pstate/min_perf_pct      =  10 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo          =   0
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost =   0
/sys/devices/system/cpu/intel_pstate/turbo_pct         =  65 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates       =  36

/sys/module/workqueue/parameters/power_efficient       = N
/proc/sys/kernel/nmi_watchdog                          = 0

+++ Platform Profile
/sys/firmware/acpi/platform_profile                    = balanced
/sys/firmware/acpi/platform_profile_choices            = low-power balanced performance
/sys/devices/platform/thinkpad_acpi/dytc_lapmode       = 0

root@mb:~# tlp-stat -p
--- TLP 1.5.0 --------------------------------------------

+++ Processor
CPU model      = Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  3900000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = balance_power [HWP.EPP]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power

/sys/devices/system/cpu/cpu1..cpu7: omitted for clarity, use -v to show all

/sys/devices/system/cpu/intel_pstate/status            = active
/sys/devices/system/cpu/intel_pstate/min_perf_pct      =  10 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo          =   0
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost =   1
/sys/devices/system/cpu/intel_pstate/turbo_pct         =  65 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates       =  36

/sys/module/workqueue/parameters/power_efficient       = N
/proc/sys/kernel/nmi_watchdog                          = 0

+++ Platform Profile
/sys/firmware/acpi/platform_profile                    = balanced
/sys/firmware/acpi/platform_profile_choices            = low-power balanced performance
/sys/devices/platform/thinkpad_acpi/dytc_lapmode       = 0
 
Zuletzt bearbeitet:
Hoffe mal trotz Suche (auch außerhalb des Forums) die Lösung zu meinem Anliegen nicht übersehen zu haben.

System: X230, coreboot (skulls 1.0.5) / Fedora 36 (KDE Plasma; Kernel 5.18), TLP 1.5

Habe TLP unter Fedora 36 (fast) gemäß Anleitung installiert (fast: die Hinweis-Box zu Fedora 36 überlesen und deshalb auch kernel-devel und akmod-tp_smapi installiert, aber akmod-tp_smapi mittlerweile wieder deinstalliert).

Mein Problem: Bei sudo tlp-stat werden mir die Werte für Charge bzw. Capacity nicht angezeigt (mit und ohne akmod-tp_smapi).

Wird dies unter Fedora (36) nicht unterstützt, habe ich durch das (De-)Installieren der zusätzlichen Pakete irgendwas verhunzt oder liegt die Ursache ggf. ganz woanders? Danke im Voraus!

Ausgabe (nur BAT1 angeschlossen, da ich diesen Akku gerade gezielt zu einem bestimmten Wert entladen wollte; betrifft aber auch BAT0):
Code:
--- TLP 1.5.0 --------------------------------------------

+++ Configured Settings:
defaults.conf L0004: TLP_ENABLE="1"
defaults.conf L0005: TLP_WARN_LEVEL="3"
defaults.conf L0006: TLP_PERSISTENT_DEFAULT="0"
defaults.conf L0007: DISK_IDLE_SECS_ON_AC="0"
defaults.conf L0008: DISK_IDLE_SECS_ON_BAT="2"
defaults.conf L0009: MAX_LOST_WORK_SECS_ON_AC="15"
defaults.conf L0010: MAX_LOST_WORK_SECS_ON_BAT="60"
defaults.conf L0011: CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance"
defaults.conf L0012: CPU_ENERGY_PERF_POLICY_ON_BAT="balance_power"
defaults.conf L0013: SCHED_POWERSAVE_ON_AC="0"
defaults.conf L0014: SCHED_POWERSAVE_ON_BAT="1"
defaults.conf L0015: NMI_WATCHDOG="0"
defaults.conf L0016: DISK_DEVICES="nvme0n1 sda"
defaults.conf L0017: DISK_APM_LEVEL_ON_AC="254 254"
defaults.conf L0018: DISK_APM_LEVEL_ON_BAT="128 128"
defaults.conf L0019: DISK_APM_CLASS_DENYLIST="usb ieee1394"
defaults.conf L0020: DISK_IOSCHED="keep keep"
defaults.conf L0021: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
defaults.conf L0022: SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"
defaults.conf L0023: AHCI_RUNTIME_PM_ON_AC="on"
defaults.conf L0024: AHCI_RUNTIME_PM_ON_BAT="auto"
defaults.conf L0025: AHCI_RUNTIME_PM_TIMEOUT="15"
defaults.conf L0026: PCIE_ASPM_ON_AC="default"
defaults.conf L0027: PCIE_ASPM_ON_BAT="default"
defaults.conf L0028: RADEON_DPM_PERF_LEVEL_ON_AC="auto"
defaults.conf L0029: RADEON_DPM_PERF_LEVEL_ON_BAT="auto"
defaults.conf L0030: RADEON_POWER_PROFILE_ON_AC="default"
defaults.conf L0031: RADEON_POWER_PROFILE_ON_BAT="default"
defaults.conf L0032: WIFI_PWR_ON_AC="off"
defaults.conf L0033: WIFI_PWR_ON_BAT="on"
defaults.conf L0034: WOL_DISABLE="Y"
defaults.conf L0035: SOUND_POWER_SAVE_ON_AC="1"
defaults.conf L0036: SOUND_POWER_SAVE_ON_BAT="1"
defaults.conf L0037: SOUND_POWER_SAVE_CONTROLLER="Y"
defaults.conf L0038: BAY_POWEROFF_ON_AC="0"
defaults.conf L0039: BAY_POWEROFF_ON_BAT="0"
defaults.conf L0040: BAY_DEVICE="sr0"
defaults.conf L0041: RUNTIME_PM_ON_AC="on"
defaults.conf L0042: RUNTIME_PM_ON_BAT="auto"
defaults.conf L0043: RUNTIME_PM_DRIVER_DENYLIST="mei_me nouveau radeon"
defaults.conf L0044: USB_AUTOSUSPEND="1"
defaults.conf L0045: USB_EXCLUDE_AUDIO="1"
defaults.conf L0046: USB_EXCLUDE_BTUSB="0"
defaults.conf L0047: USB_EXCLUDE_PHONE="0"
defaults.conf L0048: USB_EXCLUDE_PRINTER="1"
defaults.conf L0049: USB_EXCLUDE_WWAN="0"
defaults.conf L0050: USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN="0"
defaults.conf L0051: RESTORE_DEVICE_STATE_ON_STARTUP="0"
/etc/tlp.conf L0514: RESTORE_THRESHOLDS_ON_BAT="1"
defaults.conf L0053: NATACPI_ENABLE="1"
defaults.conf L0054: TPACPI_ENABLE="1"
defaults.conf L0055: TPSMAPI_ENABLE="1"
/etc/tlp.conf L0501: START_CHARGE_THRESH_BAT0="85"
/etc/tlp.conf L0502: STOP_CHARGE_THRESH_BAT0="90"
/etc/tlp.conf L0508: START_CHARGE_THRESH_BAT1="50"
/etc/tlp.conf L0509: STOP_CHARGE_THRESH_BAT1="60"

+++ System Info
System         = LENOVO ThinkPad X230 2325F51
BIOS           = CBET4000 4.16-1239-gd5c31acee4-dirty
OS Release     = Fedora Linux 36 (KDE Plasma)
Kernel         = 5.18.13-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 22 14:03:36 UTC 2022 x86_64
/proc/cmdline  = BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.18.13-200.fc36.x86_64 root=UUID=88e572b1-719b-4c19-a73a-96001dc1ca70 ro rootflags=subvol=root rd.luks.uuid=luks-2d69f423-f820-47c2-b98a-6e559b864057 rhgb iomem=relaxed noplymouth
Init system    = systemd
Boot mode      = BIOS (CSM, Legacy)
SELinux status = enabled (enforcing)

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 23:03:31,    404 sec(s) ago
Mode           = battery
Power source   = battery

+++ Processor
CPU model      = Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_cpufreq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = schedutil
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = conservative ondemand userspace powersave performance schedutil
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =  1200000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  3600000 [kHz]

/sys/devices/system/cpu/cpu1..cpu3: omitted for clarity, use -v to show all

/sys/devices/system/cpu/intel_pstate/status            = passive
/sys/devices/system/cpu/intel_pstate/min_perf_pct      =  33 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo          =   0
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost = (not available)
/sys/devices/system/cpu/intel_pstate/turbo_pct         =  29 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates       =  25

/sys/devices/system/cpu/cpu0/power/energy_perf_bias    =  8 (balance_power) [EPB]

/sys/module/workqueue/parameters/power_efficient       = N
/proc/sys/kernel/nmi_watchdog                          = 0

+++ Platform Profile
/sys/firmware/acpi/platform_profile                    = (not available)
/sys/firmware/acpi/platform_profile_choices            = (not available)
/sys/devices/platform/thinkpad_acpi/dytc_lapmode       = (not available)

+++ Temperatures
/proc/acpi/ibm/thermal = 46 0 0 0 0 0 0 0 [°C]
/proc/acpi/ibm/fan     =  2956 [/min]

+++ File System
/proc/sys/vm/laptop_mode               =     2
/proc/sys/vm/dirty_writeback_centisecs =  6000
/proc/sys/vm/dirty_expire_centisecs    =  6000
/proc/sys/vm/dirty_ratio               =    20
/proc/sys/vm/dirty_background_ratio    =    10

+++ Disks
Devices = nvme0n1 sda

/dev/nvme0n1: not present.

/dev/sda:
  Type       = SATA
  Disk ID    = ata-SanDisk_SSD_PLUS_120GB_185060801076
  Model      = SanDisk SSD PLUS 120GB              
  Firmware   = UE4500RL
  APM Level  = 128
  Status     = active/idle
  TRIM       = supported
  Host       = host0
  Scheduler  = mq-deadline kyber [bfq] none (multi queue)

  Runtime PM:
    /sys/block/sda/device/power/control = auto, autosuspend_delay_ms = 15000

  SMART info:
      5 Reallocated_Sector_Ct     =        0
      9 Power_On_Hours            =       47 [h]
     12 Power_Cycle_Count         =      298
    194 Temperature_Celsius       =       25 (Min/Max 9/41)  [°C]

+++ AHCI Link Power Management (ALPM) :: SATA Links
/sys/bus/pci/devices/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy = med_power_with_dipm  -- sda
/sys/bus/pci/devices/0000:00:1f.2/ata2/host1/scsi_host/host1/link_power_management_policy = med_power_with_dipm
/sys/bus/pci/devices/0000:00:1f.2/ata3/host2/scsi_host/host2/link_power_management_policy = med_power_with_dipm
/sys/bus/pci/devices/0000:00:1f.2/ata4/host3/scsi_host/host3/link_power_management_policy = med_power_with_dipm
/sys/bus/pci/devices/0000:00:1f.2/ata5/host4/scsi_host/host4/link_power_management_policy = med_power_with_dipm
/sys/bus/pci/devices/0000:00:1f.2/ata6/host5/scsi_host/host5/link_power_management_policy = med_power_with_dipm

+++ AHCI Port Runtime Power Management :: SATA/ATA Ports
/sys/bus/pci/devices/0000:00:1f.2/ata1/power/control     = auto  -- sda
/sys/bus/pci/devices/0000:00:1f.2/ata2/power/control     = auto
/sys/bus/pci/devices/0000:00:1f.2/ata3/power/control     = auto
/sys/bus/pci/devices/0000:00:1f.2/ata4/power/control     = auto
/sys/bus/pci/devices/0000:00:1f.2/ata5/power/control     = auto
/sys/bus/pci/devices/0000:00:1f.2/ata6/power/control     = auto

+++ Intel Graphics
/sys/class/drm/card0/device/driver           = i915

/sys/class/drm/card0/power/rc6_enable        =  3 (enabled + deep)
/sys/kernel/debug/dri/0/i915_fbc_status      = FBC disabled: disabled per module param or by default
/sys/module/i915/parameters/enable_psr       = -1 (use per-chip default)

/sys/class/drm/card0/gt_min_freq_mhz         =   350 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1250 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1250 [MHz]
/sys/class/drm/card0/gt_RPn_freq_mhz         =   350 [MHz] (GPU min)
/sys/class/drm/card0/gt_RP0_freq_mhz         =  1250 [MHz] (GPU max)

+++ Wireless
bluetooth = on
nfc       = none (no device)
wifi      = on
wwan      = none (no device)

hci0(btusb)                   : bluetooth, not connected
wlp2s0(iwlwifi)               : wifi, connected, power management = on

+++ Audio
/sys/module/snd_hda_intel/parameters/power_save            = 1
/sys/module/snd_hda_intel/parameters/power_save_controller = Y

+++ PCIe Active State Power Management
/sys/module/pcie_aspm/parameters/policy = [default] performance powersave powersupersave

+++ PCIe Runtime Power Management
Enable devices    = (disabled)
Disable devices   = (disabled)
Device denylist   = (disabled)
Driver denylist   = mei_me nouveau radeon

/sys/bus/pci/devices/0000:00:00.0/power/control = auto (0x060000, Host bridge, ivb_uncore)
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000, VGA compatible controller, i915)
/sys/bus/pci/devices/0000:00:04.0/power/control = auto (0x118000, Signal processing controller, no driver)
/sys/bus/pci/devices/0000:00:14.0/power/control = auto (0x0c0330, USB controller, xhci_hcd)
/sys/bus/pci/devices/0000:00:16.0/power/control = auto (0x078000, Communication controller, no driver)
/sys/bus/pci/devices/0000:00:19.0/power/control = auto (0x020000, Ethernet controller, e1000e)
/sys/bus/pci/devices/0000:00:1a.0/power/control = auto (0x0c0320, USB controller, ehci-pci)
/sys/bus/pci/devices/0000:00:1b.0/power/control = auto (0x040300, Audio device, snd_hda_intel)
/sys/bus/pci/devices/0000:00:1c.0/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1c.1/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1c.2/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:1d.0/power/control = auto (0x0c0320, USB controller, ehci-pci)
/sys/bus/pci/devices/0000:00:1f.0/power/control = auto (0x060100, ISA bridge, lpc_ich)
/sys/bus/pci/devices/0000:00:1f.2/power/control = auto (0x010601, SATA controller, ahci)
/sys/bus/pci/devices/0000:00:1f.3/power/control = auto (0x0c0500, SMBus, i801_smbus)
/sys/bus/pci/devices/0000:00:1f.6/power/control = auto (0x118000, Signal processing controller, no driver)
/sys/bus/pci/devices/0000:01:00.0/power/control = auto (0x080501, SD Host controller, sdhci-pci)
/sys/bus/pci/devices/0000:02:00.0/power/control = auto (0x028000, Network controller, iwlwifi)

+++ USB
Autosuspend       = enabled
Device allowlist  = (not configured)
Device denylist   = (not configured)
Exclude audio     = enabled
Exclude bluetooth = disabled
Exclude phones    = disabled
Exclude printers  = enabled
Exclude WWAN      = disabled

Bus 002 Device 003 ID 08e6:34ec control = auto, autosuspend_delay_ms = 2000 -- Gemalto (was Gemplus) Compact Smart Card Reader Writer (usbfs)
Bus 002 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =    0 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 002 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =    0 -- Linux Foundation 2.0 root hub (hub)
Bus 001 Device 004 ID 04f2:b2eb control = auto, autosuspend_delay_ms = 2000 -- Chicony Electronics Co., Ltd Integrated Camera (uvcvideo)
Bus 001 Device 003 ID 8087:0029 control = auto, autosuspend_delay_ms = 2000 -- Intel Corp. AX200 Bluetooth (btusb)
Bus 001 Device 005 ID ffff:5678 control = auto, autosuspend_delay_ms = 2000 -- USB Disk 2.0 (usb-storage)
Bus 001 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =    0 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =    0 -- Linux Foundation 2.0 root hub (hub)
Bus 004 Device 001 ID 1d6b:0003 control = auto, autosuspend_delay_ms =    0 -- Linux Foundation 3.0 root hub (hub)
Bus 003 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =    0 -- Linux Foundation 2.0 root hub (hub)

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

+++ ThinkPad Battery Status: BAT1 (Ultrabay / Slice / Replaceable)
/sys/class/power_supply/BAT1/manufacturer                   = SONY
/sys/class/power_supply/BAT1/model_name                     = 42T4967
/sys/class/power_supply/BAT1/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT1/status                         = Discharging

/sys/class/power_supply/BAT1/charge_control_start_threshold =     50 [%]
/sys/class/power_supply/BAT1/charge_control_end_threshold   =     60 [%]
/sys/class/power_supply/BAT1/charge_behaviour               = [auto]
 
Zuletzt bearbeitet:
@iks230 ich hab ein ähnliches Setup, nur das ich kein Coreboot sondern noch ein Lenovo Bios habe.
Ich hänge mal den output von
Bash:
sudo tlp-stat -b
an:
Code:
--- TLP 1.5.0 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
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                     = 45N1175
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  85860 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  74370 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  58680 [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 =     75 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     80 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   78.9 [%]
Capacity                                                    =   86.6 [%]

Ob das an Coreboot liegt kann ich nicht sagen, aber ich habe wie gesagt auch Fedora 36 (KDE) laufen und da wird das ganz normal am Ende ausgegeben 🤔
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben