Linux Projektvorstellung: TLP – Linux Stromsparen

Linux Betriebssystem

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
13.290
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:
@Elementus: ich weiss nicht, was der Energienager genau tut, ist ja leider Closed Source ;). Auf jeden Fall lassen die Beschreibungen vermuten, dass der Maximaltakt limitiert wird.

Deine Überlegungen zu den Einstellungen für den Takt in BAT und AC sind richtig, bei AC einfach auf 0 lassen. Den Governor würde ich nicht ändern (s. FAQ).
 
Bist Du nicht. Hab's wohl irgendwann mal rausgeworfen, da manche User unbedingt an Takt und Governor herumdrehen wollen und sowieso den Hinweis ignorieren bzw. mich nötigten derlei Einstellunge einzubauen ;). Exklusiv für dich zum Nachlesen: Link.
 
Salü Linrunner,

ich hab hier meinen T520 neu machen müssen (HDD ist ausgestiegen) und .. haha .. ich krieg TLP nich sauber ans laufen -.-

Ich bin mir nich sicher das es an mir liegt oder doch an TLP.

Kernel: 3.15.0-1 (Arch 64bit)
TLP: 0.5-2

TLP-Stat output: https://nerdstube.de/uploads/tlp-stat

Problem: Bluettooth ist immer an.

Laut Settings sollte er ja den aktuellen Status behalten und zusätlich Bluetooth beim starten ausstellen. Bluetooth ist per rfkill händisch geblockt. Trotzdem ist es nach jedem reboot an. Ebenso nach jedem Betätigen des Schalters.

Grüße
 
/etc/default/tlp richtig lesen. ;)

Code:
# Restore radio device state (bluetooth, wifi, wwan) from previous shutdown
# on system startup: 0=disable/1=enable
[b]# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
#       are ignored when this is enabled![/b]
RESTORE_DEVICE_STATE_ON_STARTUP=0

Bei mir ist Bluetooth auch immer automatisch an bei Arch. Ich schau mal kurz.

edit: Könnte das etwas damit zu tun haben?
Code:
thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked

edit 2: Vielleicht lässt sich hiermit was machen:
Code:
$ modinfo thinkpad_acpi 
filename:       /lib/modules/3.14.6-1-ARCH/kernel/drivers/platform/x86/thinkpad_acpi.ko.gz
license:        GPL
version:        0.25
description:    ThinkPad ACPI Extras
author:         Henrique de Moraes Holschuh <hmh@hmh.eng.br>
author:         Borislav Deianov <borislav@users.sf.net>
alias:          dmi:bvnIBM:bvrI[MU]ET??WW*
alias:          tpacpi
srcversion:     AB620EE45E50EB3ACAE3D8A
alias:          acpi*:LEN0068:*
alias:          acpi*:IBM0068:*
depends:        rfkill,led-class,snd,hwmon,nvram
intree:         Y
vermagic:       3.14.6-1-ARCH SMP preempt mod_unload modversions 
parm:           experimental:Enables experimental features when non-zero (int)
parm:           debug:Sets debug level bit-mask (uint)
parm:           force_load:Attempts to load the driver even on a mis-identified ThinkPad when true (bool)
parm:           fan_control:Enables setting fan parameters features when true (bool)
parm:           brightness_mode:Selects brightness control strategy: 0=auto, 1=EC, 2=UCMS, 3=EC+NVRAM (uint)
parm:           brightness_enable:Enables backlight control when 1, disables when 0 (uint)
parm:           volume_mode:Selects volume control strategy: 0=auto, 1=EC, 2=N/A, 3=EC+NVRAM (uint)
parm:           volume_capabilities:Selects the mixer capabilites: 0=auto, 1=volume and mute, 2=mute only (uint)
parm:           volume_control:Enables software override for the console audio control when true (bool)
parm:           index:ALSA index for the ACPI EC Mixer (int)
parm:           id:ALSA id for the ACPI EC Mixer (charp)
parm:           enable:Enable the ALSA interface for the ACPI EC Mixer (bool)
parm:           hotkey:Simulates thinkpad-acpi procfs command at module load, see documentation
[b]parm:           bluetooth:Simulates thinkpad-acpi procfs command at module load, see documentation[/b]
parm:           video:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           light:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           cmos:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           led:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           beep:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           brightness:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           volume:Simulates thinkpad-acpi procfs command at module load, see documentation
parm:           fan:Simulates thinkpad-acpi procfs command at module load, see documentation
 
Zuletzt bearbeitet:
Sry oben falsch ausgedrückt.

Die Option ist nicht dauerhaft gleich gesetzt gewesen, sondern nach einander :)

Den TLP-stat hab ich gemacht als beides anwar. Aber wie dem auch sei, selbst wenn das eine das andere ignoriert sollte es gehen ;)

Grüße
 
benutzt du diese komische bluetooth-gui von xfce? die schaltet nämlich bt bei jedem start wieder ein. solange das ding in betrieb ist, kannst du in tlp sowie einstellen, wie du willst, du bekommst bt nicht aus.
 
benutzt du diese komische bluetooth-gui von xfce? die schaltet nämlich bt bei jedem start wieder ein. solange das ding in betrieb ist, kannst du in tlp sowie einstellen, wie du willst, du bekommst bt nicht aus.
@blafoo: Blueman heisst das Schätzchen oder systemd mischt sich ein --> http://thinkwiki.de/TLP_FAQ#XFCE-De...tooth_wird_beim_Systemstart_nicht_deaktiviert

ps. Dein SSL-Nicht-Zertifikat nervt ... kannst Du nicht einfach einen normalen Paste-Service (oder http) nehmen? ;)
 
Zuletzt bearbeitet:
@linrunner
Dafür kann man Ausnahmen hinzufügen. ;)

Ursache: systemd 209 (or higher) implementiert einen eigenen Weg, um die Schaltzustände beim Systemstart wiederherzustellen.
Du meinst den systemd-rfkill@.service? Den habe ich bei mir extra maskiert. Dennoch ist Bluetooth vor dem Start von TLP immer an (also kurz nach dem Start des Kernels bis systemd TLP startet) und geht beim Shutdown auch wieder an (wenn TLP gestoppt wird?). Ich habe übrigens nichts in Bezug auf Bluetooth installiert:

Code:
$ pacman -Qs blue
<keine Ausgabe>

Code:
--- TLP 0.5 --------------------------------------------

+++ Configured Settings: /etc/default/tlp
TLP_ENABLE=1
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
DISK_DEVICES="sda"
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
USB_AUTOSUSPEND=1
USB_BLACKLIST_WWAN=1
RESTORE_DEVICE_STATE_ON_STARTUP=0
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wwan"
DEVICES_TO_ENABLE_ON_STARTUP="wifi"

+++ System Info
System         = LENOVO ThinkPad X220 428737G
BIOS           = 8DET63WW (1.33 )
Kernel         = 3.14.6-1-ARCH x86_64
/proc/cmdline  = BOOT_IMAGE=/vmlinuz-linux root=UUID=5865cd02-8c0d-4fd1-9a83-e92aeeb9ea2d rw cryptdevice=/dev/sda2:cryptroot:allow-discards

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

+++ Processor
CPU Model      = Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz

/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  =   800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  2100000 [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  =   800000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq  =  2100000 [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  =   800000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq  =  2100000 [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  =   800000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq  =  2100000 [kHz]

/sys/devices/system/cpu/intel_pstate/no_turbo          = 0
/proc/sys/kernel/nmi_watchdog                          = 0

+++ Undervolting
PHC kernel not available.

+++ Temperatures
CPU temp               =    43 [°C]
/proc/acpi/ibm/fan     =  1972 [/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     = Crucial_CT120M500SSD1                   
          Firmware  = MU05    
          APM Level = 128
          Status    = active/idle
          TRIM      = supported
          scheduler = cfq

        SMART info:
            5 Reallocated_Sector_Ct     =        0 
            9 Power_On_Hours            =       23 [h]
          194 Temperature_Celsius       =       27 (0 45 0 [°C]


+++ 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
/sys/class/scsi_host/host2/link_power_management_policy  = min_power
/sys/class/scsi_host/host3/link_power_management_policy  = min_power
/sys/class/scsi_host/host4/link_power_management_policy  = min_power
/sys/class/scsi_host/host5/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        =  1 (enabled)
/sys/module/i915/parameters/i915_enable_rc6  = -1 (use per-chip default)
/sys/module/i915/parameters/i915_enable_fbc  = -1 (use per-chip default)
/sys/module/i915/parameters/lvds_downclock   =  0 (disabled)
/sys/module/i915/parameters/semaphores       = -1 (use per-chip default)

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

wlp3s0(iwlwifi): power management = on

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

+++ ThinkPad Extended Battery Functions
tp-smapi   = active
tpacpi-bat = active

+++ ThinkPad Battery Status (Main)
/sys/devices/platform/smapi/BAT0/manufacturer               = SANYO
/sys/devices/platform/smapi/BAT0/model                      = 42T4861
/sys/devices/platform/smapi/BAT0/manufacture_date           = 2011-03-25
/sys/devices/platform/smapi/BAT0/first_use_date             = 2011-05-27
/sys/devices/platform/smapi/BAT0/cycle_count                =     68
/sys/devices/platform/smapi/BAT0/design_capacity            =  63000 [mWh]
/sys/devices/platform/smapi/BAT0/last_full_capacity         =  58110 [mWh]
/sys/devices/platform/smapi/BAT0/remaining_capacity         =  33450 [mWh]
/sys/devices/platform/smapi/BAT0/remaining_percent          =     58 [%]
/sys/devices/platform/smapi/BAT0/remaining_running_time_now =    193 [min]
/sys/devices/platform/smapi/BAT0/remaining_charging_time    = not_charging [min]
/sys/devices/platform/smapi/BAT0/power_now                  =  -9679 [mW]
/sys/devices/platform/smapi/BAT0/power_avg                  =  -6529 [mW]

tpacpi-bat.BAT0.startThreshold                              =     96 [%]
tpacpi-bat.BAT0.stopThreshold                               =    100 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

+++ Runtime Power Management
/sys/bus/pci/devices/0000:00:00.0/power/control = auto (0x060000 Host bridge)
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000 VGA compatible controller)
/sys/bus/pci/devices/0000:00:16.0/power/control = auto (0x078000 Communication controller)
/sys/bus/pci/devices/0000:00:19.0/power/control = auto (0x020000 Ethernet controller)
/sys/bus/pci/devices/0000:00:1a.0/power/control = auto (0x0c0320 USB controller)
/sys/bus/pci/devices/0000:00:1b.0/power/control = auto (0x040300 Audio device)
/sys/bus/pci/devices/0000:00:1c.0/power/control = auto (0x060400 PCI bridge)
/sys/bus/pci/devices/0000:00:1c.1/power/control = auto (0x060400 PCI bridge)
/sys/bus/pci/devices/0000:00:1c.3/power/control = auto (0x060400 PCI bridge)
/sys/bus/pci/devices/0000:00:1c.4/power/control = auto (0x060400 PCI bridge)
/sys/bus/pci/devices/0000:00:1d.0/power/control = auto (0x0c0320 USB controller)
/sys/bus/pci/devices/0000:00:1f.0/power/control = auto (0x060100 ISA bridge)
/sys/bus/pci/devices/0000:00:1f.2/power/control = auto (0x010601 SATA controller)
/sys/bus/pci/devices/0000:00:1f.3/power/control = auto (0x0c0500 SMBus)
/sys/bus/pci/devices/0000:03:00.0/power/control = auto (0x028000 Network controller)
/sys/bus/pci/devices/0000:0d:00.0/power/control = auto (0x088001 System peripheral)

+++ USB
tlp usb autosuspend = enabled
tlp usb blacklist   = (not configured)

Bus 002 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =  2000 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 002 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 2.0 root hub (hub)
Bus 001 Device 005 ID 04f2:b217 control = auto, autosuspend_delay_ms =  2000 -- Chicony Electronics Co., Ltd Lenovo Integrated Camera (0.3MP) (uvcvideo)
Bus 001 Device 003 ID 147e:2016 control = auto, autosuspend_delay_ms =  2000 -- Upek Biometric Touchchip/Touchstrip Fingerprint Sensor (no driver)
Bus 001 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =  2000 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 2.0 root hub (hub)

+++ Suggestions
* Install ethtool to disable Wake On LAN (WOL)
 
Zuletzt bearbeitet:
@ Linrunner:

kk Danke .. wird dann SysmteD sein. Bin kein XFCe-User ;)

@ Certifiicate: Nächste Woche hab ich wieder nen Richtiges :)
 
Hallo,

ich habe bereits google und hier die Website durchsucht, aber nichts zu meiner Frage passendes gefunden. Es geht darum, dass ich gerade meine Akkus rekalibriere, allerdings wenn ich den Standardbefehl ausführe, mir angezeigt wird das der Akku entladen wird. Warum wird er nicht erstmal komplett geladen? und dann entladen?

Zweite Frage ist: warum sind die aktuellen Ladeschwellen andere als die manuel in der Konfigurationsdatei angegebenen?

Dritte Frage: wie unterscheidet tlp zwischen meinem 9 und meinem 4 Zellenakku?

Liebe Grüße und vielen Dank schonmal im Vorraus!
bijah

PS: die tlp stat Ausgabe im Anhang
 

Anhänge

Zuletzt bearbeitet:
1. Ist einfach so.
2. Weil die mal geändert wurden. 96-100 ist "standard".
3. Über den Modellnamen, wenn überhaupt. Akku ist akku, die Schwellen werden in der Ladeelektronik gespeichert und sollten dem Programm damit egal sein.
 
@bijah:

1) Indem man zuerst entlädt, deckt man den Fall ab, dass der Akku bei 0% Anzeige noch nicht leer ist. Erst wenn er dann ganz leer ist, wird wieder aufgeladen bis zu den tatsächlichen 100% und somit ungenutzte Kapazität wiedergewonnen. Im Grunde ist es aber einfach so, weil der Lenovo-Windows-Energienager es so macht ...

2) Du hast nach dem Konfigurieren nicht neu gestartet / kein tlp setcharge abgesetzt / den Akku gerade gewechselt ... und offensichtlich die FAQ nicht gelesen :D

3) Bei TP-Modellen die zwei Akkus gleichzeitig aufnehmen können via BAT0/BAT1
 
Zuletzt bearbeitet:
Hallo,

vielen Dank euch beiden für die Antworten, hab das denke ich jetzt verstanden. @linrunner zu 2) dachte eigentlich dass die Änderungen schon angekommen waren bevor ich dann recalibrate gestartet hatte und danach waren die Schwellen immer noch 96/100 wobei ich eigentlich diese nur temporär erwartet hätte, ist aber nicht wild, habs jetzt wieder wie gewollt.

Ich habe nur noch eine Bemerkung zur wirklich guten Dokumentation von TLP (vielen Dank an dieser Stelle!!). Meine erste Frage entstand auch, weil in der Doku zu recalibrate steht:
Das Kommando faßt die Funktionen fullcharge und discharge zusammen.​
Wenn dort andersherum discharge und fullcharge stünde würde dies implizieren was auch passiert, nämlich das erst entladen und dann geladen wird und nicht menschen wie mich verwirren ;)

Vielen Dank, alles geklärt,
bijah
 
@bija: Du irrst, denn die Reihenfolge tlp fullcharge -> tlp discharge ist exakt was programmiert ist. Allerdings setzt fullcharge eben nur die Schwellen auf 96/100% und wartet nicht bis der Akku voll ist. Stattdessen kommt sofort discharge zum Zuge. Das wartet bis der Akku leer ist und beendet dann das Gesamtkommando recalibrate. Anschliessend wird dann sozusagen "im Hintergrund" auf 100% geladen. Die konfigurierten Schwellen kommen erst nach dem nächsten Reboot wieder zum Zuge. Daher dein Symptom. Ich werde demnächst mal die Anleitung anhübschen, damit man die Auswirkungen besser versteht.
 
Hallo,

gibt es den für PHC vorbereiteten Kernel auch für Ubuntu 14.04 LTS?

Gruß,
Capet
 
EDIT: war mein Fehler und hatte nichts mit TLP zu tun, sorry!

Als kleine Notiz fuer zukuenftige Versionen von TLP. Die Modulparameter von i915 "i915.i915_enable_rc6" und "i915.i915_enable_fbc" wurden umbenannt zu "i915.enable_rc6" und i915.enable_fbc". TLP-stat zeigt bei neueren Kernel bei beiden Optionen also "not available" an. Kann man ja, wenns fuer Ubuntu soweit ist fixen.
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben