Linux Projektvorstellung: TLP – Linux Stromsparen

Linux Betriebssystem

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
14.044
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!

Thema KI: Anfragen à la "die KI hat gesagt, es hat aber nicht funktioniert. Was meinst Du dazu?" werden nicht supported. Ich werde "AI Slop" nicht kommentieren und will auch in diesem Thread keinerlei halluzinierte KI-Inhalte sehen, die dann später per Suchmaschine (oder wiederum KI) auffindbar sind!

Rückmeldungen der Art "alles funktioniert" sind natürlich auch gern gesehen ... :cool:
 
Zuletzt bearbeitet:
Nicht Werbeeinblendung im Sinne von Advertisement. Sondern Hinweis im Sinne von hey deine Archtektur unterstützt eine zusätzhliche feingranulare Regelung von Lastverschiebung auf spezifische Cores bei geringer Auslastung mit nem kurzen!! Hinweis auf die manpage oder das Github. Es ist immerhin ein offizielles Intel-Tool für deren aktuelle CPU-Architekturen die sich seit circa 3 Jahren mehr und mehr verbreiten. Der Daemon ist in den Repos von großen Distributionen wie Ubuntu, Debian oder Fedora inzwischen verfügbar.

Du hast mit TLP das Tool das Energie-Spar-Tool welches beinahe auf jedem Linux läuft.

Es könnte für den ein oder anderen ein Hinweis sein der Meteor/Panther/Lunar hat sich das mal anzuschauen. Die kommentierten Configs des Tools sind so schlimm nicht zu verstehen. Die Manpages sind so furchtbar nicht. Man könnte evtl. sogar über den Wert intel_lpmd_control in einer tlp.conf die paramter aus intel_lpmd_config.xml schalten und somit Paramter des intel low power daemon an einzelne betriebszustände von tlp binden.

Ja es sollte definitiv aus dem User-Space in den Kernel. So wie ich das lese versucht man das auch

Ja ich habe grob verstanden was das macht ich kann über config Schwellenwerte definieren was für mich geringe Auslastung ist und dann Aufgaben während der geringen Auslastung gezielt auf die von mir festgelegten energieffizenten CPU-Kernen verlagern um Stromverbrauch zu senken. Gleichzeitig kann ich das für drei Betriebszustände tun Performance balance und Powersaver.

Danke für den Hinweis in der TLP-Doku :) Das hab ich auch voll übersehen.


@linrunner
ich habe weiter mit lpmd experimentiert. Tatsächlich glaube ich das du in deiner FAQ ändern müsstest. Es kommt u.U. zu gegenseitigen Beinflussungen. Lpmd kann ebenfalls epp profile setzen und macht das u.a. sehr dynamisch. Ich kann es so feingranular einstellen das es je nach CPU Last zwischen Power, Balance-Power uswm. switcht. Das ist m.E. ein Konflikt zu TLP wenn man diese da auch "fix" setzt. Keine Ahnung ob man das dann in der Praxis merken wird wenn da zwei Tools gegeneinander arbeiten aber sinnvoll ist es wohl nicht.



Code:
cat /etc/intel_lpmd/intel_lpmd_config_F6_M170.xml
<?xml version="1.0"?>

<!--
Specifies the configuration data
for Intel Energy Optimizer (LPMD) daemon
Proxy WLT enabled with MTL specific epp values.
-->

<Configuration>
    <!--
        CPU format example: 1,2,4..6,8-10
    -->
    <lp_mode_cpus>12-13</lp_mode_cpus>

    <!--
        Mode values
        0: Cgroup v2
        1: Cgroup v2 isolate
        2: CPU idle injection
    -->
    <Mode>0</Mode>

    <!--
        Default behavior when Performance power setting is used
        -1: force off. (Never enter Low Power Mode)
         1: force on. (Always stay in Low Power Mode)
         0: auto. (opportunistic Low Power Mode enter/exit)
    -->
    <PerformanceDef>-1</PerformanceDef>

    <!--
        Default behavior when Balanced power setting is used
        -1: force off. (Never enter Low Power Mode)
         1: force on. (Always stay in Low Power Mode)
         0: auto. (opportunistic Low Power Mode enter/exit)
    -->
    <BalancedDef>0</BalancedDef>

    <!--
        Default behavior when Power saver setting is used
        -1: force off. (Never enter Low Power Mode)
         1: force on. (Always stay in Low Power Mode)
         0: auto. (opportunistic Low Power Mode enter/exit)
    -->
    <PowersaverDef>1</PowersaverDef>

    <!--
        Use HFI LPM hints
        0 : No
        1 : Yes
    -->
    <HfiLpmEnable>0</HfiLpmEnable>

    <!--
        Use WLT hints
        0 : No
        1 : Yes
    -->
    <WLTHintEnable>0</WLTHintEnable>

    <!--
        Use WLT software proxy hints
        0 : No
        1 : Yes
    -->
    <WLTProxyEnable>0</WLTProxyEnable>

    <!--
        Use HFI SUV hints
        0 : No
        1 : Yes
    -->
    <HfiSuvEnable>0</HfiSuvEnable>

    <!--
        System utilization threshold to enter LP mode
        from 0 - 100
        clear both util_entry_threshold and util_exit_threshold to disable util monitor
    -->
    <util_entry_threshold>10</util_entry_threshold>

    <!--
        System utilization threshold to exit LP mode
        from 0 - 100
        clear both util_entry_threshold and util_exit_threshold to disable util monitor
    -->
    <util_exit_threshold>40</util_exit_threshold>

    <!--
        Entry delay. Minimum delay in non Low Power mode to
        enter LPM mode.
    -->
    <EntryDelayMS>50</EntryDelayMS>

    <!--
        Exit delay. Minimum delay in Low Power mode to
        exit LPM mode.
    -->
    <ExitDelayMS>10</ExitDelayMS>

    <!--
        Lowest hysteresis average in-LP-mode time in msec to enter LP mode
        0: to disable hysteresis support
    -->
    <EntryHystMS>100</EntryHystMS>

    <!--
        Lowest hysteresis average out-of-LP-mode time in msec to exit LP mode
        0: to disable hysteresis support
    -->
    <ExitHystMS>50</ExitHystMS>

    <!--
        Ignore ITMT setting during LP-mode enter/exit
        0: disable ITMT upon LP-mode enter and re-enable ITMT upon LP-mode exit
        1: do not touch ITMT setting during LP-mode enter/exit
    -->
    <IgnoreITMT>0</IgnoreITMT>

    <States>
        <CPUFamily> 6 </CPUFamily>
        <CPUModel> 170 </CPUModel>
        <CPUConfig> * </CPUConfig>
    <State>
        <ID> 1 </ID> <!-- no significance. number can be anything -->
        <Name> WLT_IDLE </Name>
        <WLTType> 0 </WLTType> <!-- WLTType mapped to Name -->
        <EPP> 255 </EPP>
        <EPB> 15 </EPB>
        <MinPollInterval>2000</MinPollInterval>
        <ITMTState> -1 </ITMTState>
        <IRQMigrate> -1 </IRQMigrate>
    </State>
    <State>
        <ID> 2 </ID>
        <Name> WLT_BATTERY_LIFE </Name>
        <WLTType> 1 </WLTType>
        <EPP> 179 </EPP>
        <EPB> 6 </EPB>
        <MinPollInterval>2000</MinPollInterval>
        <ITMTState> -1 </ITMTState>
        <IRQMigrate> -1 </IRQMigrate>
    </State>
    <State>
        <ID> 3 </ID>
        <Name> WLT_SUSTAINED </Name>
        <WLTType> 2 </WLTType>
        <EPP> 179 </EPP>
        <EPB> 6 </EPB>
        <MinPollInterval>2000</MinPollInterval>
        <ITMTState> -1 </ITMTState>
        <IRQMigrate> -1 </IRQMigrate>
    </State>
    <State>
        <ID> 4 </ID>
        <Name> WLT_BURSTY </Name>
        <WLTType> 3 </WLTType>
        <EPP> 179 </EPP>
        <EPB> 4 </EPB>
        <MinPollInterval>2000</MinPollInterval>
        <ITMTState> -1 </ITMTState>
        <IRQMigrate> -1 </IRQMigrate>
    </State>
</States>

</Configuration>

Ich kann das simulieren indem ich z.b. manuell balance power setze

anton@thickpad:~$ echo "balance_power" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference
[sudo: authenticate] Passwort:
balance_power
anton@thickpad:~$

und sich lpmd den wert dann wieder zurück ändert wenn ich die last auf die cpu erhöhe :). also definitiv kontraproduktiv wenn man nicht genau überlegt was man da tut.

Also das ist hoch!!!!! Interessant. Mir war nicht klar wie ich die Zahlenwerte EPP in Einklang mit z.b. power oder so bringe oder wie die dokumentiert sind. Ich hab jetzt ein Python-Skript geschrieben das einfach 0-255 durchprobiert wann Values zu EPP Werten wie balance_performance werden.

Ich stelle vor den EPP Value Mapper :D.

Code:
cat epp_mapper.py
#!/usr/bin/env python3
"""EPP Value Mapper - Findet welcher numerische Wert welchem EPP-String entspricht"""

import subprocess
import time
import sys

EPP_PATH = "/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference"
EPP_ALL_PATH = "/sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference"

def read_epp():
    with open(EPP_PATH, "r") as f:
        return f.read().strip()

def write_epp(value):
    result = subprocess.run(
        f'echo "{value}" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference > /dev/null',
        shell=True
    )
    return result.returncode == 0

def main():
    print("=== EPP Value Mapper ===")
    print("Testet numerische Werte 0-255 und zeigt welchem String sie entsprechen\n")

    # Zuerst verfügbare Strings anzeigen
    try:
        with open("/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences", "r") as f:
            available = f.read().strip()
        print(f"Verfügbare EPP-Werte: {available}\n")
    except:
        print("Konnte verfügbare Werte nicht lesen\n")

    # Original-Wert merken
    original = read_epp()
    print(f"Aktueller EPP-Wert: {original}\n")

    # Werte testen - nur Grenzbereiche und markante Werte
    test_values = list(range(0, 256, 1))

    results = {}
    last_string = None
    boundaries = {}

    print("Scanne alle Werte 0-255...")
    for val in test_values:
        write_epp(val)
        time.sleep(0.05)
        current_string = read_epp()

        if current_string != last_string:
            boundaries[val] = current_string
            last_string = current_string

        results[val] = current_string

    # Original wiederherstellen
    write_epp(original)

    print("\n=== ERGEBNIS: EPP Mapping ===")
    print(f"{'Bereich':<20} {'EPP-String':<25}")
    print("-" * 45)

    prev_val = 0
    prev_string = results[0]
    for val in range(1, 256):
        if results[val] != prev_string or val == 255:
            end_val = val - 1 if results[val] != prev_string else val
            print(f"{prev_val}-{end_val:<18} {prev_string}")
            prev_val = val
            prev_string = results[val]

    print("\n=== Grenzen ===")
    for boundary_val, string in boundaries.items():
        print(f"  Ab Wert {boundary_val:>3}: {string}")

    # Typische lpmd-Werte
    print("\n=== Deine lpmd Config-Werte ===")
    for val in [255, 178, 128, 191, 64, 0]:
        if val in results:
            print(f"  EPP {val:>3} = '{results[val]}'")

if __name__ == "__main__":
    main()

Was können wir? Hier beispielsweise auf einem Meteorlake System T14G5


Code:
sudo python3 epp_mapper.py
[sudo: authenticate] Passwort:  
=== EPP Value Mapper ===
Testet numerische Werte 0-255 und zeigt welchem String sie entsprechen

Verfügbare EPP-Werte: default performance balance_performance balance_power power

Aktueller EPP-Wert: power

Scanne alle Werte 0-255...

=== ERGEBNIS: EPP Mapping ===
Bereich              EPP-String        
---------------------------------------------
0-0                  default
1-1                  178
2-2                  2
3-3                  191
4-4                  4
5-5                  5
6-6                  6
7-7                  7
8-8                  8
9-9                  9
10-10                 10
11-11                 11
12-12                 12
13-13                 13
14-14                 14
15-15                 15
16-16                 performance
17-17                 17
18-18                 18
19-19                 19
20-20                 20
21-21                 21
22-22                 22
23-23                 23
24-24                 24
25-25                 25
26-26                 26
27-27                 27
28-28                 28
29-29                 29
30-30                 30
31-31                 31
32-32                 32
33-33                 33
34-34                 34
35-35                 35
36-36                 36
37-37                 37
38-38                 38
39-39                 39
40-40                 40
41-41                 41
42-42                 42
43-43                 43
44-44                 44
45-45                 45
46-46                 46
47-47                 47
48-48                 48
49-49                 49
50-50                 50
51-51                 51
52-52                 52
53-53                 53
54-54                 54
55-55                 55
56-56                 56
57-57                 57
58-58                 58
59-59                 59
60-60                 60
61-61                 61
62-62                 62
63-63                 63
64-64                 balance_performance
65-65                 65
66-66                 66
67-67                 67
68-68                 68
69-69                 69
70-70                 70
71-71                 71
72-72                 72
73-73                 73
74-74                 74
75-75                 75
76-76                 76
77-77                 77
78-78                 78
79-79                 79
80-80                 80
81-81                 81
82-82                 82
83-83                 83
84-84                 84
85-85                 85
86-86                 86
87-87                 87
88-88                 88
89-89                 89
90-90                 90
91-91                 91
92-92                 92
93-93                 93
94-94                 94
95-95                 95
96-96                 96
97-97                 97
98-98                 98
99-99                 99
100-100                100
101-101                101
102-102                102
103-103                103
104-104                104
105-105                105
106-106                106
107-107                107
108-108                108
109-109                109
110-110                110
111-111                111
112-112                112
113-113                113
114-114                114
115-115                115
116-116                116
117-117                117
118-118                118
119-119                119
120-120                120
121-121                121
122-122                122
123-123                123
124-124                124
125-125                125
126-126                126
127-127                127
128-128                128
129-129                129
130-130                130
131-131                131
132-132                132
133-133                133
134-134                134
135-135                135
136-136                136
137-137                137
138-138                138
139-139                139
140-140                140
141-141                141
142-142                142
143-143                143
144-144                144
145-145                145
146-146                146
147-147                147
148-148                148
149-149                149
150-150                150
151-151                151
152-152                152
153-153                153
154-154                154
155-155                155
156-156                156
157-157                157
158-158                158
159-159                159
160-160                160
161-161                161
162-162                162
163-163                163
164-164                164
165-165                165
166-166                166
167-167                167
168-168                168
169-169                169
170-170                170
171-171                171
172-172                172
173-173                173
174-174                174
175-175                175
176-176                176
177-177                177
178-178                178
179-179                balance_power
180-180                180
181-181                181
182-182                182
183-183                183
184-184                184
185-185                185
186-186                186
187-187                187
188-188                188
189-189                189
190-190                190
191-191                191
192-192                192
193-193                193
194-194                194
195-195                195
196-196                196
197-197                197
198-198                198
199-199                199
200-200                200
201-201                201
202-202                202
203-203                203
204-204                204
205-205                205
206-206                206
207-207                207
208-208                208
209-209                209
210-210                210
211-211                211
212-212                212
213-213                213
214-214                214
215-215                215
216-216                216
217-217                217
218-218                218
219-219                219
220-220                220
221-221                221
222-222                222
223-223                223
224-224                224
225-225                225
226-226                226
227-227                227
228-228                228
229-229                229
230-230                230
231-231                231
232-232                232
233-233                233
234-234                234
235-235                235
236-236                236
237-237                237
238-238                238
239-239                239
240-240                240
241-241                241
242-242                242
243-243                243
244-244                244
245-245                245
246-246                246
247-247                247
248-248                248
249-249                249
250-250                250
251-251                251
252-252                252
253-253                253
254-254                254

=== Grenzen ===
  Ab Wert   0: default
  Ab Wert  16: performance
  Ab Wert  64: balance_performance
  Ab Wert 179: balance_power
  Ab Wert 255: power

Was können wir aus der Ausführung des Skript lernen um u.a. LPMD korrekte! EPP-Werte mitzugeben?


0default
16performance
64balance_performance
179balance_power
255power


Was müssen wir also tun? Ja Configs anpassen wie immer..

WLT_IDLE255powerKomplett idle → max. sparen
WLT_BATTERY_LIFE179powerLeichte Last → trotzdem max. sparen
WLT_SUSTAINED179balance_powerDauerlast → sparsam aber reaktiv
WLT_BURSTY16 oder 64performanceKurze Lastspitzen → volle Power bzw. viel Power erlaubt, springt mir zu schnell mal mit Hysterese-Werten experimentieren aktuell auch auf 179.


Was könnte das Ziel sein? Lastabhängige EPP Regelung ohne selber an Reglern drehen zu müssen für ein reaktives aber auch energiesparsames System.

Also m.E. ist da durchaus Potential. Nach aktueller Berichterstattung will Intel das ja in den Kernel bekommen spätestens dann wirds "scharf". Sie habens immerhin schon ins Review auf die Kernel Mailinglist geschossen: https://lore.kernel.org/platform-driver-x86/cover.1778560215.git.m.wieczorretman@pm.me/

@linrunner
ist diese Meldung im Journal aktuell gewollt?
[42924.184647] tlp: vm.laptop_mode is deprecated. Ignoring setting.

System:
- TLP 1.10.1- Kubuntu 26.04- Kernel: Linux thickpad 7.0.0-15-generic x86_64
ich hab mal folgende Werte gesetzt da ich diese damit in Verbindung bringe, macht aber keine Änderung an der o.g. Meldung:

Code:
anton@thickpad:~$ cat /etc/tlp.d/20-laptop-mode.conf
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=0
MAX_LOST_WORK_SECS_ON_AC=0
MAX_LOST_WORK_SECS_ON_BAT=0
 
Zuletzt bearbeitet:
Beeinflussen die Ladeschwellen eines Akkus beim Kalibrieren auch den zweiten Akku? Hat Lenovo da in der EC-Firmware geschlampt? :unsure:

Ich habe hier ein T450s, bei dem ich tlp recalibrate BAT0 ausgeführt habe. Daraufhin wurden die Ladeschwellen für BAT0 korrekterweise auf 96/100 zurückgesetzt und force-discharge gestartet. Die Ladeschwellen für BAT1 blieben dabei natürlich unverändert. Der Akku wurde korrekt bis 0% entladen. Ich staunte aber nicht schlecht, als das Aufladen später im laufenden System bei 79% stoppte und plötzlich der andere Akku geladen wurde!

Code:
--- TLP 1.10.1 --------------------------------------------

+++ System Info
System         = LENOVO ThinkPad T450s 20BW000EGE
BIOS           = LENOVO JBET73WW (1.37 )
EC firmware    = 1.4
OS release     = Ubuntu 25.10
Kernel         = 6.17.0-22-generic #22-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 12:04:44 UTC 2026 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-6.17.0-22-generic root=UUID=b27dba83-4aa1-4111-9c68-914e6a834d5d ro iomem=relaxed quiet splash vt.handoff=7
Init system    = systemd 257
Boot mode      = UEFI
Suspend mode   = s2idle [deep]

+++ TLP Status
tlp            = enabled, last run: 21:30:08, 310 sec(s) ago
tlp-rdw        = enabled
tlp-pd         = enabled, running
TLP profile    = balanced/BAT
Power source   = AC

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, chargeonce, discharge, recalibrate
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, force-discharge)
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                   = SONY
/sys/class/power_supply/BAT0/model_name                     = 45N1111
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  23200 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  20650 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  16420 [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 =     96 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   79.5 [%]
Capacity                                                    =   89.0 [%]

+++ ThinkPad Battery Status: BAT1 (Removable)
/sys/class/power_supply/BAT1/manufacturer                   = LGC
/sys/class/power_supply/BAT1/model_name                     = 45N1127
/sys/class/power_supply/BAT1/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT1/energy_full_design             =  23480 [mWh]
/sys/class/power_supply/BAT1/energy_full                    =  15160 [mWh]
/sys/class/power_supply/BAT1/energy_now                     =   5170 [mWh]
/sys/class/power_supply/BAT1/power_now                      =  20080 [mW]
/sys/class/power_supply/BAT1/status                         = Charging

/sys/class/power_supply/BAT1/charge_control_start_threshold =     50 [%]
/sys/class/power_supply/BAT1/charge_control_end_threshold   =     80 [%]
/sys/class/power_supply/BAT1/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   34.1 [%]
Capacity                                                    =   64.6 [%]

+++ Charge total                                            =   60.3 [%]

(Bitte die alte Version von Ubuntu ignorieren, ich hatte gerade nichts anderes auf der Test-SSD.)

Ich setze die Ladeschwellen nun einmal für beide Akkus manuell zurück, bevor ich es starte. Mal sehen, ob es dann durchläuft…

[EDIT] Ich habe danach ein tlp recalibrate BAT1 nachgeworfen, woraufhin die Ladeschwellen für BAT1 auf 96/100 zurückgesetzt wurden. Nach dem vollständigen Entladen und Laden von BAT1 startete bei BAT0 plötzlich der Ladevorgang für die fehlenden 20% wieder. 🙃

Nach einem erneuten tlp recalibrate BAT0 scheint es diesmal aber durchzulaufen, er ist nach einem vollständigen force-discharge nun wieder bei 85% und lädt höchstwahrscheinlich endlich voll. Ich gehe weiterhin stark davon aus, dass die Ladeschwellen des anderen Akkus ein Kalibrieren bei dieser Generation verhindern. Man muss wohl zwingend die Limits für beide Akkus resetten, damit es wie gewünscht klappt. (Wäre das was für die FAQ?)
 
Zuletzt bearbeitet:
Hast Du die FAQ denn auch gelesen?? Ertappt! ;)
Zugegeben, ich habe sie nur mit Strg+F überflogen und "Fullcharge" war definitiv nicht in meiner Suchliste. 🤥

Sorry, ich gelobe Besserung! Aber immerhin ist jetzt öffentlich dokumentiert, dass das T450s genauso eine bescheidene EC-Logik hat. :D

Und fürs nächste Mal merke ich mir: Externen Akku sicherheitshalber vor dem Kalibrieren des internen Akkus entfernen, wenn der externe nicht auf 100% steht.
 
Zuletzt bearbeitet:
Sorry für leichtes Offtopic, aber waren die früheren ThinkPad-Generationen mit den Slice/Ultrabay Akkus diesbezüglich eigentlich auch so "kreativ"? Oder betrifft das erst die Generation ab xx40?

Irgendwie habe ich das Gefühl, dass Lenovo bei Dual-Battery über die Jahre immer mehr kaputt optimiert hat. Spätere Generationen haben zur Krönung doch teilweise zuerst den internen Akku entladen, wodurch das Power Bridge System gänzlich nutzlos wurde...
 
ist diese Meldung im Journal aktuell gewollt?
[42924.184647] tlp: vm.laptop_mode is deprecated. Ignoring setting.
Die ist vom Kernel gewollt, alle Anderen wollten sie nicht und können sie getrost ignorieren. Für 1.11 hab ich mich schon drum gekümmert.

Eine herzliche Bitte noch: mach zum Thema lpmd einen eigenen Thread auf und verlagere deine interessanten(!) Infos dorthin. Das wird mir hier zu unübersichtlich. Deine Ergänzung hatte ich garnicht wahrgenommen.
 
Zuletzt bearbeitet:
Bei den offiziellen Paketen der Distributionen für TLP 1.10.1 hat sich wieder etwas getan:
  • Debian Sid: Pakete sind in den offiziellen Repositories verfügbar, Backports für Trixie werden folgen
  • openSUSE Tumbleweed: Pakete sind in den offiziellen Repositories verfügbar
 
Für Fedora gab’s im April ein Upate (Fedora 43 --> 44). Und da gab’s gleich mal einen Paketkonflikt zw. tlp und tuned-ppd; letzteres ist der neue Batterie-Manager von Gnome, "Beide Pakete versuchten, dieselben DBus-Service-Dateien unter /usr/share/dbus-1/ zu beanspruchen.". Zitat ist von hier: https://sbsland.me/2026/05/03/upgrade-fedora-workstation-44/ ; weitere Details auch unter: https://fedoramagazine.org/whats-new-fedora-workstation-44/ in den Kommentaren.

Ich hab tlp vor dem Upgrade deinstalliert erstmal; den oberen Lade-Treshold kann man nun unter Gnome - Settings - Power - Preserve Battery Health aktivieren, allerdings nur fix 80% offenbar.
 
@einzelheinz Danke, dass Du diesen unreflektierten Nonsens jetzt auch hier vervielfältigst :(.

Es ist seit vielen Jahren so, dass TLP nicht zusammen mit dem Standard-Powermanagement installiert werden kann. In Fedora ist das leider erst seit 1.9.1 im offiziellen Paket umgesetzt. Folge meiner Anleitung und das --allowerasing sorgt dafür, dass tuned und tuned-ppd sauber deinstalliert werden.
 
Bei den offiziellen Paketen der Distributionen für TLP 1.10.1 hat sich wieder etwas getan:
  • Debian Sid: Pakete sind in den offiziellen Repositories verfügbar, Backports für Trixie werden folgen
  • openSUSE Tumbleweed: Pakete sind in den offiziellen Repositories verfügbar

Testing und der backport sind unterwegs:

Code:
rmadison tlp

tlp        | 1.9.1-1~bpo13+1  | stable-backports           | source, all
tlp        | 1.10.1-1~bpo13+1 | buildd-stable-backports    | source, all
tlp        | 1.10.1-1~bpo13+1 | stable-backports           | source, all
tlp        | 1.10.1-1         | testing                    | source, all
tlp        | 1.10.1-1         | unstable                   | source, all
Beitrag automatisch zusammengeführt:

Da ist er schon:
Code:
apt policy tlp
tlp:
  Installed: 1.11.0~alpha.0+20260520-1
  Candidate: 1.11.0~alpha.0+20260520-1
  Version table:
 *** 1.11.0~alpha.0+20260520-1 100
        100 /var/lib/dpkg/status
     1.10.1-1~bpo13+1 500
        100 http://deb.debian.org/debian trixie-backports/main amd64 Packages
        100 http://deb.debian.org/debian trixie-backports/main i386 Packages
     1.8.0-1 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages
        500 http://deb.debian.org/debian trixie/main i386 Packages
 
Zuletzt bearbeitet:
Arch Linux: hat heute auch aufgeschlossen und führt jetzt 1.10.1 in den offiziellen Repos.

Ubuntu: nachdem ich die Maintainer "geweckt" habe, ist Version 1.10.1 von Debian Unstable nach 26.10 (proposed) gesynct worden. Für 26.04 kommt sie nicht nachträglich. Wenn ihr bei Ubuntu/Mint aktuell bleiben wollt, empfehle ich das PPA zu nutzen.
 
Ohne unsere alte Kontroverse von damals aufwärmen zu wollen:
Es ist seit vielen Jahren so, dass TLP nicht zusammen mit dem Standard-Powermanagement installiert werden kann.
Genau das ist ein unhaltbarer Zustand in einem Paketsystem. Verschiedene Pakete dürfen einfach nicht die selben Dateien ausliefern, oder sie müssen zumindest formal sauber zueinander im Konflikt stehen.

Möglich, dass dieses Problem bei Fedora nicht deine Schuld war, schließlich bist du Upstream-Entwickler und kein Fedora-Paketbetreuer. Aber du hast offenbar seit Langem Kenntnis davon. Deswegen einfache User anzupflaumen, die einfach auf das Problem aufmerksam machen, geht gar nicht:
@einzelheinz Danke, dass Du diesen unreflektierten Nonsens jetzt auch hier vervielfältigst :(.
 
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben