[beendet] TLP 1.2 Beta-Test

linrunner

Ubuntuversteher
Registriert
22 Juni 2007
Beiträge
13.052
Hallo,

die Fertigstellung hat sich etwas hingezogen, aber nun ist es endlich soweit :). Ich bitte Euch alle um Mithilfe beim Beta-Test!

Was ist neu?

Highlights sind:

  • ThinkPad Akku: Unterstützung der neuen, nativen Kernel API für die Ladeschwellen (natacpi). Näheres beschreibe ich weiter unten.
  • Festplatten: Unterstützung von NVMe SSDs sowie USB Platten
  • tlp bat/ac: manuelle Einstellungen bleiben erhalten (bis zum Neustart)
  • tlp-rdw: neuer Befehl, um RDW temporär zu deaktivieren (bis zum Neustart)
Die vielen weiteren Neuerungen und Bugfixes findet Ihr im Changelog.

Was und wie soll ich testen?

Es gibt zwei Testziele:

  1. Prüfung alter Funktionalität (Regressionstest): TLP installieren, dabei vorhandene Konfiguration beibehalten und einige Tage schauen ob weiterhin alles funktioniert
  2. Prüfung neuer Funktionalität: TLP installieren, neues Feature konfigurieren bzw. ausprobieren – geht natürlich nur mit der passenden Hardware
Hinweis: auch Nicht-ThinkPads sind als Testgegenstand ausdrücklich erwünscht.

Wo finde ich Pakete?

Pakete für Arch Linux, Fedora, Debian/Ubuntu: siehe Downloadseite.

Beta-Pakete für nicht genannte Distris kann ich selbst leider nicht anbieten. Unterstützer, die entsprechende Pakete bereitstellen sind jedoch willkommen!

Wie melde ich ein Problem mit der Beta-Version?

Bevor Ihr etwas meldet, prüft bitte ob das Problem auch dann auftritt, wenn:

  • die Vorversion 1.1 installiert ist; bzw.
  • TLP deinstalliert ist

Welche Ausgaben soll ich zeigen?

Stets die komplette Ausgabe von
Code:
sudo tlp-stat
  • Im Akkubetrieb
  • Am Netzteil
Bitte per https://pastebin.com/ (oder ein Paste-Service eurer Wahl, der ohne Anmeldung gelesen werden kann).
Die Ausgaben könnt Ihr gerne zu Beginn Eures Tests posten.

Hinweis: weitere Angaben zu Eurem System benötige ich nicht; alles was ich darüber wissen möchte zeigt tlp-stat.

Vielen Dank im voraus fürs Testen!

___________________________________________________________________________________________

natacpi: die neue, native Kernel API für die Ladeschwellen

Was bisher geschah

Von jeher funktionieren Ladeschwellen beim ThinkPad nur mit Hilfe externer Kernel-Module (nicht im offiziellen Kernel enthalten):

  1. Ältere Modelle bis X201/T410: benötigen tp-smapi
  2. Neuere Modelle ab X220/T420: benötigen acpi_call und das Tool tpacpi-bat
Nachteil externer Kernel-Module: sie sind je nach Distribution umständlich zu installieren und erzeugen bei jedem Kernel-Update Aufwand.

Die Neuerung

Anfang 2018 hat ein Kernel-Entwickler (nicht ich) ein Kernel-Framework vorgestellt, mit dem sich herstellerspezifische Akku-Features im Filesystem unterhalb von /sys/class/power_supply/BAT[01]/ einbinden lassen: "natacpi". Dazu hat er als Referenzimplementierung Ladeschwellen für ThinkPads (charge_start_threshold, charge_stop_threshold) in das Kernel-Modul thinkpad_acpi integriert. Die Änderung gibt es seit 4.17, ein Bug beim Ansprechen des zweiten Akkus wurde mit 4.19 gefixt.

Was noch nicht funktioniert, ist das gesteuerte Entladen (force_discharge). Die zugehörigen Patches wurden noch nicht in den Kernel aufgenommen (der Entwickler ist leider etwas frustriert von den Qualitätsansprüchen des Maintainers des betreffenden Kernel Subsystems).

Wichtig: natacpi funktioniert nur für neuere Modelle, 2. siehe oben.

Einzelheiten zu natacpi sind hier zusammengetragen.

Was bedeutet natacpi für TLP?

TLP muss nun automatisch aus drei verschiedenen Verfahren (natacpi, tpacpi-bat, tp-smapi) wählen und tut das je Feature. Am einfachsten ist es an einem Beispiel erklärt:

ThinkPad T450s mit Kernel 4.19
Code:
--- TLP 1.1.905 --------------------------------------------

+++ Battery Features
[B]natacpi    = active (data, thresholds)
tpacpi-bat = active (discharge)
tp-smapi   = inactive (ThinkPad not supported)
[/B]
+++ 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                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  23200 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  20260 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18990 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

[B]/sys/class/power_supply/BAT0/charge_start_threshold         =     67 [%]
/sys/class/power_supply/BAT0/charge_stop_threshold          =    100 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0[/B]
Hier kommt also natacpi für die Ladeschwellen und tpacpi-bat für das gesteuerte Entladen zum Einsatz. Der User bekommt auch angezeigt, dass er tp-smapi nicht benötigt.

Jetzt das Ganze mit Kernel 4.15:
Code:
--- TLP 1.1.905 --------------------------------------------

+++ Battery Features
[B]natacpi    = inactive (no kernel support)
tpacpi-bat = active (thresholds, discharge)
tp-smapi   = inactive (ThinkPad not supported)[/B]

+++ 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                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  23200 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  20260 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18990 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

[B]tpacpi-bat.BAT0.startThreshold                              =     67 [%]
tpacpi-bat.BAT0.stopThreshold                               =    100 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0[/B]
Erwartungsgemäß unterstützt 4.15 kein natacpi, also werden Ladeschwellen und gesteuertes Entladen über tpacpi-bat abgewickelt.

Zuletzt mit Kernel 5.0rc7 und den zusätzlichen Patches für force_discharge:
Code:
+++ Battery Features
[B]natacpi    = active (data, thresholds, discharge)
tpacpi-bat = inactive (superseded by natacpi)
tp-smapi   = inactive (ThinkPad not supported)[/B]

+++ 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                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  23200 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  20260 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18990 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

[B]/sys/class/power_supply/BAT0/charge_start_threshold         =     67 [%]
/sys/class/power_supply/BAT0/charge_stop_threshold          =    100 [%]
/sys/class/power_supply/BAT0/force_discharge                =      0[/B]
Hier wäre das eigentliche Ziel nun erreicht: natacpi ersetzt tpacpi-bat vollständig.

Zum Vergleich noch das X200 mit Kernel 5.0rc7:
Code:
--- TLP 1.1.905 --------------------------------------------

+++ Battery Features
[B]natacpi    = inactive (laptop not supported)
tpacpi-bat = inactive (ThinkPad not supported)
tp-smapi   = active (data, thresholds, discharge)
[/B]
+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/devices/platform/smapi/BAT0/manufacturer               = SANYO
/sys/devices/platform/smapi/BAT0/model                      = 42T4694
/sys/devices/platform/smapi/BAT0/manufacture_date           = 2011-07-29
/sys/devices/platform/smapi/BAT0/first_use_date             = 2011-10-20
/sys/devices/platform/smapi/BAT0/cycle_count                =    209
/sys/devices/platform/smapi/BAT0/temperature                =     26 [°C]
/sys/devices/platform/smapi/BAT0/design_capacity            =  93240 [mWh]
/sys/devices/platform/smapi/BAT0/last_full_capacity         =  50960 [mWh]
/sys/devices/platform/smapi/BAT0/remaining_capacity         =  41190 [mWh]
/sys/devices/platform/smapi/BAT0/remaining_percent          =     81 [%]
/sys/devices/platform/smapi/BAT0/remaining_running_time_now =    196 [min]
/sys/devices/platform/smapi/BAT0/remaining_charging_time    = not_charging [min]
/sys/devices/platform/smapi/BAT0/power_now                  = -12326 [mW]
/sys/devices/platform/smapi/BAT0/power_avg                  = -17097 [mW]
/sys/devices/platform/smapi/BAT0/state                      = discharging

[B]/sys/devices/platform/smapi/BAT0/start_charge_thresh        =     67 [%]
/sys/devices/platform/smapi/BAT0/stop_charge_thresh         =    100 [%]
/sys/devices/platform/smapi/BAT0/force_discharge            =      0[/B]
Hier verwendet TLP erwartungsgemäß nur tp-smapi.

Bei nicht unterstützten Modellen (wie dem X200) weist natacpi übrigens einen Bug auf, der zu vielen Meldungen im Kernel-Log führt – siehe hier.

Was muss ich konfigurieren für natacpi?

Zunächst einmal nichts – TLP nutzt natacpi automatisch, sobald der Kernel es anbietet (und das ThinkPad es unterstützt).

In der TLP-Konfiguration finden sich jedoch neue Schalter, mit denen man jedes Verfahren einzeln ein- und ausschalten kann:
Code:
# Battery feature drivers: 0=disable, 1=enable
# Default: 1 (all)
NATACPI_ENABLE=1
TPACPI_ENABLE=1
TPSMAPI_ENABLE=1
 
Zuletzt bearbeitet:
@darthvader: Danke für die Ausgaben. Im Akkubetrieb verstehe noch nicht ganz dies hier:
Mode = AC
Power source = battery
Hattest Du den manuellen Modus mit
Code:
tlp ac
ausprobiert?
 
@darthvader: Danke für die Ausgaben. Im Akkubetrieb verstehe noch nicht ganz dies hier:

Hattest Du den manuellen Modus mit
Code:
tlp ac
ausprobiert?

Der erste Link war mit angestecktem Netzteil, der zweite abgesteckt. Manuellen Modus hatte ich nicht probiert. Bitte gib mir Bescheid, ob Du noch irgendwelche Tests brauchst.
 
@darthvader: ich konnte das Verhalten glücklicherweise auf meinem X200 reproduzieren und melde mich hier, sobald es eine neue Version zu testen gibt.
 
An meinem Dell kann ich das Problem auch "reproduzieren", auch mit älteren Versionen. Da das Event vom Stromanschluss vom Kernel nicht zugeordnet werden kann, wird tlp nicht ausgeführt, tlp-stat erkennt den Zustand allerdings korrekt.
 
Moin was ist denn der Unterschied zw.


tlp_1.1.905-1_all.deb (sha256)

&

tlp-rdw_1.1.905-1_all.deb (sha256)

oder muß ich die beide installieren?

T440s / *buntu 18.04

Danke

- - - Beitrag zusammengeführt - - -

Edit rdw = Radio Device Wiz... ?!?


Code:
~/Downloads$ sudo dpkg -i *.deb
(Reading database ... 243077 files and directories currently installed.)
Preparing to unpack tlp_1.1.905-1_all.deb ...
Unpacking tlp (1.1.905-1) over (1.1-2ubuntu1) ...
Preparing to unpack tlp-rdw_1.1.905-1_all.deb ...
Unpacking tlp-rdw (1.1.905-1) over (1.1-2ubuntu1) ...
Setting up tlp (1.1.905-1) ...

Configuration file '/etc/default/tlp'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** tlp (Y/I/N/O/D/Z) [default=N] ? n
Installing new version of config file /etc/init.d/tlp ...
Setting up tlp-rdw (1.1.905-1) ...
Installing new version of config file /etc/NetworkManager/dispatcher.d/99tlp-rdw-nm ...
Processing triggers for systemd (237-3ubuntu10.13) ...
Processing triggers for ureadahead (0.100.0-20) ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

- - - Beitrag zusammengeführt - - -

t440_netz:
https://pastebin.com/jvkqqGw1

- - - Beitrag zusammengeführt - - -

t440_akku:
https://pastebin.com/aacXL1tx
 
Zuletzt bearbeitet:
@darthvader: bitte die neue Version 1.1.906 von der Downloadseite installieren und nochmal die Übergänge AC --> BAT sowie BAT --> AC testen samt Ausgaben.
 
@darthvader: Danke. Bitte nochmal zurück zum Akkumodus.
 
@darthvader: gut, ich betrachte das als gelöst. Bei meinem X200 klappt es auch.

- - - Beitrag zusammengeführt - - -

@mcb: wenn Du vorher beide Pakete der 1.1 installiert hattest, musst Du von der Beta ebenfalls beide installieren. Inhalt der Pakete ist in der offiziellen Doku beschrieben.
 
Zuletzt bearbeitet:
@darthvader: gut, ich betrachte das als gelöst. Bei meinem X200 klappt es auch.

- - - Beitrag zusammengeführt - - -

@mcb: wenn Du vorher beide Pakete der 1.1 installiert hattest, musst Du von der Beta ebenfalls beide installieren. Inhalt der Pakete ist in der offiziellen Doku beschrieben.

Danke, habe beide installiert, brauchst du auch die Ausgabe der xxx906 beta ?
 
@all: vielen Dank allen, die getestet haben :). Ich bitte darum, dass Ihr auch die 1.1.907 testet und die Ausgaben zeigt.
 
Jetzt stehen auch Pakete für Fedora zur Verfügung.
 
Hallo linrunner: ev ein "Problemchen" gefunden:Ich hatte verschiedene Startschwellen in tlp eingetragen nach temporärem Entfernen wurde für beide Akkus die Startschwelle vom externen Akku eingetragen. (T440s / Dualboot)

Probiere nachher nochmal.
 
@all: 1.1.908 ist hochgeladen.

Hallo linrunner: ev ein "Problemchen" gefunden:Ich hatte verschiedene Startschwellen in tlp eingetragen nach temporärem Entfernen wurde für beide Akkus die Startschwelle vom externen Akku eingetragen. (T440s / Dualboot)
Probiere nachher nochmal.
Nicht einfach wiederholen bitte und niemals ohne Ausgaben und/oder genauer Beschreibung des Hergangs.

Bei Fehlern stets zuerst die Terminal-Ein- und Ausgaben (tlp setcharge?) wegkopieren und posten.

Außerdem bei Akkuthemen immer:
Code:
sudo tlp-stat -b
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben