Optimierungen
Wer sein Display, die CPU-Nutzung und die gewählte Software in dem für seine Bedürfnisse optimalen Energieverbrauch kombiniert hat, kann sich ans Feintuning machen. Für jede Distribution gibt es dazu Howtos und Anleitungen im Web, als Beispiele seien nur Fedora [11], Gentoo [12], Open Suse [13], Arch Linux [14] und Ubuntu [15] genannt, aber sogar Geräte-Foren wie das Thinkwiki [16] erweisen sich auch für Anwender als hilfreich, die kein IBM Thinkpad benutzen.
Dabei ist der Anwender nicht alleine auf Powertop angewiesen. Auch Programme wie Dstat, Acpid oder Upower (allesamt in den gängigen Repositories der Distributionen) liefern handliche und umfangreiche Aussagen über den aktuellen Stromverbrauch und die Ursachen (Abbildung 10). Hier zeigt sich dann auch die nachlassende Kapazität des Akkus: Von den ursprünglichen 62 Wattstunden sind durch die bauartbedingte Alterung des Akkus nur mehr gut 55 Wattstunden übrig, der Akku hat also nur mehr etwa 89 Prozent seiner ursprünglichen Nominalkapazität zu bieten.
Nachdem sich Open Suse als die sparsamste Distribution erwiesen hatte, machten sich die Tester daran, diese weiter zu optimieren. Wie oben erwähnt, nennt Powertop in Version 1.13 Vorschläge, die der Admin zusammen mit eigenen Kunstgriffen fest in Startdateien wie »/etc/init.d/rc.local«
einträgt oder auf Wunsch startet, in der Hoffnung, sich so ein paar Watt weniger Verbrauch zu erschleichen.
Geskriptet
Das Beispielskript »do_powersave«
aus Listing 1 aktiviert den Laptop-Mode, die Überwachung der Non-Maskable Interrupts (NMI, [17]) und schaltet den Kernel-Scheduler in den Powersave-Modus. Dann erhöht es gemäß Powertops Vorschlag die Writeback-Zeit (Vorsicht, bei einem zu großen Wert droht Datenverlust beim Zurückschreiben auf die Festplatte!) und aktiviert das Autosuspend und das Powermanagement für USB-Devices. Die vier »amixer«
-Kommandos schalten Audio-Hardware aus, die Befehle in Zeile 13 und 14 aktivieren deren Powersave-Funktionen. »ethtool -s eth0 wol d«
deaktiviert Wake-On-LAN, das bei vielen Geräten auch im ausgeschaltenen Zustand Strom zieht. »rfkill block all«
schaltet alle Wifi-Geräte ab. Die For-Schleife veranlasst alle SCSI-Geräte, auf »min_power«
zu gehen.
Im nächsten Schritt geht es den Modulen an den Kragen: Die Zeile mit »lsmod«
und »rmmod«
entfernt wahllos alle Kernelmodule, die nicht benutzt werden, danach lädt Modprobe das Modul Battery sicherheitshalber erneut. Jetzt dürften die meisten Geräte ausgeschalten sein, und die Befehle »xbacklight«
und »xset«
kümmern sich um die Beleuchtung und ums Powermanagement des Displays.
Alleine dieses Skript spart im Leerlauf zwar mehrere Watt, konnte beim Laufzeitbenchmark mit Anwendereingaben jedoch nicht mit messbarem Vorteil aufwarten. Auf verschiedenen Systemen verweigerte danach jedoch das Touchpad den Dienst, auch externe USB-Geräte werden erst wieder funktionieren, wenn der Anwender die entsprechenden Module lädt.
Ebenfalls interessante Ansätze für Optimierungen bieten die Bootoptionen des Kernels. Die Kombination:
kernel [...] maxcpus=1 pcie_aspm=force acpi=noirq i915.i915_enable_rc6=1 processor.max_cstate=1 usbcore.autosuspend=1
in Suses »/boot/grub/menu.lst«
sorgt beispielsweise dafür, dass das System nur einen Core der CPU nutzt, erzwingt das ASPM-Powermanagement, schaltet das PCI-IRQ-Routing aus und aktiviert den Stromsparmodus des Intel-Grafikchips. »processor.max_cstate=N«
verhindert, dass die CPU in einen anderen als den gewünschten Energiesparmodus (C-State, [7]) schaltet und »usbcore.autosuspend=1«
aktiviert die Autosuspend-Funktion für USB-Geräte. Zusammen mit dem Skript aus Listing 2 ließ sich der Verbrauch des Open-Suse-KDE-Systems auf 12,5 Watt im Leerlauf reduzieren. Im Laufzeitbenchmark mit dem simulierten Anwender konnte dieses Setup jedoch auch nicht punkten.
Listing 2
do_powersave
01 #!/bin/bash -x
02 echo 5 > /proc/sys/vm/laptop_mode
03 echo 0 > /proc/sys/kernel/nmi_watchdog
04 echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
05 echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
06 echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
07 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
08 for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done
09 amixer set Master mute nocap
10 amixer set Headphone mute nocap
11 amixer set Speaker mute nocap
12 amixer set Mic mute nocap
13 echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
14 echo 1 > /sys/module/snd_hda_intel/parameters/power_save
15 # Shut Down Ethernet
16 ethtool -s eth0 wol d
17 rfkill block all
18 for i in /sys/class/scsi_host/*/link_power_management_policy ; do echo min_power > $i; done
19 lsmod | awk '{ print $1 }' | while read line; do rmmod $line ; done
20 modprobe battery
21 xbacklight -set 0
22 xset +dpms
23 xset dpms 0 0 300
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 9 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





