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:
Guten Abend,

vor kurzem habe ich mein neues T460s eingerichtet und natürlich gehörte TLP mit zu den ersten von Hand
ergänzten Pakten, vor allem wegen der Ladeschwellen, die ich immer nutze bei meinen Thinkpads.
Jetzt wollte ich mal die Anzahl der Ladezyklen auslesen.
Code:
--- TLP 0.8 --------------------------------------------

+++ Configured Settings: /etc/default/tlp
TLP_ENABLE=1
TLP_DEFAULT_MODE=AC
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1
NMI_WATCHDOG=0
ENERGY_PERF_POLICY_ON_AC=performance
ENERGY_PERF_POLICY_ON_BAT=powersave
DISK_DEVICES="sda sdb"
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power
PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave
RADEON_POWER_PROFILE_ON_AC=high
RADEON_POWER_PROFILE_ON_BAT=low
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=auto
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
RUNTIME_PM_ALL=1
RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau"
USB_AUTOSUSPEND=1
USB_BLACKLIST_WWAN=1
RESTORE_DEVICE_STATE_ON_STARTUP=0
START_CHARGE_THRESH_BAT0=50
STOP_CHARGE_THRESH_BAT0=85
START_CHARGE_THRESH_BAT1=50
STOP_CHARGE_THRESH_BAT1=85

+++ System Info
System         = LENOVO ThinkPad T460s 20FAS05Q00
BIOS           = N1CET45W (1.13 )
Release        = Debian GNU/Linux unstable (sid)
Kernel         = 4.6.0-1-amd64 #1 SMP Debian 4.6.2-1 (2016-06-15) x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-4.6.0-1-amd64 root=UUID=5d583393-c538-4a2e-8ffa-24f09d00d583 ro quiet
Init system    = systemd

+++ System Status
TLP power save = enabled
power source   = battery

+++ Processor
CPU Model      = Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz

/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_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  2800000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq  =  2800000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq  =  2800000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq  =  2800000 [kHz]

/sys/devices/system/cpu/intel_pstate/min_perf_pct      = 14
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100
/sys/devices/system/cpu/intel_pstate/no_turbo          = 0

x86_energy_perf_policy: program not installed.

/proc/sys/kernel/nmi_watchdog                          = 0

+++ Undervolting
PHC kernel not available.

+++ Temperatures
CPU temp               =    32 [°C]
/proc/acpi/ibm/fan     =     0 [/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
/proc/sys/fs/xfs/age_buffer_centisecs  = (not available)
/proc/sys/fs/xfs/xfssyncd_centisecs    = (not available)
/proc/sys/fs/xfs/xfsbufd_centisecs     = (not available)

+++ Storage Devices
/dev/sda:
          Model     = SAMSUNG MZNLN256HCHP-000L7              
          Firmware  = EMT22L6Q
          APM Level = none/disabled
          Status    = active/idle
          TRIM      = supported
          Scheduler = cfq

        SMART info:
            5 Reallocated_Sector_Ct     =        0 
            9 Power_On_Hours            =       40 [h]
          178 Used_Rsvd_Blk_Cnt_Chip    =        0 
          194 Temperature_Celsius       =       24    [°C]
          233 Media_Wearout_Indicator   =      100 [%]
          241 Total_LBAs_Written        =    0.000 [TB]


+++ SATA Aggressive Link Power Management
/sys/class/scsi_host/host0/link_power_management_policy  = min_power
/sys/class/scsi_host/host1/link_power_management_policy  = min_power

+++ PCIe Active State Power Management
/sys/module/pcie_aspm/parameters/policy = default (using bios preferences)

+++ Intel Graphics
/sys/module/i915/parameters/powersave        = (not available)
/sys/module/i915/parameters/enable_rc6       =  1 (enabled)
/sys/module/i915/parameters/enable_fbc       = -1 (use per-chip default)
/sys/module/i915/parameters/lvds_downclock   = (not available)
/sys/module/i915/parameters/semaphores       = -1 (use per-chip default)

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

hci0(btusb)         : not connected
wlp4s0(iwlwifi)     : connected, power management = on

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

+++ Runtime Power Management
device classes   = all
device blacklist = (not configured)
driver blacklist = radeon nouveau

/sys/bus/pci/devices/0000:00:00.0/power/control = auto (0x060000, Host bridge, no driver)
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000, VGA compatible controller, i915)
/sys/bus/pci/devices/0000:00:08.0/power/control = auto (0x088000, System peripheral, no driver)
/sys/bus/pci/devices/0000:00:14.0/power/control = auto (0x0c0330, USB controller, xhci_hcd)
/sys/bus/pci/devices/0000:00:14.2/power/control = auto (0x118000, Signal processing controller, intel_pch_thermal)
/sys/bus/pci/devices/0000:00:16.0/power/control = auto (0x078000, Communication controller, mei_me)
/sys/bus/pci/devices/0000:00:17.0/power/control = auto (0x010601, SATA controller, ahci)
/sys/bus/pci/devices/0000:00:1c.0/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:1f.0/power/control = auto (0x060100, ISA bridge, no driver)
/sys/bus/pci/devices/0000:00:1f.2/power/control = auto (0x058000, Memory controller, no driver)
/sys/bus/pci/devices/0000:00:1f.3/power/control = auto (0x040300, Audio device, snd_hda_intel)
/sys/bus/pci/devices/0000:00:1f.4/power/control = auto (0x0c0500, SMBus, i801_smbus)
/sys/bus/pci/devices/0000:00:1f.6/power/control = auto (0x020000, Ethernet controller, e1000e)
/sys/bus/pci/devices/0000:02:00.0/power/control = auto (0xff0000, Unassigned class [ff00], rtsx_pci)
/sys/bus/pci/devices/0000:04:00.0/power/control = auto (0x028000, Network controller, iwlwifi)

+++ USB
autosuspend        = enabled
device whitelist   = (not configured)
device blacklist   = (not configured)
wwan blacklist     = enabled

Bus 002 Device 001 ID 1d6b:0003 control = auto, autosuspend_delay_ms =     0 -- Linux Foundation 3.0 root hub (hub)
Bus 001 Device 005 ID 138a:0090 control = auto, autosuspend_delay_ms =  2000 -- Validity Sensors, Inc.  (no driver)
Bus 001 Device 004 ID 04ca:7058 control = auto, autosuspend_delay_ms =  2000 -- Lite-On Technology Corp.  (uvcvideo)
Bus 001 Device 003 ID 8087:0a2b control = auto, autosuspend_delay_ms =  2000 -- Intel Corp.  (btusb)
Bus 001 Device 002 ID 058f:9540 control = auto, autosuspend_delay_ms =  2000 -- Alcor Micro Corp. AU9540 Smartcard Reader (no driver)
Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =     0 -- Linux Foundation 2.0 root hub (hub)

+++ ThinkPad Extended Battery Functions
tp-smapi   = inactive (kernel module 'tp_smapi' not installed)
tpacpi-bat = active

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 00HW023
/sys/class/power_supply/BAT0/cycle_count                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  23540 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  24490 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  14520 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

tpacpi-bat.BAT0.startThreshold                              =     50 [%]
tpacpi-bat.BAT0.stopThreshold                               =     85 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

+++ ThinkPad Battery Status: BAT1 (Ultrabay / Slice / Replaceable)
/sys/class/power_supply/BAT1/manufacturer                   = SANYO
/sys/class/power_supply/BAT1/model_name                     = 01AV405
/sys/class/power_supply/BAT1/cycle_count                    = (not supported)
/sys/class/power_supply/BAT1/energy_full_design             =  26330 [mWh]
/sys/class/power_supply/BAT1/energy_full                    =  27650 [mWh]
/sys/class/power_supply/BAT1/energy_now                     =   8720 [mWh]
/sys/class/power_supply/BAT1/power_now                      =   5788 [mW]
/sys/class/power_supply/BAT1/status                         = Discharging

tpacpi-bat.BAT1.startThreshold                              =     50 [%]
tpacpi-bat.BAT1.stopThreshold                               =     85 [%]
tpacpi-bat.BAT1.forceDischarge                              =      0

+++ Suggestions
* Install tp-smapi kernel modules for ThinkPad advanced battery functions
In /etc/default/tlp habe ich nur die Ladeschwellen aktiviert.
Muss ich vielleicht einfach etwas warten weil das TP noch zu neu ist und von TLP 0.8 noch nicht unterstützt wird ?

Gruß,
anjuna
 
Zuletzt bearbeitet:
Kleiner Tipp: Ohne vollständige Ausgabe von tlp-stat gibt es hier keinen Support. ;) (Steht so auch im ersten Post.)

Bis zur *20-Serie funktionierte noch tp_smapi, welches auch solche schönen Details auslesen konnte. Bei neueren Modellen funktioniert das nicht, dort lassen sich nur mittels tpacpi-bat die Ladeschwellen setzen.
 
@SammyHP
fühlte mich direkt angesprochen und entsprechend geändert, Danke dass du mich aufmerksam gemacht hast. :)
Habe den Startpost gelesen, ist aber schon länger her.
 
@anjuna: es ist so, wie SammysHP sagt: nur mit tp-smapi und damit nur bis zur *20-Generation.

Warum bei allen Laptops das Sysfile /sys/class/power_supply/BAT0/cycle_count zwar vorhanden ist, es aber stets nur 0 liefert – was tlp-stat mit "(not supported)" übersetzt – das wüsste ich auch gerne mal ... :(
 
Danke. Mehr ist leider nicht drin, soweit ich weiß.

@linrunner

Code:
* Install tp-smapi kernel modules for ThinkPad advanced battery functions

Das verwirrt etwas, weil tp-smapi bei der Generation ja nicht mehr funktioniert. Ist es möglich, das irgendwie zu erkennen und den Hinweis dann nicht anzuzeigen?

edit: Hat sich etwas mit dem vorherigen Post überschnitten.
 
@linrunner:

die Ladeschwellen sind mir das Wichtigste, da ich mir davon etwas Schonung für die Akkus verspreche.
Gibt es denn andere Wege, die Ladezyklen auszulesen/anzuzeigen, wenn man kein Windows installiert hat ?
Auf Anhieb fällt mir selbst nicht sein, leider.
 
@anjuna: nein.

Das verwirrt etwas, weil tp-smapi bei der Generation ja nicht mehr funktioniert. Ist es möglich, das irgendwie zu erkennen und den Hinweis dann nicht anzuzeigen?
Du erinnerst dich vielleicht noch an meine Andeutungen zu den RegExen am Samstag? Mit TLP 0.9 wird das verbessert (s. diverse Commits von Mitte Januar).
 
Hinweis zu Fedora 24: die Pakete akmod-tp_smapi und akmod-acpi_call sind noch nicht im TLP Repo verfügbar, da bisher die Voraussetzungen seitens RPMFusion fehlen (s. Issue #218).

UPDATE: Die Probleme bei RPMFusion sind inzwischen behoben, @RomanX hat nun die Pakete in tlp-updates-testing hochgeladen. Wir würden uns über Rückmeldungen freuen.
 
Zuletzt bearbeitet:
Wenn ich deinen Befehl aus dem Wiki nehme:
Code:
sudo dnf install --enablerepo tlp-updates-testing akmod-tp_smapi
bekomme ich eine Fehlermeldung zum Schlüssel:
Code:
Warnung: /var/cache/dnf/tlp-updates-testing-16ad28d34297bce5/packages/akmod-tp_smapi-0.42-1.fc24.x86_64.rpm: Header V4 DSA/SHA1 Signature, Schlüssel-ID c2fb431c: NOKEY
GPG-Schlüssel 0x3BD056D6 wird importiert:
 Benutzer-ID  : »TLP Repository for Fedora (24) <tlp@warpnine.de>«
 Fingerabdruck: 320D CBBE 7599 EB4A 020B FFD9 0413 541E 3BD0 56D6
 Von          : /etc/pki/rpm-gpg/RPM-GPG-KEY-tlp-fedora-24
Ist dies in Ordnung? [j/N]: j
Schlüssel erfolgreich importiert
Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?
Die heruntergeladenen Pakete wurden bis zur nächsten erfolgreichen Transaktion im Zwischenspeicher abgelegt.
Sie können zwischengespeicherte Pakete mit dem Befehl »dnf clean packages« entfernen.
Fehler: 


Öffentlicher Schlüssel für akmod-tp_smapi-0.42-1.fc24.x86_64.rpm ist nicht installiertFailing package is: akmod-tp_smapi-0.42-1.fc24.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-tlp-fedora-24
 
Moin

Danke für den Hinweis.

Ändere bitte die repo-Datei tlp-updates-testing.repo oder warte bis morgen.
Code:
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-tlp
Da hab ich versehentlich schon eine neuere Version der repo-Dateien verteilt.

RomanX
 
Moin,

ich habe von Ubuntu 14.04 auf 16.04 aufdatiert und es erhob ein uraltes Problem sein hässliches Haupt:

Beim Ziehen des LAN-Kabels wird nicht automatisch das WLAN aktiviert.

Laut Debug-Tracing funktioniert der Mechanismus prinzipiell, aber das WLAN wird nicht wieder eingeschaltet.

Grund ist eine Besonderheit meines HP8560P: Es gibt in /cat /sys/class/rfkill zwei Einträge vom Typ "wlan". Dies zeigt "rfkill list wifi" nach "rfkill unblock wifi"
Code:
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: hp-wifi: Wireless LAN
        Soft blocked: no
        Hard blocked: no

Und dies nach "rfkill block wifi"
Code:
0: phy0: Wireless LAN
        Soft blocked: yes
        Hard blocked: yes
1: hp-wifi: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
Das Interface "phy0" zeigt Hard blocked: yes, was aber nicht stimmt (der Schalter ist eingeschaltet)
Dieses wird aber in tlp-rf-func::device_switch () geprüft und bei hard blocked wird nicht versucht einzuschalten.

Ich habe testweise den entsprechenden Check auskommentiert, und nun funktioniert alles wie erwartet.

Wie man dieses Problem sauber lösen kann, weiß ich leider nicht. Es müsste Index 1 (hp-wifi) für die Überprüfung verwendet werden. Evt. den höchsten Index nehmen?

Wolfgang
 
Ändere bitte die repo-Datei tlp-updates-testing.repo oder warte bis morgen.
Jetzt läuft es. Danke.
Nur warten hat aber nicht gereicht. Man muss entweder die repo Datei editieren wie du es angegeben hast, oder die Datei ganz löschen und das Repo neu installieren.
 
@wofritz: Workarounds im Code für individuelle Kernel- bzw. Treiberprobleme – denn darum geht es hier – sind sehr problematisch.

Probiere das Modul hp_wmi zu blacklisten damit es nicht geladen wird.
 
@wofritz: Workarounds im Code für individuelle Kernel- bzw. Treiberprobleme – denn darum geht es hier – sind sehr problematisch.

Probiere das Modul hp_wmi zu blacklisten damit es nicht geladen wird.
Ja, das sehe ich ein. Ich habs bei mir jetzt so gelöst, dass der Eintrag mit dem höchsten Index genommen wird.

Das Blacklisten des Moduls hp_wmi hatte ich schon versucht. Dann funktioniert aber der Hardware-Switch nicht mehr und ich kann auch Bluetooth nicht mehr aktivieren.
 
Habe seit heute Mint 18 64bit auf meinem x200 (kein Upgrade - Neuinstallation).

TLP und alle weiteren Files (die lt. Wiki nötig sind), habe ich installiert.

Dennoch rennt der Lüfter mit über 3000 Umdrehungen bei 37°C.

Kein Prozess ist wirklich hoch... Kann man da was an TLP einstellen?

attachment.php
 

Anhänge

  • conky_temp.png
    conky_temp.png
    26,1 KB · Aufrufe: 112
@danica_talos: nein, kann man nicht. Die Leistungsaufnahme ist ja OK, denn 37°C sind imho für ein X200 schon sehr gut.

Ich erinnere mich, dass mein X200 früher mal solch seltsames Lüfterverhalten am Netzteil gezeigt hat. Dann half kurzes Abziehen des Netzteilsteckers. Ansonsten funktioniert thinkfan sehr gut auf dem X200.

Bei Mint darf natürlich der Hinweis nicht fehlen, in der Updateverwaltung den neuesten Kernel einzuspielen, da Mint das von Haus aus ja nicht hinbekommt.

Diskussion über all das gerne in einem separaten Thread, da kein Bezug zu TLP.
 
thinkfan! Jetzt erinnere ich mich, das Ganze unter 17.x seinerzeit auch gemacht zu haben. Jetzt ist es wieder wie unter 17.x. Danke :thumbsup:
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben