1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Energie sparen

Dieses Thema im Forum "Root / Hacking / Modding für Motorola Milestone 2" wurde erstellt von Stormbringer, 07.02.2012.

  1. Stormbringer, 07.02.2012 #1
    Stormbringer

    Stormbringer Threadstarter Android-Experte

    Beiträge:
    672
    Erhaltene Danke:
    157
    Registriert seit:
    05.09.2011
    Phone:
    Sony Xperia Z1
    Tablet:
    Nexus 7 (2013)
    Nachdem das Thema zwar im CM-Thread schon abgehandelt wurde, will ich es trotzdem hier nochmal zur Sprache bringen. Damit es einfacher zu finden ist.

    Da ich gern die Laufzeit meines Handys auf ein Maximum ausdehnen will habe ich im CM ein wenig mit Taktung, vsel, Governor und Helligkeiten gespielt. Natürlich reicht es trotzdem nicht um an alte Nicht-Touchscreen Handys heran zu kommen. Aber besser als mit den Originaleinstellungen ist es allemal.

    Die Modifikationen wurden von chillje bereits in aktuelle CM-ROMs eingepflegt. Aber wer will kann sich selbst noch ein wenig damit beschäftigen. Dazu teile ich hier mit was ich weiß.

    Die größten Energieverbraucher stellen nach meinen Erfahrungen
    - das ROM
    - das Display/Helligkeit
    - die Verbindungen (GSM/HSDPA/WLAN/GPS)
    - die CPU
    dar. In etwa in dieser Reihenfolge.

    ROM:
    Dazu lässt sich nicht viel sagen. Stock-ROMs sind Energiesäufer was zum Großteil an Blur liegen wird. CM basierte ROMs sparen mehr bzw. lassen sich feiner abstimmen (siehe Display/Helligkeit und CPU). Meine bisher besten Erfahrungen hab ich mit CM7.2 gemacht aber scheinbar wird CM9 ähnlich Energiesparend.

    Verbindungen (GSM/HSDPA/WLAN/GPS):
    Ein einfacher Trick Energie zu sparen ist, WLAN, GPS und HSDPA nur dann einzuschalten wenn sie benötigt werden. Automatischer E-Mailabruf, Wettersync, Telefonieren und dergleichen gehen auch mit einer reinen GSM Verbindung. Wenn man Updates machen oder Videostreams sehen will ist WLAN dem HSDPA vorzuziehen da es wesentlich weniger Energie verbraucht.

    Display/Helligkeit:
    Was das Display betrifft, mit CM ROMs hat man die Möglichkeit in Einstellungen/CyanogenMod/Bildschirm/Automatische Helligkeit ein paar Einstellungen vorzunehmen um den Verbrauch zu reduzieren.

    Zuerst muss natürlich bei "Einschalten" das Häckchen gesetzt werden. Als Länge des Zeitfensters reichen 5s. Der Grenzwert sollte aus sein, vor allem im unteren Helligkeitsbereich kommt es sonst zu ständigem Hoch- und Runterregeln was sehr lästig ist. Die Abtastrate auf 2s, also immer doppelt so schnell wie das Zeitfenster. So wird innerhalb des Fensters zumindest 2x abgetastet ob die Helligkeit des Displays noch zur Umgebungshelligkeit passt. Das Zeitfenster ist die Zeit die das Display auf dem aktuellen Helligkeitswert bleibt. Nach Ablauf einer Einheit der Abtastrate wird überprüft wie sich die Umgebungshelligkeit verändert hat. Nach Ablauf des Zeitfensters wird dann gegebenenfalls nachgeregelt.

    Das nächste Häckchen kommt bei "Stufen anpassen". Dunkler Bildschirm sollte auf 2 bleiben, "Abdunkeln erlauben" wird eingeschaltet. Die Abdunkelhysterese kann auf 50% gestellt werden. Das bedeutet wenn die Umgebungshelligkeit unter 50% des aktuellen Wertes sinkt wird das Display eine Stufe verdunkelt.

    Womit wir zum Punkt Stufen bearbeiten kommen. Hier gibt es mehrere Dinge. Ganz oben gibt es Informationen. Sensor (gefiltert/direkt) gibt die aktuelle Umgebungshelligkeit an. Wer mit einer Lampe rechts oben das Display anleuchtet kann sehr schön die Umschaltung beobachten wenn der Sensor neu eingelesen wird. Insgesamt erkennt der Sensor 4 Schwellenwerte aber dazu später. Bildschirm, Tasten und Tastatur zeigen an welche Werte aktuell aktiv sind.

    Weiter unten kann man nun einige Einstellungen vornehmen.

    Untere bezeichnet die Schwelle ab der die Werte Bildschirm, Tasten und Tastatur, die man rechts davon einstellen kann, aktiviert werden. Da der Sensor nur 4 Werte kennt, bzw. die Software die den Sensor ausliest scheinbar nicht für mehr programmiert wurde, kann man die Anzahl der Stufen getrost auf 5 reduzieren. Die unterste Stufe ist vorgegeben, die nächsten sinnvollen Schritte sind 10, 325, 7650 und 21525. Wers überprüfen will - macht den Test mit der Lampe und seht euch die Sensorwerte an.

    Bildschirm beschreibt den Helligkeitswert des Displays. Höhere Werte = höhere Helligkeit = mehr Energieverbrauch. Mich persönlich stört es nicht wenn es etwas dunkler ist, darum sind meine Werte hier 2, 15, 40, 80 und 120. Wie man sich das einstellt ist eine Geschmacksfrage. Mit Tasten sind die 4 Buttons unter dem Display gemeint, Tastatur bezeichnet die Hardwaretastatur. Der Grund warum es hier nur 0 oder 1 gibt ist auch schnell erklärt. 0 bedeutet Beleuchtung aus und 1 bedeutet ein. Damit die Werte angewendet werden muss man natürlich noch speichern und anwenden.

    CPU:
    Das Schöne an den CM-ROMs ist, dass es im Bootmenü (Vol- bei blauer LED beim Start) ein Menü für die CPU-Settings gibt. Dort lassen sich ein paar nette Dinge justieren. Was da nicht geht lässt sich durch Anpassen der overclock.conf im Ordner system\bootmenu\config hinbiegen. Manche Werte sind da als Basis vorgegeben was bedeutet das man die im Bootmenü nicht weiter runterdrehen kann.

    Man kann also im Bootmenü allerhand einstellen was Taktung, vsel und Governor betrifft. Taktung und vsel gehen immer Hand in Hand. Höhere Frequenz bedeutet auch, dass eine höhere Spannung nötig ist damit die CPU stabil bleibt. Ganz wie beim PC. Der Governor kommt aus der Linux Welt und regelt die Frequenz nach der Auslastung rauf und runter.

    Die ursprünglichen Originaleinstellungen des CM7 waren so, dass der Ondemand Governor zum Einsatz kam. Mir gefielen daran 2 Dinge nicht. Erstens beherrscht er es nicht die Frequenz bei gesperrtem Bildschirm auf Minimum zu begrenzen. Das wäre für den einzig mir bekannten Anwendungsfall einer App bei gesperrtem Bildschirm, einem MP3-Player, völlig ausreichend und natürlich energiesparender. Zum Zweiten hat er beständig nur zwischen höchster und niedrigster Frequenz umgeschaltet. Bei Last ganz rauf, dann sofort wieder ganz runter. Wozu bräuchte man da also 4 schöne Frequenzen wenn ohnehin nur 2 Verwendung fänden? Noch dazu wo dann selbst Apps die eigentlich kaum Leistung brauchen, aber doch mehr als das Minimum, mit Vollgas gefahren werden? Energievergeudung - mehr lässt sich dazu nicht sagen.

    Darum hab ich ein wenig getestet und mich informiert und kam auf folgende Einstellungen für den Governor:
    smartass
    smt_min_cpu_load 65
    smt_max_cpu_load 95
    smt_awake_min_freq 300000
    smt_sleep_max_freq 300000
    smt_up_min_freq 0
    smt_wakeup_freq 600000
    smt_ramp_up_step 50000

    Besonders wichtig hierbei der Wert "smt_up_min_freq 0". Er bedeutet, dass der Governor nach Belastung entscheidet wie hoch getaktet wird und nicht einfach wieder ständig ganz rauf oder ganz runter. Dieser Wert lässt sich im Bootmenü normalerweise nicht auf 0 setzen. Sofern es nicht in einer von chilljes Versionen bereits geschehen ist kann man in der system\bootmenu\config\overclock.conf diesen Wert einstellen. Danach ins Bootmenü rebooten, die CPU Einstellungen überprüfen und speichern damit sie auch übernommen werden. Nach einem Neustart sollten die Werte dann vom System verwendet werden.

    Eine Sache bei der ich mir in Bezug auf Mobiltelefone nicht sicher bin ist der smt_ramp_up_step. Beim PC lassen sich die CPUs meist ziemlich stufenlos regeln weshalb es hier einen Unterschied macht welcher Wert eingetragen ist. Also welche Frequenzsprünge man machen lassen will. Da die Mobil-CPUs meist nur eine begrenzte Anzahl an Schritten haben (MS2: 4) ist fraglich ob es hier etwas ausmacht welcher Wert ungleich 0 drinsteht. Ich hatte von 50000 bis 300000 alles drin und es schien egal zu sein. Vielleicht merkt man einen Unterschied wenn der Sprung eine Frequenzstufe überspringen würde aber wozu sollte man das tun? Auf jeden Fall lässt sich dieser Wert im Bootmenü maximal auf 100000 runterstellen. Wer weniger will muss wieder in die overclock.conf.

    Welche Frequenz und vsel man sich einstellt ist wieder eine Geschmacksfrage. Ich experimentiere zur Zeit immer noch wie weit runterzugehen möglich ist ohne Leistungseinbußen festzustellen. Zwei Einschränkungen kann ich allerdings machen. Die unterste Frequenz ist 300MHz, das lässt sich nicht weiter drücken. Alle Werte darunter werden ignoriert. Die nächste Frequenz über 300MHz muss mindestens 450MHz sein, sonst wird sie vom Governor beständig übersprungen.

    Zur besseren Übersicht hänge ich ein Excel-File an. In diesem sind auf dem ersten Tab alle Werte zusammengefasst. Die CPU-Werte (Frequ., vsel und AnTuTu Bench) sind im Graphen zugewiesen. Auf dem zweiten Tab sind einige Versuchsreichen von mir die noch am Laufen sind. Aktuell versuche ich den optimalen Wert für die 3. Frequenz zu ermitteln. Es stört mich, dass Höchstleistung (clk4, in aktuellen CM-ROMs clk3) und der Wert darunter (clk3 bzw. neu clk2) fast gleich häufig vorkommen.

    Die clk-Wertbezeichnungen wurden von Endless7, von dem einige der ROMs ursprünglich stammen, umbenannt. Er hat das CPU-Settings Menü überarbeitet und in den aktuelleren Versionen die unveränderbaren 300 MHz rausgenommen. Daher haben sich die Bezeichnungen verschoben. Was früher clk4 war ist jetzt clk3 usw. Aber man erkennt sofort welche Ausgabe es ist wenn man in der overclock.conf keine 300MHz mehr stehen hat.

    Die Zeiten wurden mit SystemTunerPro ermittelt, die Benchmarkwerte mit AnTuTu - nur CPU und GPU (2D/3D).

    Viel Spaß beim Experimentieren und ausprobieren ;)

    Edit: Hier gibts eine Beschreibung aller existierenden Governors: http://www.android-hilfe.de/kernel-fuer-samsung-galaxy-s2/180437-faq-governors-schedulers.html

    Edit2: Noch ein Link mit einem Testsetup des MS1 und der Messung aller Komponenten: http://www.android-hilfe.de/root-ha...ku-infos-ladekurven-leistungsverbraucher.html
     

    Anhänge:

    • MS2.zip
      Dateigröße:
      10 KB
      Aufrufe:
      152
    Zuletzt bearbeitet: 14.02.2012
    Dingsdada, neolovich, Milestone_User und 11 andere haben sich bedankt.

Diese Seite empfehlen