Linux Projektvorstellung: TLP – Linux Stromsparen

Linux Betriebssystem

linrunner

Ubuntuversteher
Themenstarter
Registriert
22 Juni 2007
Beiträge
13.275
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:
Da gibt es unter Ubuntu nichts zu aktivieren, passiert alles automatisch. Bei mir zeigt Powertop übrigens C0-C1-C2-C6 an. Schon mal im BIOS auf Default-Werte zurückgesetzt?
 
Zurückgesetzt hab ich noch nichts. Aber ich hab am BIOS auch noch nie etwas verstellt beim x200. Und wie gesagt, Windows nimmt den höhere C4 Werte an. Das seh ich am Verbrauch und hör ich am Fiepen.
Wo kann man eigentlich im BIOS die verschiedenen States einstellen?
 
Hallo linrunner


Recht tolles Skript - Respekt :thumbup:

Jedoch hätte ich ein Problem und zwei Fragen :
Ich habe ein T42 2374 - 6G5 in dem eine Intel-Wireless 2915ABG Karte steckt. Ich gebe zu es handelt sich nicht um eine IBM-Karte mit FRU, habe sie bei eBay ersteigert und sie funktioniert tadelos. Sie vertägt sich gut mit dem T42 (Centrino-Logo am Anfang, keine Fehlermeldungen beim Boot, Fn+F5 geht auch) , nur die LED funktioniert nicht. Die karte wird aber vom tlp nicht richtig erkannt :
Code:
--- tlp 0.2.1 --------------------------------------------Hint: call me with 'sudo' to obtain more information!
System = (not available)Release = Linux Mint 8 Helena - Main EditionKernel = 2.6.31-19-generic-phc i686
tlp power save = enabledpower source = ac
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand/sys/devices/system/cpu/cpu0/cpufreq/phc_controls = 17:17 14:10 12:7 10:3 8:1 6:1 
/proc/acpi/ibm/thermal = temperatures:43 44 32 47 -128 -128 -128 -128
/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 = 40/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)
/dev/sda: Advanced power management level = (not available)
sata link power management: no ahci-enabled host controller detected
bluetooth = off (software)wifi = none (no device)wwan = none (no device)eth1 get_power:Power save level: 6 (AC) OFF/sys/module/snd_ac97_codec/parameters/power_save = 1
tlp usb autosuspend = not enabledtlp usb blacklist = (not available)
/sys/bus/usb/devices/usb1/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller/sys/bus/usb/devices/usb2/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller/sys/bus/usb/devices/usb3/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller/sys/bus/usb/devices/usb4/power/autosuspend = 2, level = auto -- 1d6b:0001 UHCI Host Controller/sys/bus/usb/devices/usb5/power/autosuspend = 2, level = auto -- 1d6b:0001 OHCI Host Controller/sys/bus/usb/devices/usb6/power/autosuspend = 2, level = auto -- 1d6b:0001 OHCI Host Controller/sys/bus/usb/devices/usb7/power/autosuspend = 2, level = auto -- 1d6b:0002 EHCI Host Controller

Entsprechend funktioniert das Ein-/Ausschalten nicht
Code:
~ $ wifi onwifi = none (no device)

Kannst du mir vieleicht helfen das Problem zu beheben.


Außerdem verstehe ich zwei einträge aus der config-Datei (/etc/default/tlp) nicht richtig:


# Change CPU voltages aka "undervolting" - Kernel with PHC patch required
# CAUTION: only use this, if you thoroughly understand what you are doing!
#PHC_CONTROLS="" .....
Was kommt dorthin ? Die VIDs ? (17:10:7:3:1:1 ) Wie verträgt sich diese Funktion mit dem Phc-Tool ?


# Battery charge thresholds
# (ThinkPad only, tp-smapi kernel module required)
# Main battery
#START_CHARGE_THRESH_BAT0=96
#STOP_CHARGE_THRESH_BAT0=100
Mit dem start-threshold ist wie viel der Akku geladen oder entladen ist (in %) ?

Danke im Voraus für eine Antwort - Karel

EDIT - Entschuldigung dass der Text den ich als CODE eingefügt habe falsch dargestellt ist. ich vermute es liegt an dem Chromium-Browser den ich benutze.
 
karlitos' schrieb:
rfkill[/font][/b] benutze, das der zuständige Treiber ipw2200 nicht unterstützt. Ich habe es mal in die Wunschliste aufgenommen (ohne Zieltermin!), denn prinzipiell könnte es gehen.

Allerdings fehlt mir die passende Hardware zum Entwicklen und Testen. Daher gib bitte den folgenden Output:
Code:
rfkill list
ls -1 /sys/bus/pci/drivers/ipw2200/*
(und ja ich benötige korrekte Zeilenumbrüche :D)

Nun noch ein kleiner Test aus/an. Bitte auch hier den vollst. Output posten:
Code:
sudo sh -c "echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill"
iwconfig
sudo sh -c "echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill"
iwconfig
[quote='karlitos',index.php?page=Thread&postID=788808#post788808]
Was kommt dorthin ? Die VIDs ? (17:10:7:3:1:1 ) Wie verträgt sich diese Funktion mit dem Phc-Tool ?
Ja, so ähnlich wie in deinem Beispiel. Bei mir z.B.:
Code:
12:28 10:24 8:20 6:19
Schau einfach nach mit
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Ich habe PHC-Tool noch nicht benutzt, daher weiß ich nicht ob und wie das Tool beim Systemstart die Werte setzt. Falls ja, dann solltest Du das dekativieren.[quote='karlitos',index.php?page=Thread&postID=788808#post788808]
#START_CHARGE_THRESH_BAT0=96
#STOP_CHARGE_THRESH_BAT0=100
Mit dem start-threshold ist wie viel der Akku geladen oder entladen ist (in %) ?
[/quote]Wenn die in START_ angegebene Schwelle unterschritten wird, beginnt der Ladevorgang und er endet bei der in STOP_ angegebenen Schwelle (Werte in %). Dieses Verhalten ist übrigens von der Hardware so vorgegeben und nicht änderbar, nur die Schwellen halt.
 
Hallo danke für deine hilfreiche Antworten.

das rfkill Tool kenne ich, ich habe damit die Wlan-Karte (Intel Wireless 2200) auf einem Acer ein-/ausschalten können (Ubuntu Karmic). Da hat es aber nicht out-of-the-box funktioniert und ich musste das Paket linux-backports-modules-karmic-generic instalieren. Da ich aber das PHC-kernel benutze wollte ich das Paket linux-backports-modules-karmic-generic-phc instalieren, da scheint es aber ein Problem zu geben :

linux-backports-modules-karmic-generic-phc:
Hängt ab: linux-backports-modules-2.6.31-19-generic-phc but it is not installable
Ich kann es also im Augenblick nicht ausprobieren , ich glaube aber dass das die Lösung sein könnte.
Das mit dem ein-/ausschalten der Karte über sudo sh -c "echo 1 > /sys/bus/pci/drivers/ipw2200/*/rf_kill" kenne ich zwar , der Network-manager hat aber darauf komisch reagiert. Er zeigte nicht dass die Karte aus ist, mehr hat er ständig nach der Verbindung gesucht.

----------------------------
Ich habe noch eine Idee , wie man das fehlende GUI zu dem TLP ersetzen könnte. Ich benutze schon längst das program myGtkMenu http://www.gnomefiles.org/app.php/myGtkMenu
Es hat mich genervt dass ich wegen dem Editieren der üblichen Konfigurationsdateien (xorg.conf, sources.list ...) ständig das Terminal aufrufen musste. Ich habe also in das Panel ein Starter zu dem Programm erzeugt und habe die entsprechenden Einträge (gksudo gedit ... ) in die dazugehörige Konfig-Datei eingfügt. Ergebniss kan man sich hier einsehen :
screenshot003t.png

So mit wäre man in der Lage die TLP-Befehle schnell und einfach über das Panel zu erreichen. Ein Beispiel meiner myGtkMenu-Konfig-Datei poste ich gleich wenn ich sie finde.


Grüße Karel
 
In Ubuntu gibt es kein Paket linux-backports-modules-karmic-generic-phc. Du könntest mal mit dem Standardkernel booten, die normalen linux-backports-modules-karmic-generic dazu installieren und damit testen.

Magst Du trotzdem mal die Outputs posten? Ggf. mit und ohne Backports.
 
Hi hier sind die gewünschten Ausgaben :
Code:
$ rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: yes
Hard blocked: no


Code:
 $ ls -1 /sys/bus/pci/drivers/ipw2200/*
/sys/bus/pci/drivers/ipw2200/bind
/sys/bus/pci/drivers/ipw2200/debug_level
/sys/bus/pci/drivers/ipw2200/new_id
/sys/bus/pci/drivers/ipw2200/remove_id
/sys/bus/pci/drivers/ipw2200/uevent
/sys/bus/pci/drivers/ipw2200/unbind
/sys/bus/pci/drivers/ipw2200/0000:02:02.0:
broken_parity_status
cfg
channels
class
cmd_log
command_event_reg
config
device
direct_dword
driver
eeprom_delay
enable
error
event_log
indirect_byte
indirect_dword
irq
led
local_cpulist
local_cpus
mem_gpio_reg
modalias
msi_bus
net
net_stats
nic_type
power
remove
rescan
resource
resource0
rf_kill
rtap_filter
rtap_iface
rtc
scan_age
speed_scan
status
subsystem
subsystem_device
subsystem_vendor
ucode_version
uevent
vendor

/sys/bus/pci/drivers/ipw2200/module:
drivers
holders
initstate
notes
parameters
refcnt
sections
srcversion
version



Code:
sudo sh -c "echo 0 > /sys/bus/pci/drivers/ipw2200/*/rf_kill"
sh: cannot create /sys/bus/pci/drivers/ipw2200/*/rf_kill: Directory nonexistent


Die karte konnte ich ein-/ausschalten mit echo 0 | sudo tee > /sys/bus/pci/drivers/ipw2200/*/rf_kill jedoch nur als roor


Code:
 $ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11g  ESSID:"Leni!Box"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: 00:15:0C:A8:41:00   
          Bit Rate:54 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0  
          Retry limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=85/100  Signal level=-45 dBm  Noise level=-89 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:6

-----
Ha! Ich habe endlich mal rausgefunden wie ich das Text in CODE dazu überrede Zeilenumbrüche zu machen - die muss immer ich doppeln !

aaaa
bbbb


schreibt er als aaabbb aber :

aaaa

bbbb
schreibt es schon richtig. Ziemlich dämlich :wacko: Vieleicht würde ich lieber die Ausgaben als Anhang hineintun.
Ich habe momentan kein nicht-phc-Kernel instaliert , um das verhalten mit den backport-Modulen zu testen muss ich zuerst ein installieren.
Ok , schöne WE zuerst - Karel
 
Hallo linrunner

danke für tlp!! Sowas habe ich schon länger gesucht.

hab noch eine frage an dich. Und zwar hab ich nach dem ich es installiert und konfiguriert habe, mal mit powertop meine Wake-ups angeschaut. Mir ist dabei aufgefallen dass meine Wlan-Karte für rund 70% der Wakeups verantwortlich ist. (sie powertop log)
Code:
Cn            Avg residency   P-states (frequencies)
C0 (cpu running)    ( 0.1%)     1.87 Ghz 0.4%
C0            0.0ms ( 0.0%)     1.87 Ghz 0.0%
C1 mwait      0.0ms ( 0.0%)     1.60 Ghz 0.1%
C2 mwait      0.1ms ( 0.0%)      800 Mhz99.6%
C6 mwait     36.9ms (99.9%)

Wakeups-from-idle per second : 27.5 interval: 15.0s
Power usage (ACPI estimate): 8.7W (6.2 hours)

Top causes for wakeups:
  70.3% ( 20.9)   <interrupt> : iwlagn 
   8.5% (  2.5) <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
   6.1% (  1.8) <kernel core> : hrtimer_start (tick_sched_timer)
   5.8% (  1.7)  <kernel IPI> : Rescheduling interrupts
   1.8% (  0.5)   <interrupt> : uhci_hcd:usb6, heci
   1.8% (  0.5) <kernel core> : heci_wd_timer (heci_wd_timer)
   1.8% (  0.5) <kernel core> : neigh_periodic_timer (neigh_periodic_timer)
   1.6% (  0.5)          phy0 : ieee80211_associated (ieee80211_sta_timer)
   0.7% (  0.2)   update-notifier : hrtimer_start_range_ns (hrtimer_wakeup)
   0.4% (  0.1)     xfdesktop : hrtimer_start_range_ns (hrtimer_wakeup)
   0.4% (  0.1)        Thunar : hrtimer_start_range_ns (hrtimer_wakeup)
   0.2% (  0.1) <kernel core> : add_timer (sta_info_cleanup)
   0.2% (  0.1)NetworkManager : hrtimer_start_range_ns (hrtimer_wakeup)
   0.2% (  0.1)       pdflush : wb_kupdate (wb_timer_fn)

Das kommt mir doch arg hoch vor. Hab dann mal genauer in die config geschaut und da ja auch die stromspar-Einstellungen für wlan gefunden, wobei dort ja auch die Intel 5300 genannt wird, welche bei meinem X200s verbaut ist.
Code:
# Wifi power save mode for Intel 2200, 3945, 4965, 5100, 5300:
# 1(min saving)..5(max saving)
# (Kernel < 2.6.30 only)
WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=5

der status liefert mir aber komischer weise eine "0" bei iwlagn powerlevel zurück. Sollte hier nicht eine 5 stehen?
Code:
/sys/bus/pci/drivers/iwlagn/0000:03:00.0/power_level = 0

oder hast du mir sonst noch Tipps wie ich die Wakeups (und somit auch den Verbrauch) der Wlan-karte reduzieren könnte? Bin leider nicht so erfahren mit Linux und Energiemanagement.

Danke im voraus. :thumbup:
Gruß bmxy
 
@karlitos: mein Befehl war fehlerhaft. Ich hätte gerne nochmal ein iwconfig im ausgeschalteten Zustand:
Code:
sudo sh -c "for i in /sys/bus/pci/drivers/ipw2200/*/rf_kill; do echo 1 > $i; done"
iwconfig
Weitere Frage: was sagt/zeigt denn der NM wenn die Karte aus ist?

@mbxy: deine Wakeups sind TOP! Da gibt es imho nichts zu verbessern. Außerdem ist nicht allein eine geringe Zahl von Wakeups entscheidend, sondern wie lange die CPU jeweils aufwacht. Du solltest also immer auch auf C0 bzw. C6 achten. Bei dir ist im Idle die CPU nur 0.1% der Zeit wach (C0). Wundere dich daher auch nicht wenn Du den Festplattenschutz installierst: der macht zwar 50 Wakeups mehr, verbraucht aber nahezu nichts. Zudem gibt es außer der CPU noch viele andere Stromverbraucher im ThinkPad ... :D

EDITH: TLP kann zwar Powersave für die Intel-Karten, aber die Entwickler des Treibers haben ab Kernel 2.6.30 (Karmic hat den 2.6.31) dieses Feature bis auf weiteres wegen aufgetretener Instabilitäten abgeschaltet. Im Moment ist nicht bekannt wann (und ob) es das wieder geben wird. :(
 
[quote='linrunner',index.php?page=Thread&postID=790465#post790465]@karlitos: mein Befehl war fehlerhaft. Ich hätte gerne nochmal ein iwconfig im ausgeschalteten Zustand:
Code:
sudo sh -c "for i in /sys/bus/pci/drivers/ipw2200/*/rf_kill; do echo 1 > $i; done"
iwconfig
Weitere Frage: was sagt/zeigt denn der NM wenn die Karte aus ist?
[/quote]
Code:
$ sudo sh -c "for i in /sys/bus/pci/drivers/ipw2200/*/rf_kill; do echo 1 > $i; done"
[sudo] password for karlitos: 
sh: Syntax error: ";" unexpected
;( ;( ;(

Ich habe gerade gemerkt dass ichdie Wlan-karte nicht mehr mit dem Fn+F5 ausschalten kann :pinch:
Wenn ich bei dem Acer mit dem Intel wireless 2200 rfkill benutzt habe sah der NM genauso aus als wenn man dort nach dem klick mit der rechten Maustaste : Funknetzwerke aktivieren abgewählt hat.
Nach echo 0 | sudo tee > /sys/bus/pci/drivers/ipw2200/*/rf_kill sah es als würde NM nach dem Signal suchen. Im ersten Fall war ds Tray-icon durchgestrichen in dem zweiten liefen die Status-Baklen als wenn sich die Karte verbindet. Es läst sich schlecht beschreiben da es stark vom Gnome-Thema abhängt.


Grüße K
 
Abgesehen von meinen Schrottbefehlen ;) hört sich das doch ganz gut an. Ich werde demnächst mal mein ex-R51 besuchen und dort testen. Ist einfacher. :)
 
Ich bin gerne bereit dir mit allem zu helfen. Was hältst du von der Verknüpfung TLP + GtkMenu ?
Hast du vielleicht Ahnung warum ich unter Karmic mit Fn+F5 die Karte nicht ausschalten kann ? Bluetooth reagiert so wie es sein soll . Auch über den NM läst sich die Karte deaktivieren ... vieleicht wäre es ein Weg um die Karte treiberunabhängig zu steuern.

Ich habe außerdem noch was entdeckt:
Code:
karlitos@karlitos-laptop ~ $ sudo tlp start
[sudo] password for karlitos: 
karlitos@karlitos-laptop ~ $ sudo tlp bat
[: 79: -a: unexpected operator
karlitos@karlitos-laptop ~ $ sudo tlp true
[: 79: -a: unexpected operator
karlitos@karlitos-laptop ~ $

:?:
 
Hi,

es ist vollbracht: Version 0.2.2 ist fertiggestellt. Dokumentation samt Changelog ist ab sofort ins Wiki umgezogen. Vielen Dank an die Bugmelder und Tester. :)
 
Na, wo seid ihr denn alle: eingeschneit, Wochenendtrip oder auf dem Usertreffen in Berlin?

Ich war fleißig und habe gleich noch eine ausführliche Wikiseite zu den Einstellungen hinzugefügt. 8)
 
Hat schon jemand von Euch das Abschalten des Ultrabaylaufwerks im Akkubetrieb getestet?
 
[quote='linrunner',index.php?page=Thread&postID=796998#post796998]Hat schon jemand von Euch das Abschalten des Ultrabaylaufwerks im Akkubetrieb getestet?[/quote]
läuft
 
[quote='xchrissix95',index.php?page=Thread&postID=797000#post797000]läuft[/quote] :D :D

ps. kann man beim R61 zum Wiedereinschalten die Auswurftaste benutzen oder braucht man den Entriegelungsschieber?
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben