Linux Batterie-Limit funktioniert nicht

Linux Betriebssystem

Hamster_runner

New member
Themenstarter
Registriert
8 Juni 2022
Beiträge
16
Hallo an alle,

ich habe ein Thinkpad Yoga 370 auf der ich Arch Linux instaliert habe, mit SystemD.

Ich habe in
/etc/tp-battery-mode.conf
folgendes geschrieben
START_THRESHOLD=75
STOP_THRESHOLD=80

Dann habe ich mit dem Befehl
sudo systemctl enable tp-battery-mode.service --now
diese Einstellungen Aktiviert.

Es funktioniert auch.. so zum Teil. Manchmal für 1-2 Tage, manchmal länger. Aber immer wieder wenn ich nachschaue wird es trotzdem auf 100% voll. Ich weis nicht, ob e daran liegt, dass ich es manchmal im Stromnetz anschließe, wenn das Laptop ausgeschaltet ist oder woran es liegt, aber das ist definitiv nicht ganz ideal.

Unter anderem habe ich das Laptop nun auch so eingestellt, dass bei jedem Neustart, die obige batterie "Service" deaktiviert und dann neu aktiviert wird. Dies Funktioniert vielleicht etwas besser, aber auch nicht verlässlich.

Weiß jemand, was ich falsch mache? Jemand einen Vorschlag?

Vielen Dank im Voraus.
 
Ich vermute mal, Du hast das hier installiert. Es könnte - obwohl stark veraltet und seit 2015 nicht mehr gewartet - im Prinzip noch funktionieren. Ich verspüre aber keine Neigung, es mit deiner Hilfe zu debuggen, zumal es keinerlei Diagnosemöglichkeiten beinhaltet.
Es funktioniert auch.. so zum Teil. Manchmal für 1-2 Tage, manchmal länger. Aber immer wieder wenn ich nachschaue wird es trotzdem auf 100% voll. Ich weis nicht, ob e daran liegt, dass ich es manchmal im Stromnetz anschließe, wenn das Laptop ausgeschaltet ist oder woran es liegt, aber das ist definitiv nicht ganz ideal.
Die Ladeschwellen wirken bei ThinkPads auch im ausgeschalteten Zustand.
Unter anderem habe ich das Laptop nun auch so eingestellt, dass bei jedem Neustart, die obige batterie "Service" deaktiviert und dann neu aktiviert wird. Dies Funktioniert vielleicht etwas besser, aber auch nicht verlässlich.
Wenn die Schwellen bei jedem Boot gesetzt werden sollen (obwohl das bei ThinkPads eigentlich nicht nötig ist), dann reicht es den Service wie von dir oben geschrieben zu aktivieren. Alles andere ist Unsinn.

Damit wir schauen können, ob die Schwellen aktiviert sind, rate ich erstmal das Paket tp-battery-mode zu deinstallieren. Ebenso kannst Du tpacpi-bat sowie acpi_call und ggf. acpi_call-lts entsorgen.

Dann installierst Du TLP exakt nach Anleitung. Mit exakt meine ich insbesondere, dass Du tlp.service enablest. Externe Kernelmodule brauchst Du für dein ThinkPad mit Arch Linux nicht.

Danach zeige bitte die Ausgabe von
Code:
sudo tlp-stat -s -b
 
Es heißt

* START_CHARGE_THRESH_BAT0/1: 0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1: 1..100(default)

Meine Einstellung ist also leider nicht ganz eingestellt... (die Batterie ladet aber gerade nicht...)





--- TLP 1.5.0 --------------------------------------------

+++ System Info
System = LENOVO ThinkPad Yoga 370 20JJS0SM00
BIOS = R0HET57W (1.37 )
OS Release = Arch Linux
Kernel = 5.19.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 25 Aug 2022 17:31:12 +0000 x86_64
/proc/cmdline = BOOT_IMAGE=/vmlinuz-linux root=UUID=b97dac53-3df7-4869-8eb3-0805918b5004 rw rootflags=subvol=@ loglevel=3 quiet
Init system = systemd
Boot mode = UEFI

+++ TLP Status
State = enabled
RDW state = enabled
Last run = 23:19:20, 283 sec(s) ago
Mode = AC
Power source = AC

Warning: systemd-rfkill.service is not masked, radio device switching may not work as configured.
>>> Invoke 'systemctl mask systemd-rfkill.service' to correct this.

Warning: systemd-rfkill.socket is not masked, radio device switching may not work as configured.
>>> Invoke 'systemctl mask systemd-rfkill.socket' to correct this.

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
* tpacpi-bat (acpi_call) = inactive (superseded by natacpi)
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 = 01AV433
/sys/class/power_supply/BAT0/cycle_count = 57
/sys/class/power_supply/BAT0/energy_full_design = 51000 [mWh]
/sys/class/power_supply/BAT0/energy_full = 44140 [mWh]
/sys/class/power_supply/BAT0/energy_now = 41930 [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 = 95.0 [%]
Capacity = 86.5 [%]
 
Zuletzt bearbeitet:
* START_CHARGE_THRESH_BAT0/1: 0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1: 1..100(default)

Meine Einstellung ist also leider nicht ganz eingestellt... (die Batterie ladet aber gerade nicht...)
Du musst an der richtigen Stelle schauen. Die Ladeschwellen sind bereits korrekt gesetzt, d.h. vor TLP schon:
/sys/class/power_supply/BAT0/charge_control_start_threshold = 75 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold = 80 [%]

Stellt sich die Frage, warum sie manchmal nicht ziehen. Das kann ein Hardwareproblem sein oder ein Bug in der EC Firmware. Letztere wird zusammen mit dem BIOS upgedatet. Das solltest Du, falls nicht schon geschehen, auf den neusten Stand bringen. Falls das nichts bringt, wirst Du mit dem Problem leben müssen - es sei denn, Du möchtest deswegen Akku oder Systemboard tauschen.

Darüber hinaus solltest Du die Ladeschwellen noch in der Konfiguration von TLP eintragen, damit sie bei jedem Systemstart geprüft und ggf. neu geschrieben werden. 75/80% steht schon als Beispiel in /etc/tlp.conf, Du musst nur noch die '#' am Zeilenanfang entfernen -> https://linrunner.de/tlp/settings/battery.html
 
Vielen Dank linrunner,

ich werde die Einträge zummindest bei /etc/tlp.conf eintragen. Soweit ich weiß ist der BIOS auf dem neusten Stand, werde dann aber auch mal überprüfen. Wenn jemand weiß, woran es sonst liegen kann, wie man es schlimstenfalls "umgehen" kann etc., dann bitte nicht schüchtern sein :). Ich werde ab und zu in diesem Thread reinschauen.

Danke und Grüße
 
Lenovo empfiehlt auch nach jedem BIOS Update einen UEFI Reset auf defaults. Jedenfalls bei meiner Kiste. Warum das Update das dann nicht automatisch macht - keine Ahnung. Ein Reset nach einem Update hat mir aber schon so manchen kuriosen Bug behoben.
 
Lenovo empfiehlt auch nach jedem BIOS Update einen UEFI Reset auf defaults.
Ich hab was besseres zu tun als jedesmal alle Einstellungen erneut einzugeben. Im Problemfall kann man das natürlich probieren. Ich sehe allerdings nicht, was es beim vorliegenden EC Problem helfen soll.
 
Du hast 1.37, aktuell ist 1.40: https://pcsupport.lenovo.com/de/de/...-laptops/thinkpad-yoga-370/downloads/ds120869

Falls das Yoga 370 ein "Emergency Reset Hole" auf der Unterseite hat, würde ich das (nach Shutdown) mal betätigen. Macht auch einen EC Reset.

Du hast recht, bei mir ist 1.37. Vielleicht werde ich einen BIOS update versuchen. Ist nicht etwas, was ich gerne mache, da es immer die (kleine) Gefahr gibt, dass dabei etwas schief geht und das Rechner nicht mehr funktioniert. Mal sehen, wie sehr mich die Batterie neft. Vorallem, da ich nicht einmal 100% sicher bin, dass es dadurch behoben wird.

Aber vielen Dank für die Hilfe.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben