Dienstag, 17. Mai 2011

[Profil] CPU automatisch runtertakten (SetCPU Replacement) (Root Only)

Unser Android taktet schon automatisch die CPU runter, wenn diese nicht gebraucht wird. Jedoch bleibt dabei der Augenmerk eher auf gute Performance als auf Akku sparen. Seit kurzem ist es auch mit Tasker möglich die CPU Einstellungen zu ändern. Dabei kann auf die minimale und maximale Taktrate sowie den Governor zugegriffen werden. Somit lässt sich die CPU zum Beispiel runtertakten, wenn das Display aus ist.


Um auf die CPU Einstellungen zugreifen zu können, benötigt man allerdings Root Rechte, wie man diese bekommt lässt sich in einschlägigen Foren nachlesen.



Als erstes möchte ich kurz auf die Funktionen der verschiedenen Governors eingehen. Diese regeln wie die CPU getaktet werden soll, also ob die Taktrate eher schnell oder langsam angehoben werden soll. Hier eine Auflistung der verschiedenen Governors, welche davon man nutzen kann, hängt vom verwendeten ROM, genauergesagt dem Kernel ab.
  • conservative: taktet langsam hoch und schnell runter
  • interactive: taktet bei Bedarf auf Maximum und fällt dann wieder
  • ondemand: ähnlich wie interaktiv, nur etwas langsamer
  • performance: Takt bleibt immer auf Maximum
  • powersave: Taktet nur sehr langsam hoch
  • smartass: konnte ich noch nicht rausfinden
Für das Display aus Profil würde ich "powersave" empfehlen. Bei eingeschaltetem Display muss man etwas rumspielen was am besten passt. Empfehlen kann ich "conservative", "interactive" und "ondemand". "interactive" und "ondemand" fühlen sich am schnellsten an, dafür dürfte "conservative" ein bisschen mehr Energie sparen, da er nicht sofort auf Maximum taktet.

Da es für Display an/aus keinen Status sondern nur "Ebents" gibt, brauchen wir insgesamt 2 Profile. Wer nun schon Profile dafür hat, braucht kein neues anzulegen. Es reicht auf den Task zu tippen und dann "Add new Task" auszuwählen.
  • Profil 1: Display Off
    • Trigger
      1. Event -> Display -> Display Off
    • Task
      1. Misc -> CPU
        • Governor: powersave
        • Min. Frequency: auswählen mit Klick auf die Lupe
        • Max. Frequency: auswählen mit Klick auf die Lupe
  • Profil 2: Display On
    • Trigger
      1. Event -> Display -> Display Unlocked
    • Task
      1. Misc -> CPU
        • Governor: ondemand
        • Min. Frequency: auswählen mit Klick auf die Lupe
        • Max. Frequency: auswählen mit Klick auf die Lupe 
Als "Min. Frequency" sollte man immer die kleinste mögliche auswählen. Als "Max. Frequency" empfehle ich bei "Display Off" eine Stufe über der "Min. Frequency" und bei "Display On" entweder die maximalste Stufe oder ein bis zwei Schritte drunter.

Kommentare:

  1. wo liegt der fehler... bin alles so durchgegangen wie du beschriben hast. hatte vorher juice defender ultimate drauf. hat alles automatisch funktioniert. da mir das Programm jedoch zusätzlich strom gesaugt hat habe ich es runtergenommen und probiert mit tasker dies nachzustellen. Display off funktioniert (bzw konnte nicht testen ob wirklich die cpu unten bleibt.) Display on hab ich gemerkt das der aus dem deepsleep nicht erwacht. habe aber auch nur die einstellungen ondemand, performance und powersafe. Performance bewirkt ja nur das gegenteil (höherer Akkuverbrauch) und bei ondemand trotz verschiedener gestzter Frequencen erwacht das telefon einfach nicht. Galaxy S2 ICS 4.0.3

    AntwortenLöschen
    Antworten
    1. Hm tut mir leid, da es bei mir soweit funktioniert hat, hab ich da nicht weiter rumgeforscht, so viele Einstellungen gibts ja dort auch nicht.
      Funktioniert denn irgendwas anderes mit den Einstellungen?

      Löschen
  2. Hi,
    mit meinem GallaxyS3 hab ich in der neusten Version von Tasker eine Option um CPU 0 bis 3 auszuwählen. Muss ich also den Task für alle 4 Prozessorkerne einrichten?
    beste Grüße,
    Sebastian
    PS: coole Sachen die du hier gebastelt hast. Weiter so!

    AntwortenLöschen
  3. @Sebastian:

    Ich habe gerade das gleiche auf meinem S3 gemacht und ebenfalls die 4 Kerne aufgelistet bekommen.
    Jedoch konnte ich nur bei CPU-0 und CPU-3 (also erste und letzte) einen Governor auswählen. So habe ich auch NUR CPU 0 und 3 in die Profile Display ON und OFF genommen.

    Ausprobiert habe ich das ganze, indem ich zunächst nur ein Profil für Display Off angelegt und auf runtertakten gestellt habe. Beim erneuten Start stellte ich fest, dass das Handy sich extrem schwer tut zu wischen, Apps zu starten usw - es wurde spürbar langsam, daher geh ich davon aus, das Runtertakten war erfolgreich.

    Danach habe ich Display ON eingestellt und nach dem Einschalten rennt alles.
    Allerdings kommt es mir so vor, als wenn bei einem schnelleren Wechsel zwischen Display ON/OFF das Handy sehr träge wird.

    ----- VORSCHLAG -----
    Das Heruntertakten macht imho MEHR Sinn, wenn man es nicht sofort nach dem Ausschalten vornimmt, sondern erst 5-10 Minuten danach.

    Allerdings weiß ich nicht wie das geht, ich habe Tasker erst seit 15 Minuten -.-

    Wer kann helfen?

    AntwortenLöschen
  4. Würde mich auch extrem interessieren. Besitze auch Tasker und das Galaxy s3...

    AntwortenLöschen
    Antworten
    1. man kann die Aktion "wait" für solche sachen nutzen. Einfach ein wait 5 min in die Aktion und danach eine Abfrage ob das Display noch aus ist, dann die gewünschten Aktionen.

      Löschen
  5. Super!!! In Kombination mit Cyangonmod ... einfach nur ein Energiesparer Traum !!!
    Ich hatte sowas ähnliches vorher auch schon eingestellt, habe es aber durch dies jetzt ersetzt ...
    Ich habe allerdings bei Display on, auf Performance gesetzt ... da es richtig Power haben soll wenn ich es benutze, wenn es in Standby ist interressiert mich das dann ja nicht... nur so zur info... Musikplayer werden davon überhaubt nicht beeinflusst selbst bei min 200 und max 300
    Danke und LG

    AntwortenLöschen