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:
Ich hatte das Problem neulich auch mal erwähnt. Bei mir (Fedora 17 auf X220 Sandy-Bridge) verbaucht der 3.5er im Idle ca. 7.2 Watt, der 3.4 nur 6.0 Watt.

Bisher habe ich nirgendwo lesen können, dass an dem Problem in dem Sinne gearbeitet wird, dass es einen Patch noch für Kernel 3.5 geben soll, etwa in der Form, dass man die (Verschlimm-) Besserungen wieder rückgängig macht. Weiss da jemand mehr?

P.S. Besteht eigentlich eine Chance, dass TLP hier helfen kann? (Ich kenne die technsichen Details nicht.)
 
Zuletzt bearbeitet:
Wenn es der Bug hier ist, wird anscheiend doch wenigstens daran gearbeitet. Und ich kann zwar aus mangelnder Kenntnis nur raten, kann mir aber nicht denken, dass TLP etwas daran ändern kann, es sei denn es schaltet die Grafikkarte ab. Aber ich lasse mich gerne eines besseren belehren.
 
bei mir siehts nicht so schlimm aus. auf dem x61 hat sich der verbrauch gegenüber der letzten messung vor ca 2 wochen nicht verändert, obwohl ich gestern von ubuntu 12.04 auf 12.10 gewechselt bin. kernel ist der 3.5.0-10-generic. die werte vom mai erreiche ich aber leider nicht mehr. statt 8,2 w verbraucht mein x61 jetzt 8,8 w im idle.
 
Seit Kernel > 3.5.0 schnallt bei mir der Prozess ksoftirqd/3 auf 100%, wenn sich die Ericsson H5321gw nicht in der USB Blacklist befindet.
 
TLP 0.3.7.1 released (Fehlerbehebung)

Hallo,

eine kleine Fehlerbehebung ist erforderlich: Changelog.
 
Zuletzt bearbeitet:
Moin Moin

Ich hab die Version 0.3.7.1 für Fedora fertig.
Wer sie testen möchte, kann sie aus dem updates-testing installieren.

Code:
yum makecache --enablerepo tlp-updates-testing
yum update --enablerepo tlp-updates-testing
Wenn keine Probleme auftauchen, kommt die Version nächste Woche ins updates-Repo.

Schönes Wochende

Nachtrag:

Auch "acpi_call" liegt jetzt im updates-testing repository.

Code:
yum makecache --enablerepo tlp-updates-testing
yum install acpi_call --enablerepo tlp-updates-testing


RomanX
 
Zuletzt bearbeitet:
So. der Urlaub ist vorbei... Ich habe jetzt das Arch-Linux TLP Update auf Version 0.3.7.1 hochgeladen - ich hoffe, das alles funktioniert wie gedacht. Wenn nicht, gebt mir einfach bescheid...

Grüße,
g3eB4Y
 
Moin Moin

Nachdem ich nur positive Rückmeldungen zu acpi_call und tlp 0.3.7.1 für Fedora bekommen habe, stehen die Versionen jetzt im updates-Repo für alle zur Verfügung.
Es hat sich nur die Versionsnummer geändert.

RomanX

P.S.: @linrunner
OpenSuse 12.2 ist raus. Die haben etliche Änderungen aus dem Fedora Projekt übernommen. Damit werden die spec-Files immer ähnlicher.
 
Hallo,

ich hab ein kleines Problem mit dem setzen des APM-Levels der Festplatte über TLP bei Arch Linux.

TLP wird über systemd gestartet und beim Start wird auch der gewünschte Wert (254) gesetzt. Nach einem Suspend2Ram ist jedoch wieder der Standardwert (128) eingetragen. Hab ich da bei der Konfiguration irgendwo einen Fehler drin? Vielleicht hat ja jemand das gleiche Problem oder ein Lösungsvorschlag.

tlp-stat vor Suspend2Ram:
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 
 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="192" 
 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=1 
 SOUND_POWER_SAVE_CONTROLLER=Y 
 BAY_POWEROFF_ON_BAT=1 
 BAY_DEVICE="sr0" 
 RUNTIME_PM_ON_AC=on 
 RUNTIME_PM_ON_BAT=auto 
 USB_AUTOSUSPEND=1 
 RESTORE_DEVICE_STATE_ON_STARTUP=0 
 DEVICES_TO_DISABLE_ON_STARTUP="bluetooth" 
 START_CHARGE_THRESH_BAT0=75 
 STOP_CHARGE_THRESH_BAT0=80 
  
 +++ System Info 
 System = LENOVO ThinkPad L420 7826AD9 
 BIOS = 8GET42WW (1.19 ) 
 Kernel = 3.5.3-1-ARCH x86_64 
 /proc/cmdline = cryptdevice=/dev/sda2:main root=/dev/mapper/main-root ro lang=de locale=de_DE.UTF-8 i915.i915_enable_rc6=1 initrd=../initramfs-linux.img BOOT_IMAGE=../vmlinuz-linux  
  
 +++ System Status 
 TLP power save = enabled 
 power source = ac 
  
 +++ Processor 
 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand 
 /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/cpu0/cpufreq/scaling_available_frequencies =  2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 1100000 1000000  900000  800000 [kHz] 
  
 /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand 
 /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/cpu1/cpufreq/scaling_available_frequencies =  2100000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 1100000 1000000  900000  800000 [kHz] 
  
 /proc/sys/kernel/nmi_watchdog = 0 
  
 +++ Undervolting 
 PHC kernel not available. 
  
 +++ Temperatures 
 /proc/acpi/ibm/thermal = 42 0 42 0 29 51 30 51 [°C] 
 /proc/acpi/ibm/fan     =     0 [/min] 
  
 +++ File System 
 /proc/sys/vm/laptop_mode = 0 
 /proc/sys/vm/dirty_writeback_centisecs = 1500 
 /proc/sys/vm/dirty_expire_centisecs = 1500 
 /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 HTS543232A7A384                  
           Firmware  = ES2ZB70T 
           APM Level = 254 
           scheduler = cfq 
  
         SMART info: 
             4 Start_Stop_Count          =      789  
             5 Reallocated_Sector_Ct     =        0  
             9 Power_On_Hours            =     1358 [h] 
           193 Load_Cycle_Count          =     2617  
           194 Temperature_Celsius       =       28 (Min/Max 13/41)  [°C] 
 

 +++ SATA Aggressive Link Power Management 
 /sys/class/scsi_host/host0/link_power_management_policy = max_performance 
 /sys/class/scsi_host/host1/link_power_management_policy = max_performance 
 /sys/class/scsi_host/host2/link_power_management_policy = max_performance 
 /sys/class/scsi_host/host3/link_power_management_policy = max_performance 
 /sys/class/scsi_host/host4/link_power_management_policy = max_performance 
 /sys/class/scsi_host/host5/link_power_management_policy = max_performance 
  
 +++ PCIe Active State Power Management 
 /sys/module/pcie_aspm/parameters/policy = default (disabled by kernel) 
  
 +++ 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      = none (no device) 
  
 wlan0(iwlwifi): power management = off 
  
 +++ Audio 
 /sys/module/snd_hda_intel/parameters/power_save = 1 
 /sys/module/snd_hda_intel/parameters/power_save_controller = Y 
  
 +++ ThinkPad Battery (Main) 
 /sys/devices/platform/smapi/BAT0/manufacturer = LGC 
 /sys/devices/platform/smapi/BAT0/model = 42T4911 
 /sys/devices/platform/smapi/BAT0/manufacture_date = 2011-07-18 
 /sys/devices/platform/smapi/BAT0/first_use_date = 2012-03-22 
 /sys/devices/platform/smapi/BAT0/cycle_count = 31 
 /sys/devices/platform/smapi/BAT0/design_capacity = 56160 [mWh] 
 /sys/devices/platform/smapi/BAT0/last_full_capacity = 58100 [mWh] 
 /sys/devices/platform/smapi/BAT0/remaining_capacity = 45500 [mWh] 
 /sys/devices/platform/smapi/BAT0/remaining_percent = 78 [%] 
 /sys/devices/platform/smapi/BAT0/remaining_running_time_now = 0 [min] 
 /sys/devices/platform/smapi/BAT0/remaining_charging_time = not_charging [min] 
 /sys/devices/platform/smapi/BAT0/power_now = 0 [mW] 
 /sys/devices/platform/smapi/BAT0/power_avg = 0 [mW] 
  
 /sys/devices/platform/smapi/BAT0/start_charge_thresh = 81 [%] 
 /sys/devices/platform/smapi/BAT0/stop_charge_thresh = 80 [%] 
 /sys/devices/platform/smapi/BAT0/force_discharge = 0 
  
 +++ Runtime Power Management 
 /sys/bus/pci/devices/0000:00:00.0/power/control = on [Host] 
 /sys/bus/pci/devices/0000:00:1b.0/power/control = on [Audio] 
 /sys/bus/pci/devices/0000:03:00.0/power/control = on [Wireless] 
 /sys/bus/pci/devices/0000:09:00.0/power/control = on [Ethernet] 
  
 +++ USB 
 tlp usb autosuspend = enabled 
 tlp usb blacklist = (not configured) 
  
 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 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 001 Device 003 ID 147e:1002 control = auto, autosuspend_delay_ms =  2000 -- Upek  (no driver) 
 Bus 002 Device 003 ID 1241:1177 control = on,   autosuspend_delay_ms =  2000 -- Belkin F8E842-DL Mouse (usbhid) 
 Bus 002 Device 004 ID 04f2:b228 control = auto, autosuspend_delay_ms =  2000 -- Chicony Electronics Co., Ltd  (uvcvideo)

tlp-stat nach Suspend2Ram (Rest identisch):
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 
 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="192" 
 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=1 
 SOUND_POWER_SAVE_CONTROLLER=Y 
 BAY_POWEROFF_ON_BAT=1 
 BAY_DEVICE="sr0" 
 RUNTIME_PM_ON_AC=on 
 RUNTIME_PM_ON_BAT=auto 
 USB_AUTOSUSPEND=1 
 RESTORE_DEVICE_STATE_ON_STARTUP=0 
 DEVICES_TO_DISABLE_ON_STARTUP="bluetooth" 
 START_CHARGE_THRESH_BAT0=75 
 STOP_CHARGE_THRESH_BAT0=80 
  
 ...

 +++ Storage Devices 
 /dev/sda: 
           Model     = HITACHI HTS543232A7A384                  
           Firmware  = ES2ZB70T 
           APM Level = 128 
           scheduler = cfq 
  
         SMART info: 
             4 Start_Stop_Count          =      790  
             5 Reallocated_Sector_Ct     =        0  
             9 Power_On_Hours            =     1358 [h] 
           193 Load_Cycle_Count          =     2619  
           194 Temperature_Celsius       =       28 (Min/Max 13/41)  [°C] 
  
 ...
 
Hi,

eigentlich kümmern sich die pm-utils darum, daß jeweils vor dem Suspend und nach dem Resume das Powermanagement aufgerufen wird, nicht TLP selbst. Unter Ubuntu gibt es dazu das zu pm-utils gehörende Skript /usr/lib/pm-utils/sleep.d/00powersave mit folgendem Inhalt:
Code:
#!/bin/sh

. "${PM_FUNCTIONS}"

command_exists pm-powersave || exit $NA

case $1 in
    suspend|hibernate) pm-powersave false ;;
    resume|thaw)       pm-powersave ;;
    *) exit $NA ;;
esac
exit 0
 
hmmm also bei mir scheint das unter Arch zu funktionieren - ich hab die gleiche Config wie du und nach dem Suspend ist alles immernoch bei 254...
 
Hi,

vielen Dank für die Antworten. Das Skript vom pm-utils existiert unter Arch auch, allerdings scheint es nicht ausgeführt zu werden. Ursache ist wohl der Wechsel auf Systemd.

Wenn ich pm-suspend direkt aufrufe, funktioniert alles. Bei systemctl suspend werden die pm-utils hooks jedoch nicht ausgeführt. Ich werde versuchen ein entsprechendes Skript unter /usr/lib/systemd/system-sleep/ anzulegen, dann solltes es laufen.
 
Im Paket sind in der Tat keine Vorkehrungen für systemd zu erkennen. Deine Lösung dann bitte hier posten. Einen Bugreport gegen das Arch-Paket solltest Du auch werfen.
 
Moin,

so hier dann mal das Ergebnis. Ich hab jetzt erstmal eine Datei /usr/lib/systemd/system-sleep/test.sh angelegt.
Code:
 #!/bin/sh
  
 case "$1" in 
   pre ) 
     pm-powersave false ;; 
   post ) 
     pm-powersave ;; 
 esac

Nach einem Suspend habe ich jetzt auch das gewünschte APM-Level, scheint also zu funktionieren. Dass bei dem Wechsel zu Systemd noch das eine oder andere Problemchen auftritt, war zu erwarten. Ohne deinen Hinweis auf pm-utils wäre ich aber nicht darauf gekommen, dass da ein Zusammenhang besteht.

Ein entsprechender Hinweis ist auch im Arch-Wiki zu finden: https://wiki.archlinux.org/index.php/Systemd#Sleep_hooks
 
Zuletzt bearbeitet:
sehe ich das richtig, das wir dann ein entsprechendes File im Systemd ordner brauchen? Wenn ich das richtig lese, wird pm-utils nciht von systemd getriggert...
 
hmm, wenn ich das richtig sehe wird ja die Hauptaufgabe von pm-utils, also die Suspend- und Resume-Vorgänge, auf Dauer (zumindest bei Arch Linux) von systemd übernommen. Nur pm-powersave wird noch benötigt, um die Energiespar-Skripte in /etc/pm/power.d/ bzw. /usr/lib/pm-utils/power.d/ auszuführen. Seit dem Update auf upower 0.9.18 wird systemd für Suspend/Hibernate genutzt, was bei mir zu dem Problem geführt hat. Diskussion dazu aus dem Arch Forum.

Also im pm-utils Paket von Fedora scheint es kein solches Skript zu geben (die doch auch systemd?).

Gut, wird aber jetzt Off-Topic, hat ja nicht mehr direkt mit TLP zu tun.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben