Linux Projektvorstellung: TLP – Linux Stromsparen

Linux Betriebssystem

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
13.276
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:
Doch hat es. Weil TLP auch eigene Skripte in /usr/lib/pm-utils/sleep.d/ hat, die weiterhin benötigt werden.

Ich werd mir das mal unter Fedora anschauen.

EDITH sagt: unter F17 werden alle Skripte in /usr/lib{,64}/pm-utils/sleep.d/ im Suspend/Resume-Zyklus aufgerufen, erkennbar in /var/log/pm-suspend.log, die weiterhin existiert.

Das Thema scheint mir in Arch nicht ganz zu Ende gedacht.
 
Zuletzt bearbeitet:
Fedora 17

Heute gab es den Kernel 3.5.4-1, und der Stromverbrauch scheint sich wieder signifikant verbessert zu haben. Heutige Werte um 6.3 W (bisher bei v3.5.* um die 7.0 W und höher; bei v3.4 6.0 W).

Was mich wundert: Beim Aktualisieren des Kernel wurde mir folgendes Paket deinstalliert:
Code:
Entfernt für Abhängigkeiten:
 kmod-tp_smapi-3.5.2-1.fc17.x86_64  x86_64  0.41-1.fc17
Ist das irgendwie relevant?

Zudem gab es bei thinkwatt beim ersten Aufruf eine Warnmeldung:
Code:
$ ./thinkwatt -r 300
recording (291/300)cat: /sys/devices/platform/smapi/BAT0/power_now: Kein passendes Gerät bzw. keine passende Adresse gefunden
recording (01/300))
average was 6.38485 W
Kann das bedeuten, dass der Verbrauch nun *anders* gemessen wurde und sich tatsächlich evtl. garnicht verbessert hat?
 
Moin
Was mich wundert: Beim Aktualisieren des Kernel wurde mir folgendes Paket deinstalliert:
Code:
Entfernt für Abhängigkeiten:
 kmod-tp_smapi-3.5.2-1.fc17.x86_64  x86_64  0.41-1.fc17
Ist das irgendwie relevant?
Das ist normal.
Wenn Du einen neuen Kernel installierst, wird dafür ein alter Kernel gelöscht (std. ist 3 installierte Kernel). Dabei werden alle von dem Kernel abhängigen Pakete ebenfalls deinstalliert.
Wenn Du yum verwendest, schreibt er Dir das in die Konsole. Da kannst Du es nachlesen.

Zudem gab es bei thinkwatt beim ersten Aufruf eine Warnmeldung:
Code:
$ ./thinkwatt -r 300
recording (291/300)cat: /sys/devices/platform/smapi/BAT0/power_now: Kein passendes Gerät bzw. keine passende Adresse gefunden
Kann das bedeuten, dass der Verbrauch nun *anders* gemessen wurde und sich tatsächlich evtl. garnicht verbessert hat?
Das heißt nur, das bei der Messung 291 kein Zugriff auf die Datei möglich war. Warum läßt sich so nicht sagen.

Tritt das öfter auf?
Was hast Du gemacht, als der Fehler auftrat?

RomanX
 
Habe jetzt mal Fedora 17 und tlp installiert.
Habe dazu in meiner Grub Einstellung die Kernelbootparameter in die normale "GRUB_CMDLINE_LINUX" eingetragen, hat ja den selben Effekt wie in "GRUB_CMDLINE_LINUX_DEFAULT", oder?
Das Bluetooth ausschalten beim Boot funktioniert nicht, obwohl es als "Devices_to_Disable_on_startup" eingetragen ist, bleibt es an.
Was kann ich da machen?
Die KDE eigene Bluetooth Ausschaltfunktion im Panel funktioniert auch nicht, ich kann zwar an und ausschalten im Panel, laut tlpstat ist es aber immer angeschaltet.
rfkill block bluetooth funktioniert.
 
Zuletzt bearbeitet:
@DigitalFlow Wenn du bei jedem Boot das Bluetooth auschalten willst, deaktiviere es einfach im Bios.
 
Hi,

@DigitalFlow Wenn du bei jedem Boot das Bluetooth auschalten willst, deaktiviere es einfach im Bios.
was ist das für eine Lösung? Nur, weil ich zum Start Bluetooth deaktiviert haben möchte, heißt das noch lange nicht, dass ich es gar nicht benutzen will während des Betriebs. :facepalm:
 
Hi, was ist das für eine Lösung? Nur, weil ich zum Start Bluetooth deaktiviert haben möchte, heißt das noch lange nicht, dass ich es gar nicht benutzen will während des Betriebs. :facepalm:
Sorry, mir ist aus deinem Post nicht klar geworden, dass du Bluetooth verwenden willst. Hat sich also erledigt.
 
@Digitalflow: hab deinen Post leider eben erst wahrgenommen. Es ist schon ungewöhnlich, dass rfkill funktioniert und TLP nicht, da TLP intern auch rfkill nutzt.

Ich bräuchte mal (als Root):
Code:
tlp-stat
und außerdem einen Trace des Systemstarts: http://thinkwiki.de/TLP_-_Linux_Stromsparen#Trace-Modus

Die langen Ausgaben kannst Du gern per http://paste.ubuntuusers.de posten.

@buergernb: sollte nicht besser Digitalflow beurteilen ob der von X220 Ei vorgeschlagene Workaround passend ist? :D
 
Hi,

@buergernb: sollte nicht besser Digitalflow beurteilen ob der von X220 Ei vorgeschlagene Workaround passend ist? :D
Stimmt. :D Hat mich nur gewundert, dass das hier die erste Lösung war die gepostet wird. TLP ist doch da, um solche Krücken auszuhebeln. Ich gebe aber zu, mein Kommentar klingt hart. War aber gar nicht so hart gemeint. @X220 Ei, sorry! ;)
 
Hab dein Tool mal installiert.

Könnte man da hdaps für Ivy-Bridge-Modelle noch einbauen? Hab ein X230 wo tp_smapi nicht funktioniert.
 
Hm. Andere Frage, wenn ich nur die Ladeschwellen nutzen will, kann ich alle anderen Optionen einfach auskommentieren?

Z.B. sodass nur das in der Konfigurationsdatei steht:

Code:
TLP_ENABLE=1

START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=80

START_CHARGE_THRESH_BAT1=75 STOP_CHARGE_THRESH_BAT1=80
 
Zuletzt bearbeitet:
Moin
wenn ich nur die Ladeschwellen nutzen will, kann ich alle anderen Optionen einfach auskommentieren?
Wozu? Das ist ja wie mit Kanonen auf Spatzen schießen.

Folgender Shellcode macht reicht dafür aus:
Code:
#!/bin/bash
echo 50  > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 80  > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
echo 50  > /sys/devices/platform/smapi/BAT1/start_charge_thresh
echo 80  > /sys/devices/platform/smapi/BAT1/stop_charge_thresh

RomanX
 
Ach nur weil ich mich nicht so auskenne. Wollte nix ruinieren mit falschen Einstellungen. :-)

Code:
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"
DISK_APM_LEVEL_ON_BAT="191"
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
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE=5
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
USB_AUTOSUSPEND=0
RESTORE_DEVICE_STATE_ON_STARTUP=1
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
START_CHARGE_THRESH_BAT1=75
STOP_CHARGE_THRESH_BAT1=80

Das sind laut tlp-stat -c meine verwendeten Parameter. Ich hoffe dass alles passt?

Danke jedenfalls für die Arbeit an dem tool. :-)

PS: Wenn du einen X230-Tester brauchst steh ich zur Verfügung. Habe Ubuntu 12.04.01.
 
Zuletzt bearbeitet:
Mit den Standard-Einstellungen kann man erstmal wenig falsch machen. Warum hast Du USB-Autosuspend global deaktiviert? Für den Stromverbrauch ist es günstiger per Blacklist problematische Geräte auszunehmen – beim X230 könnte das z.B. das Ericsson-WWAN sein.

Zeig mal bitte die kpl. Ausgabe
Code:
sudo tlp-stat
 
Ok, hier ist meine aktuelle Liste. Hab noch ein wenig aktiviert. Das USB-Zeug fehlt aber noch.

Code:
--- TLP 0.3.7.1 --------------------------------------------

+++ 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
CPU_SCALING_GOVERNOR_ON_AC=ondemand
CPU_SCALING_GOVERNOR_ON_BAT=ondemand
CPU_SCALING_MIN_FREQ_ON_AC=1200000
CPU_SCALING_MAX_FREQ_ON_AC=2601000
CPU_SCALING_MIN_FREQ_ON_BAT=1200000
CPU_SCALING_MAX_FREQ_ON_BAT=1900000
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1
NMI_WATCHDOG=0
DISK_DEVICES="sda"
DISK_APM_LEVEL_ON_AC="254"
DISK_APM_LEVEL_ON_BAT="191"
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
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE=5
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
USB_AUTOSUSPEND=0
RESTORE_DEVICE_STATE_ON_STARTUP=0
DEVICES_TO_DISABLE_ON_STARTUP="bluetooth"
DEVICES_TO_ENABLE_ON_STARTUP="wifi wwan"
DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan wifi bluetooth"
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
START_CHARGE_THRESH_BAT1=75
STOP_CHARGE_THRESH_BAT1=80
DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"
DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="wwan"
DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="wifi"

+++ System Info
System = LENOVO ThinkPad X230 23257R6
BIOS = G2ET33WW (1.13 )
Release = Ubuntu 12.04.1 LTS
Kernel = 3.2.0-31-generic x86_64
/proc/cmdline = BOOT_IMAGE=/boot/vmlinuz-3.2.0-31-generic root=UUID=1be67bd9-6f79-4e69-a9a8-e73a0674af18 ro quiet splash pcie_aspm=force i915.i915_enable_rc6=1 vt.handoff=7

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

+++ Processor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq =  1200000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq =  1900000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies =  2601000 2600000 2500000 2400000 2300000 2200000 2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq =  1200000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq =  1900000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_frequencies =  2601000 2600000 2500000 2400000 2300000 2200000 2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq =  1200000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq =  1900000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_available_frequencies =  2601000 2600000 2500000 2400000 2300000 2200000 2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq =  1200000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq =  1900000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_available_frequencies =  2601000 2600000 2500000 2400000 2300000 2200000 2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 [kHz]

/sys/devices/system/cpu/sched_mc_power_savings = 1
/sys/devices/system/cpu/sched_smt_power_savings = 1
/proc/sys/kernel/nmi_watchdog = 0

+++ Undervolting
PHC kernel not available.

+++ Temperatures
CPU temp               =    51 [°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 = 60
/proc/sys/vm/dirty_background_ratio = 1
/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     = HITACHI HTS725050A7E630                 
          Firmware  = GH2ZB390
          APM Level = 191
          scheduler = cfq

        SMART info:
            4 Start_Stop_Count          =       65 
            5 Reallocated_Sector_Ct     =        0 
            9 Power_On_Hours            =       36 [h]
          193 Load_Cycle_Count          =      345 
          194 Temperature_Celsius       =       31 (Min/Max 17/42)  [°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 = powersave

+++ Intel Graphics
/sys/module/i915/parameters/powersave = 1
/sys/module/i915/parameters/i915_enable_rc6 = 1
/sys/module/i915/parameters/i915_enable_fbc = -1
/sys/module/i915/parameters/lvds_downclock = 0
/sys/module/i915/parameters/semaphores = -1

+++ Wireless
bluetooth = off (software)
wifi      = on
wwan      = off (software)

wlan0(iwlwifi): power management = on

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

+++ ThinkPad Battery (Main)
Hint: ThinkPad extended battery info not available (tp-smapi kernel module not installed).
/sys/class/power_supply/BAT0/manufacturer = SANYO
/sys/class/power_supply/BAT0/model_name = 45N1027
/sys/class/power_supply/BAT0/cycle_count = 0
/sys/class/power_supply/BAT0/energy_full_design = 93240 [mWh]
/sys/class/power_supply/BAT0/energy_full = 95100 [mWh]
/sys/class/power_supply/BAT0/energy_now = 35810 [mWh]
/sys/class/power_supply/BAT0/power_now = 12352 [mW]
/sys/class/power_supply/BAT0/status = Discharging

tpacpi-bat.BAT0.startChargeThreshold =    75 [%]
tpacpi-bat.BAT0.stopChargeThreshold  =    80 [%]
tpacpi-bat.BAT0.forceDischarge = 0

+++ Runtime Power Management
/sys/bus/pci/devices/0000:00:00.0/power/control = auto [Host]
/sys/bus/pci/devices/0000:00:19.0/power/control = auto [Ethernet]
/sys/bus/pci/devices/0000:00:1b.0/power/control = auto [Audio]
/sys/bus/pci/devices/0000:02:00.0/power/control = auto [Card]
/sys/bus/pci/devices/0000:03:00.0/power/control = auto [Wireless]

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

Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 2.0 root hub (hub)
Bus 002 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 2.0 root hub (hub)
Bus 003 Device 001 ID 1d6b:0002 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 2.0 root hub (hub)
Bus 004 Device 001 ID 1d6b:0003 control = auto, autosuspend_delay_ms =  2000 -- Linux Foundation 3.0 root hub (hub)
Bus 001 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =  2000 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 002 Device 002 ID 8087:0024 control = auto, autosuspend_delay_ms =  2000 -- Intel Corp. Integrated Rate Matching Hub (hub)
Bus 003 Device 002 ID 0bdb:1926 control = on,   autosuspend_delay_ms =  2000 -- Ericsson Business Mobile Networks BV  (cdc_acm, cdc_wdm, cdc_ncm)
Bus 001 Device 003 ID 147e:2020 control = on,   autosuspend_delay_ms =  2000 -- Upek  (no driver)
Bus 001 Device 005 ID 04f2:b2eb control = auto, autosuspend_delay_ms =  2000 -- Chicony Electronics Co., Ltd  (uvcvideo)
 
Diese Bootoptionen sind in 12.04 definitiv nicht erforderlich (s. TLP-Doku):
Code:
pcie_aspm=force i915.i915_enable_rc6=1

Sofern Du nur einen Akku hast, sind die Einstellungen für den 2. Akku (Unterschnall)
Code:
START_CHARGE_THRESH_BAT1=75
STOP_CHARGE_THRESH_BAT1=80
überflüssig.

Ich wüßte als Programmautor nach wie vor gerne den Hintergrund, warum Du kein USB Autosuspend nutzen magst.
 
Diese Bootoptionen sind in 12.04 definitiv nicht erforderlich (s. TLP-Doku):
Code:
pcie_aspm=force i915.i915_enable_rc6=1

Sofern Du nur einen Akku hast, sind die Einstellungen für den 2. Akku (Unterschnall)
Code:
START_CHARGE_THRESH_BAT1=75
STOP_CHARGE_THRESH_BAT1=80
überflüssig.

Ich wüßte als Programmautor nach wie vor gerne den Hintergrund, warum Du kein USB Autosuspend nutzen magst.

Ok, aber vielleicht hänge ich mal einen 2. an, kann man nie wissen.

Danke für den Hinweis, ich gebe das aus den Grub-Optionen. USB-Einstellungen mach ich heute Abend dann. Die eingebauten Geräte aus lsusb in die Blacklist schreiben oder?
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben