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:
linrunner' schrieb:
Wenn Du PHC verwenden möchtest ohne laufend Kernel bzw. -module zu kompilieren, dann könntest Du Ubuntu 10.04 mit meinem tp-Kernel verwenden.
super, wusste gar nicht, dass es mittlerweile schon sowas gibt. :thumbsup:
Gibts eigentlich auch ein PPA, das PHC und tuxonice gleichzeitig im kernel einbaut? Ich hab grad mal tuxonice ausprobiert, aber das lädt dann einen vorkompilierten kernel, wo dann das PHC modul nicht drin ist.
 
hier: https://launchpad.net/~tuxonice/+archive/ppa
ich hab das ppa hinzugefügt und wie beschrieben installiert.

mit dem problem bei der hibernation scheine ich nicht alleine zu sein. habe schon überall danach gesucht, aber anscheinend bin ich nicht allein mit dem problem. auf eine lösung gekommen noch nicht gestoßen in jeglichen ubuntu foren.
sowohl bei pm-hibernate als auch mit uswsusp geht das lesen und entpacken des images beim resume zwar recht schnell. aber danach bleibt der laptop ca 30-50 sek in einem zustand hängen, wo nicht wirklich was passiert. dann erst taucht das fenster zur passworteingabe auf.
 
Zunächst einmal finde ich TLP einfach klasse. Ich nutze es schon eine ganze Weile und war froh nun viele Einstellungen nur an einer Stelle vornehmen zu müssen, das hat sich nach Einbau einer SSD nun aber leider geändert, daher hier mal zwei Feature Requests:

1)
Nachdem mein T61 ja lustig zwischen sda und sdb für meine SSD im HDD Bay umschaltet je nachdem ob eine 2. HDD im Ultrabay steckt fände ich es sehr praktisch wenn man die Einstellungen fürs Stromsparen und APM der Platten nicht nur an sda oder sdb festmachen könnte sondern am Namen der Platte (oder noch viel besser am "Nicht-Namen" (der Name der HDD im Ultrabay ändert sich schonmal, der der SSD im HDD Bay aber nicht)) festmachen könnte.
Also quasi derart
if HDD.NAME != "XLR8_PL120" then "enable powermanagement with spindown"

2)
Da es noch (solange cfq bei Verwendung von SSDs nicht zu deadline mutiert) Sinn macht den block device scheduler für SSDs von cfq auf deadline zu wechseln wäre auch eine Funktion der Form
if HDD.NAME = "XLR8_PL120" then "change block scheduler to deadline"
sehr praktisch.
 
@Stifflers_mom

Rein Interesse halber, hast du eine Nvidia Grafikkarte im TP?
Mein T61 mach beim resume nach nem s2disk nämlich dank Nvidia Treiber auch 2x30 Sekunden Pause in denen lediglich 2 mal ein lauter Piepton (den man nicht muten kann) ausgegeben wird.
Tuxonice hatte mich vor geraumer Zeit dort allerdings auch nicht weiter gebracht. Nur die Nutzung von nv statt nvidia brachte Abhilfe - und kürzere Akkulaufzeit dank Powersavelosigkeit des nv Treibers.

Gut, nachdem nun eine SSD im TP steckt ist s2disk erheblich uninteressanter geworden, aber interessieren würde es mich schon.
 
nein, kein nvidia. Hab ne onboard Intel GMA5400 (oder so ähnlich...)
das Notebook ist ein R400, falls ichs noch nicht erwähnt hab.
 
@egalus: zu deinen Feature Requests:

1) kommt auf die Wunschliste, wartet aber einstweilen auf gute Einfälle wie es implementiert werden kann und außerdem:
- es abwärtskompatibel ist innerhalb der vorhandenen Variable DISK_DEVICES
- für die Benutzer einfach zu verstehen und zu handhaben ist
Ich werde also mal abwarten, was ihr in deinem Thread dazu so an Lösungen/Skripts präsentiert. :squint:

2) kommt nicht auf die Wunschliste, da imho der Bezug zum Thema Stromsparen fehlt
 
linrunner' schrieb:
@egalus: zu deinen Feature Requests:

1) kommt auf die Wunschliste, wartet aber einstweilen auf gute Einfälle wie es implementiert werden kann und außerdem:
- es abwärtskompatibel ist innerhalb der vorhandenen Variable DISK_DEVICES
- für die Benutzer einfach zu verstehen und zu handhaben ist
Ich werde also mal abwarten, was ihr in deinem Thread dazu so an Lösungen/Skripts präsentiert. :squint:

2) kommt nicht auf die Wunschliste, da imho der Bezug zum Thema Stromsparen fehlt

Ich hab da schon ne passende Idee die ich hoffe am Wochenende umzusetzen bei der man einfach zusätzlich den Modellnamen der SSD angeben kann und bei der dann aus der DISK_DEVICES Liste alle dem Namen entsprechenden SSDs rausgesucht werden. Dazu könnte es dann SSD Parameter in der TLP config geben. Das dürfte durchsichtig genug sein, oder?

zu 2)
Auch das hat was mit Stromsparen zu tun. Deadline verbraucht wesentlich weniger CPU Cycles als CFQ :-)
 
tlp startet nicht automatisch

Hallo,
wenn tlp (0.2.8) gestartet ist, funktioniert es wunderbar! Leider startet es aber nicht automatisch bei Systemstart. Erst mit dem Befehl sudo tlp start springt es an. In der /etc/default/tlp steht TLP_ENABLE=1.
Auf meinem Rechner läuft Kubuntu 10.10 Maverick. laptop-modes nicht nicht installiert, auch laufen keine anderen Skripte.
Woran könnte das liegen oder vielmehr: Wie kann ich den Autostart aktivieren?

TIA
 
Hi,

und willkommen im Forum!

Woran erkennst Du denn, daß TLP nicht gestartet wird? Zeig mal bitte
Code:
egrep -v '^#|^\s*$' /etc/default/tlp
sudo tlp-stat
 
Hi linrunner,
ich habe im Ultrabay eine 2. HDD, die nur bei Bedarf anlaufen soll. Ansonsten soll sie ruhen. Das macht sie allerdings erst wenn ich tlp manuell gestartet habe. Daran merke ich es.

egrep -v '^#|^\s*$' /etc/default/tlp
Code:
TLP_ENABLE=1
DISK_IDLE_SECS_ON_AC=10
DISK_IDLE_SECS_ON_BAT=2
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
DISK_DEVICES="sda sdb"
DISK_APM_LEVEL_ON_AC="254 127"
DISK_APM_LEVEL_ON_BAT="128 128"  
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE=0
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
USB_AUTOSUSPEND=1

sudo tlp-stat
Code:
--- tlp 0.2.8 --------------------------------------------
System = LENOVO ThinkPad W500 40622XG
BIOS = 6FET85WW (3.15 )
Release = Ubuntu 10.10
Kernel = 2.6.35-24-generic x86_64

tlp power save = enabled
power source = ac

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand

/sys/devices/system/cpu/sched_mc_power_savings = 1
/sys/devices/system/cpu/sched_smt_power_savings = (not available)

/sys/devices/system/cpu/cpu?/cpufreq/phc_controls = (phc kernel not available)

/proc/acpi/ibm/thermal = temperatures:  45 44 33 51 33 -128 31 -128 37 46 47 -128 -128 -128 -128 -128

/proc/sys/vm/laptop_mode = 10
/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)

/dev/sda:
      	Model 	= ADATA SSD S599 128GB                	
      	APM Level = none/disabled

    	SMART info:
      	Reallocated_Sector_Ct 	=   1792 
      	Power_On_Hours        	= 2147483647 
/dev/sdb:
      	Model 	= HITACHI HTS722020K9SA00  FDE        	
      	APM Level = 127

    	SMART info:
      	Start_Stop_Count      	=   1588 
      	Reallocated_Sector_Ct 	=  	0 
      	Power_On_Hours        	=   3546 
      	Load_Cycle_Count      	=  18053 

/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/module/pcie_aspm/parameters/policy = default performance [powersave] 

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

wlan0(iwlagn): power management = off

/sys/module/snd_hda_intel/parameters/power_save = 0
/sys/module/snd_hda_intel/parameters/power_save_controller = Y

ThinkPad extended battery info not available (missing tp_smapi kernel module).
/sys/class/power_supply/BAT0/manufacturer = SANYO
/sys/class/power_supply/BAT0/energy_full_design = 56160 [mWh]
/sys/class/power_supply/BAT0/energy_full = 37080 [mWh]
/sys/class/power_supply/BAT0/energy_now = 35500 [mWh]

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

/sys/bus/usb/devices/6-1/power/autosuspend = 2, level = on -- 046a:0101 Wireless Desktop (usbhid)
/sys/bus/usb/devices/6-2/power/autosuspend = 2, level = on -- 045e:0745 Microsoft® Nano Transceiver v1.0 (usbhid)
/sys/bus/usb/devices/usb1/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller (hub)
/sys/bus/usb/devices/usb2/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller (hub)
/sys/bus/usb/devices/usb3/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb4/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb5/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb6/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb7/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb8/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
 
In dem Output haben die Einstellungen alle gezogen, hast Du mal einen wo es nicht geklappt hat?

Falls es um das Anhalten der Bayplatte geht: das ist kein direktes Feature von TLP, sondern entsteht höchstens indirekt durch einen entsprechenden APM-Level. Meintest Du das?
 
Ja, es geht um das APM-Level. bei gestarteten tlp macht die Platte nach 10 Sekunden den spindown (127). Funktioniert ja auch wie gesagt wunderbar, nur eben nicht automatisch bei Systemstart, sondern erst nach dem manuellen Aufrufen von tlp.
Direkt nach dem booten, ohne dass ich tlp manuell gestartet habe, bekomme ich folgende Ausgabe:
Code:
TLP_ENABLE=1
DISK_IDLE_SECS_ON_AC=10
DISK_IDLE_SECS_ON_BAT=2
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
DISK_DEVICES="sda sdb"
DISK_APM_LEVEL_ON_AC="254 127"
DISK_APM_LEVEL_ON_BAT="128 128"  
SATA_LINKPWR_ON_AC=max_performance
SATA_LINKPWR_ON_BAT=min_power
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5
WOL_DISABLE=Y
SOUND_POWER_SAVE=0
SOUND_POWER_SAVE_CONTROLLER=Y
BAY_POWEROFF_ON_BAT=0
BAY_DEVICE="sr0"
USB_AUTOSUSPEND=1

Code:
--- tlp 0.2.8 --------------------------------------------
System = LENOVO ThinkPad W500 40622XG
BIOS = 6FET85WW (3.15 )
Release = Ubuntu 10.10
Kernel = 2.6.35-24-generic x86_64

tlp power save = enabled
power source = ac

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = ondemand

/sys/devices/system/cpu/sched_mc_power_savings = 1
/sys/devices/system/cpu/sched_smt_power_savings = (not available)

/sys/devices/system/cpu/cpu?/cpufreq/phc_controls = (phc kernel not available)

/proc/acpi/ibm/thermal = temperatures:  47 42 32 53 30 -128 26 -128 32 42 48 -128 -128 -128 -128 -128

/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)

/dev/sda:
      	Model 	= ADATA SSD S599 128GB                	
      	APM Level = none/disabled

    	SMART info:
      	Reallocated_Sector_Ct 	=   1792 
      	Power_On_Hours        	= 2147483647 
/dev/sdb:
      	Model 	= HITACHI HTS722020K9SA00  FDE        	
      	APM Level = 128

    	SMART info:
      	Start_Stop_Count      	=   1590 
      	Reallocated_Sector_Ct 	=  	0 
      	Power_On_Hours        	=   3553 
      	Load_Cycle_Count      	=  18067 

/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/module/pcie_aspm/parameters/policy = default performance [powersave] 

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

wlan0(iwlagn): power management = on

/sys/module/snd_hda_intel/parameters/power_save = 0
/sys/module/snd_hda_intel/parameters/power_save_controller = Y

ThinkPad extended battery info not available (missing tp_smapi kernel module).
/sys/class/power_supply/BAT0/manufacturer = SANYO
/sys/class/power_supply/BAT0/energy_full_design = 56160 [mWh]
/sys/class/power_supply/BAT0/energy_full = 36700 [mWh]
/sys/class/power_supply/BAT0/energy_now = 36700 [mWh]

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

/sys/bus/usb/devices/6-1/power/autosuspend = 2, level = on -- 046a:0101 Wireless Desktop (usbhid)
/sys/bus/usb/devices/6-2/power/autosuspend = 2, level = on -- 045e:0745 Microsoft® Nano Transceiver v1.0 (usbhid)
/sys/bus/usb/devices/usb1/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller (hub)
/sys/bus/usb/devices/usb2/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller (hub)
/sys/bus/usb/devices/usb3/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb4/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb5/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb6/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb7/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
/sys/bus/usb/devices/usb8/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller (hub)
 
War beim letztem Output durchgängig das Netzteil angeschlossen? Ich frage, weil das die BAT-Einstellungen sind.

Aktiviere mal den Trace-Modus und gib den Output von je einem Bootvorgang am Netzteil und im Akkubetrieb per http://paste.ubuntuusers.de (damit die Posts lesbar bleiben).
 
Der Laptop läuft nahezu immer am Netzstrom. Als ich ihn im Akkubetrieb hochgefahren habe, funktionierte der spindown direkt. Nach dem Einstecken des Netzstroms und ansprechen der Festplatte, ging sie danach aber nicht mehr in den Ruhezustand zurück. Beim Aufruf von sudo tlp start dann schon. Hier sind die Ausagaben des Trace-Modus:
Ausgabe mit Netzstrom
Ausgabe mit Akku
 
Danke für den Trace. Ich fand ihn nach der ersten Durchsicht zunächst sehr kurios:
Netzbetrieb
Zuerst wird TLP vom System im AC-Modus aufgerufen:
Code:
Dec 29 09:37:14 nolfe tlp[1446,1428]: +++ mode=false
Kurz darauf wird es dann im BAT-Modus aufgerufen:
Code:
Dec 29 09:37:20 nolfe tlp[1895,1888]: +++ mode=true
Akkubetrieb
Hier passiert es genau umgekehrt - zuerst BAT dann AC
Code:
Dec 29 09:42:09 nolfe tlp[1459,1437]: +++ mode=true
Code:
Dec 29 09:42:16 nolfe tlp[1899,1890]: +++ mode=false
Dann fiel mir auf, daß Du Kubuntu einsetzt. Ich vermute, daß Du die Energieeinstellungen angepaßt und damit unwissentlich das Problem verursacht hast. Schau mal in diesen Screenshot. Wichtig für TLP ist, daß in allen für den Akkubetrieb verwendeten Profilen bei "Systemenergiesparschema" "powersave" steht und beim Profil für den Netzbetrieb das Gegenteil (weiß nicht wie es heißt, da gerade kein KDE zur Hand). Vielleicht setzt Du bei den Profilen - falls möglich - erstmal alles auf Default zurück. Bringt eh nichts was man da einstellen kann.

Folgendes ist mir noch an deiner Konfiguration aufgefallen:
Code:
DISK_IDLE_SECS_ON_AC=10
Hier gehört für den Netzbetrieb eigentlich der Wert 0 hin. Hast Du das ändern müssen um den Spindown zu erreichen?
Code:
ThinkPad extended battery info not available (missing tp_smapi kernel module).
Das Paket tp-smapi-dkms ist nicht installiert, wäre aber nützlich um mehr Infos zum Akku zu bekommen bzw. die Ladeschwellen einstellen zu können.
 
Super linrunner, das hat das Problem gelöst! Ich weiß garnicht wie es dazu kam, dass die Energieoptionen so merkwürdig eingestellt waren.
Vielen Dank!
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben