Android Kernel Wiki

Durch das rooten von Android Geräten bekommt man viele neue Möglichkeiten, so kann man zum Beispiel einen neuen Kernel installieren. Damit man die CPU und die GPU steuern und deren maximale und minimale Frequenz einstellen kann. Wo durch man erhebliche Veränderungen an der Leistung und dem Akkuverbrauch vornehmen und diese im negativen und positiven Sinne beeinflussen kann.

neu

Bei meinem Nexus 4 habe ich momentan einen Faux123 Kernel installiert. Dieser bietet mir die Möglichkeit meine minimale und maximale Frequenz der CPU zwischen 384 Mhz und 1512 Mhz festzulegen. Des Weiteren kann ich zwischen 7 verschiedenen Governor und 3 Scheduler wählen. Aber was heißt das eigentlich alles genau?

Bitte beachtet, dass bei all den verschiedenen Geräten und Kernels es einige Unterschiede gibt, die ich hier nicht alle aufführen kann. So können einige Frequenzen von meinen Beispielen abweichen.

Governor

  1. OnDemand

Dieser Governor wird von den meisten Geräte Herstellern genutzt. Er ist erprobt, zuverlässig und er garantiert, dass euer Gerät so flüssig wie nur möglich läuft. Dies geschiet, da die meisten Nutzer als erstes die Leistung bemängeln und dann die Akkuleistung.

Beim starten einer Aufgabe wird die maximale Frequenz eingestellt um ein zügiges Arbeiten zu ermöglichen. Der Governor versucht im weiteren Verlauf die Frequenz so anzupassen das keine Ruckler auftretten. Wird eine weitere Aufgabe gestartet wird wieder die maximale Frequenz angefahren. Dieses verhalten kann sich auch negativ auf die Akkulaufzeit auswirken.

  1. OndemandX

Dieser Governor hat dieselben Einstellungen wie OnDemand, es wird hier aber die Frequenz auf maximal 500 Mhz eingestellt, wenn der Bildschirm aus ist.

  1. Performance

Hier wird versucht der CPU so schnell wie möglich auf die maximale Frequenz zu fahren, um die Aufgaben so schnell wie möglich zu erledigen. Damit wird auch schnellstmöglich versucht wieder in den Ruhezustand zu kommen.

  1. Powersave

Dieser Governor ist das komplette Gegenteil von Performance, es wird immer versucht die niedrigste Frequenz, welche eingestellt wurde, zu halten. Wenn ein Frequenzbereich eine bestimmte Auslastung erreicht hat, wird in den nächsten Bereich hochgefahren.

  1. Conservative

Hier spricht man von einem langsamen OnDemand Governor. Es wird immer versucht die minimale Frequenz zu nutzen. Erst bei einer sehr hohen Auslastung des CPU wird die Frequenz erhöht. Durch dieses Verhalten kann es, je nach Einstellung des Entwicklers und des Nutzers, zu Rucklern kommen, es ist aber sehr gut für die Akkulaufzeit.

  1. Userspace

Dieser Governor ist sehr selten auf mobilen Geräten und kommt meist bei PCs zum Einsatz. Hier wird einem die Möglichkeit gegeben mit einer Software die CPU Frequenz an die jeweilige App anzupassen.

  1. Min Max

Hier werden nur die minimale und maximale Frequenz genutzt, die da zwischen liegen werden übersprungen.

  1. Interactive

Der Interactive Governor ist mit OnDemand zu vergleichen, er geht beim start einer Aufgabe sofort auf die maximale Frequenz, hält diese dann jedoch für einen definierten Zeitraum. Er reagiert auch wesentlich schneller, da die Reaktionszeit wesentlich geringer eingestellt ist.

Wenn der Nutzer seinen Bildschirm entsperrt geht der Interactive Governor davon aus, dass eine App geöffnet wird und geht auf die maximale Frequenz. Dieses Verhalten bedeutet einen höheren Akkuverbrauch als der OnDemand Governor, es wird aber gesagt das dieser Governor die beste Leistung bietet.

  1. InteractiveX

Der Entwickler Imoseyon hat diesen Governor aus dem Interactiv Governor entwickelt, hierbei hat er versucht durch kürzere Zeiträume den Akkuverbrauch zu verringern, die Leistung aber nicht zu schmälern.

  1. Smartass

Ein weiterer Governor welcher auf Interactive aufgebaut ist und auch mit diesem von der Leistung und vom Akkuverbrauch zu vergleichen ist.

Hier ist jedoch die maximale Frequenz, wenn der Bildschirm aus ist, auf 352 Mhz begrenzt. Der Governor springt auch meist, wie der Min Max Governor, von der minimalen auf die Maximale Frequenz.

  1. SmartassV2

Hierbei handelt es sich um die zweite Version des Smartass Governor. Die beiden unterschiede liegen hauptsächlich darin, das hier wesentlich schneller auf die minimale Frequenz gewechselt wird und das hier alle Frequenzen zu Verfügung stehen.

  1. Scary

Hier wird versucht der Conservative Governer weiter im Akkuverbrauch zu verbessern, indem viel mehr in den niedrigen Frequenzen gearbeitet wird. Hierdurch wird die Leistung des Gerätes aber gesenkt, beim gleichzeitiger Senkung des Akkuverbrauchs.

  1. Lagfree

Hier sind die selben vorgaben wie beim OnDemand Governor gegeben, der Unterschied liegt darin, dass jede einzelne Frequenz genutzt wird. Durch dieses verhalten spart man zwar Energie, aber ist eine hohe Leistung gefragt, dauert die Reaktion darauf eine Zeit, da alle Frequenzbereiche erst angesteuert werden.

  1. Smoothass

Vom Prinzip dasselbe wie der Smartass Governor, aber wesentlich aggressiver, daher verfügt man dadurch über eine längere Akkulaufzeit.

  1. Brazilianwax & SavagedZen

Hier wird einem wesentlich mehr Leistung gegeben als beim SmartassV2 Govenor, was auch weniger Akkuleistung nach sich zeiht.

  1. Lazy

Der OnDemand Governor wird hier vom Entwickler Ezekeel so verändert, dass die minimale Frequenz wesentlich häufiger benötigt wird und es eine maximale Frequenz gibt, wenn der Bildschirm aus ist. Hierdurch sollen die Instabilitäten durch schnelle Frequenzwechsel ausgeschaltet werden.

  1. Lionheart

Dies ist ein Conservativ Governor, welcher auf dem Samsung Update 3 Code basiert. Die Werte sind so eingestellt, dass er wie der Performance Governor reagiert, wodurch der Akkuverbrauch höher ist als beim Conservativ Governor.

  1. LionheartX

Nur ein paar kleinere Änderungen zum Lionheart Governor, welche auf dem Smartass Govenor basieren.

  1. Intellidemand

Dieser Governor ist von Faux entwickelt wurden und basiert auf OnDemand. Hier werden der OnDemand und der Interactive Governor zusammengeführt.

Es gibt eine Zeitvorgabe bis die Frequenz gewechselt wird, die Auslastungen der Frequenzen sind so angepasst, dass so oft wie möglich geringere Frequenzen benutzt werden.

Der große Unterschied zu anderen Governors besteht darin, dass hier die GPU bei voller Auslastung auch die maximale Frequenz fährt, sobald die Auslastung sinkt wird eine niedrigere Frequenz angefahren.

  1. Hotplug

Hotplug schaltet überflüssige Kerne der CPU ab, wenn sie nicht benötigt werden. Ansonsten verhält sich dieser Governor wie OnDemand.

  1. Wheatley

Hier wird der OnDemand Governor als Vorlage genommen und versucht noch mehr Akkuleistung zu bekommen.

  1. Lulzactive

Als Basis dient der Interacitve Governor, welchem einige Smartass Variablen eingebaut wurden, wie Frequenzsprünge und die maximale Frequenz, wenn der Bildschirm aus ist.

  1. AbyssPlug

Ein modifizierter Hotplug Governor.

  1. BadAss

Hier wird nicht schnell auf die maximale Frequenz gesprungen. Es wird erst maximal 918 Mhz angefahren. Ist dieser Frequenzbereich nicht ausreichend, wird der nächste Bereich angefahren. Reicht dieser auch nicht aus geht es zum nächsten, u.s.w.

Dadurch das erst ein niedrigerer maximal Wert eingestellt wird, benötigt man weniger Akku und das Gerät erhitzt sich nicht so schnell.

Falls die GPU schwer ausgelastet ist wird sofort auf einen höheren Frequenzbereich gewechselt, ist dies nicht der Fall werden alle Frequenzen durchgespielt.

 Scheduler

Einfach gesagt: Der Kernel steuert den Zugriff auf die Festplatte mit dem Scheduler. Der Scheduler regelt die Reinfolge und die Geschwindigkeit des Zugriffs auf den Speicher.

  1. Noop

Hier werden alle Zugriffe nach ihrem erscheinen abgearbeitet, wer zuerst kommt, malt zuerst. Dieser Scheduler ist die beste Wahl für Geräte ohne erweiterbaren Speicher.

Der Vorteil dabei ist, dass Flash-Laufwerke keine Neuordnung der Anfragen benötigen. Hierbei wird versucht die Nutzung des CPU auf ein Minimum zu reduzieren, es also so schnell wie möglich abzuarbeiten,  dieses Verhalten kann die Leistung schmälern.

  1. Deadline

Hier werden die Anfragen in bis zu 5 Warteschleifen angeordnet um die Wartezeit zu minimieren. Dadurch werden die Anfragen schneller abgearbeitet, es kann aber auch zur Überlastung des CPU führen, was Ruckler nach sich zieht.

  1. CFQ

Die Zugriffe auf den Speicher und die Auslastung des Systems werden durch diesen Scheduler reduziert. Es wird hier zwar keine Leistung verloren, das schreiben von Daten dauert aber länger. Falls es zu viele Anfragen werden, können aber auch Ruckler auftreten.

  1. BFQ

Hier werden den einzelnen Anfragen ein gewisser Speicherplatz zugewiesen, wenn dieser voll ist, werden erst andere Anfragen abgearbeitet. Durch diese Arbeitsweise ist es der beste Scheduler für das Aufzeichnen von HD Videos und für das Übertragen via USB, da 30% mehr Leistung im Gegensatz zu CFQ erreicht werden. Die Leistung kann hierdurch jedoch erheblich minimiert werden.

  1. SIO

Dieser Scheduler ist eine Mischung aus Noop und Deadline. Es ist sehr einfach und minimiert die Auslastung des CPU, führt aber dazu das der Zugriff auf den Speicher wesentlich länger dauert.

  1. V(R)

Hier wird jeder Anfrage eine Zeit vorgegeben, ist man mit dem Zugriff nicht fertig, bekommt die nächste Anfrage den Zugriff auf den Speicher. Hiermit können die besten Benchmarktests erreicht werden, die Leistung im normalen gebrauch, ist jedoch unter den anderer Scheduler.

  1. Anticipatory

Hier wird das lesen des Speichers immer vor dem schreiben ausgeführt und bevorzugt, Hierdurch wird die Schreibgeschwindigkeit jedoch stark negativ beeinflusst.

Die einfachste Methode den Governor und den Scheduler zu verändern ist SetCPU oder eine ähnliche App aus dem Play Store. Auch bei gerooteten Stock ROMs mit originalem Kernel kann man Veränderungen vornehmen.

16 Kommentare zu “Android Kernel Wiki”

  1. Tobi sagt:

    Sehr schöne Aufstellung… Bisher die ausführlichste die ich gelesen habe. großes Lob dafür und generell ein dankeschön an den blog.
    Was mich noch interessieren würde:
    Welchen Governor und welchen Scheduler nutzt du, bzw würdest du empfehlen? Und warum 🙂
    Und auf welcher ROM benutzt du den Kernel. Man kann ja nicht jeden kernel mit jeder ROM verwenden, soweit ich weiß.

    Gruß
    Tobi

    1. goan0900 sagt:

      Guten morgen

      Das kann man so nicht einfach sagen. Man kann natürlich immer nur die Governor und Scheduler nutzen die einem der Kernel anbietet. Die meisten Kernel arbeiten auf fast allen Roms, da diese entweder auf CM, AOSP oder AOKP aufgebaut sind.

      Ich nutze auf meinem Nexus 4 den intellidemand Govenor und den deadline Scheduler. Dies kann ich aber nur, da ich Faux Kernel benutze.

      Bei Franco weiß ich, dass er nur den interactive Govenor nutzt. Es kommt wirklich auf jedem seine Vorlieben drauf an.

      Grüße

      1. Brain McFly sagt:

        Die Antwort auf „was ist der beste Kernel“ ist genau so schwer zu beantworten wie die Frage nach dem besten Rom.
        Bei meinem Desire war es so, dass ich mit einem modifizieren Kernel und optimalen Einstellungen so 2-3 Stunden Akkulaufzeit mehr herausholen konnte. Derzeit bei meinem Nexus 4 muss ich sagen, dass ich mit Kernels noch nicht herumprobiert habe, da weder Akkulaufzeit noch Leistung ein Problem darstellen.
        Insgesamt kommt es sehr auf dein Nutzerprofil an. Da hilft auch meistens nur ausprobieren, welche Einstellungen am vorteilhaftesten sind. Goans Artikel sollte aber ein paar Anhaltspunkte liefern, welche Einstellungen am Sinnvollsten sind.

        1. Tobi sagt:

          Danke für Eure Antworten. Das es „den besten Kernel“ nicht gibt ist logisch.
          Mich hat eigentlich nur eure persönliche Meinung interessiert, aus welchen Gründen Ihr euch für welchen Kernel bzw welche ROM entschieden habt 😀 . Bei der Vielzahl an Kernels und auch an ROMs die es bei den xda’s gibt habe ich keine Lust alle durchzuprobieren. (Übrigens weiß ich immer noch nicht welche ROM Ihr derzeit nutzt :mrgreen: )
          Ich bin derzeit bei Xylon, aber werde testweise mal wieder zu PA zurückwechseln, andere ROMS habe ich z.B. noch gar nicht ausprobiert.

          1. Brain McFly sagt:

            nexus 4 mit paranoidandroid und dem mitgelieferten kernel, nexus 7 mit dem stock rom
            ich bin noch am erforschem der fähigkeiten von den geräten, mit der software setze ich mich erst später auseinander

  2. rusak2 sagt:

    Hi,

    danke an den Threadersteller an die ausführliche Beschreibung!

    Die Paranoid Rom nutzt den Stock Kernel, allerdings mit angepassten Farbwerten.
    Ich kann den verbesserten Stock Kernel von Faux empfehlen! Er hat ein paar Verbesserungen und man kann ihn auch undervolten sowie die Farben verändern.

  3. SimonGleinert sagt:

    Super Erklärung…hab mich seit 2 Tagen damit abgemüt eine zu finden, bis ich endlich auf diese gestoßen bin.
    Könntest du bitte auch noch erklären, was der Scheduler „row“ zu bedeuten hat?!
    Danke im Voraus

    1. goan0900 sagt:

      Hallo

      ROW bedeutet Read Over Write. Also erst lesen dann schreiben. Dadurch ist mit einer etwas höheren Bediengeschwindigkeit zu rechnen, leider wird dadurch aber auch die Schreibgeschwindigkeit wesentlich verringert.

      Grüße

  4. SimonGleinert sagt:

    Vielen Dank 🙂

  5. SimonGleinert sagt:

    Ähm…
    Hätte da noch ne Frage…
    Ich benutze die App „Folder Mount“ um meine Daten auf ner 64er SdCard auslagern zu können – Hauptsächlich die Sd-Files von Gameloft -Games, sprich den gesamten obb-Ordner.
    Wenn ich auf der InternenSd in den Ordner Android/obb gehe, sehe ich dort die Daten, als wären sie auch wirklich dort, obwohl sie eigentlich auf der externenSd liegen.
    Nun die Frage: Welcher Scheduler greift dann???
    Der den ich für die interneSd ausgewählt habe, da das Verzeichnis ja dort angesteuert wird, oder greift der Scheduler von der externenSd, da die Files ja in Wirklichkeit dort liegen?!

    1. goan0900 sagt:

      Hallo

      Der Scheduler wird im Kernel eingestellt. Es ist meines Wissens auch nur möglich 1 Scheduler einzustellen. Es gibt also keine Möglichkeit zwischen interner und externer den Scheduler zu wechseln.

      Grüße

  6. SimonGleinert sagt:

    Doch, ich kann 2 Scheduler einstellen.
    Komme aus der Samsung s4-Ecke (i9505) und benutze den Ausdim Kernel.
    Hier der Screenshot: http://db.tt/v9iKLoCp

    1. goan0900 sagt:

      Oh das habe ich so noch nicht gesehen. Wenn die Daten aber auf der externen SD Karte liegen, dann sollte auch dieser Scheduler greifen.

      Da dem System ja nur vorgespielt wird, dass die Dateien dort liegen.

  7. Daniel sagt:

    Was kann daran schuld sein, dass sich meine minimale Taktfrequenz immer umstellt?
    Ich verwende SlimBean 4.2.2 und Faux.017b2, scheduler auf bfq und Governor ondemand auf einem Nexus 4.

  8. Meharanti sagt:

    Sehr gutes wiki. Bin auf die nächsten gespannt!

  9. Funker sagt:

    ich habe mein Zopo ZB980 damals auch gerootet aber an den Kernel hätte ich mich nicht rangetraut. Die nächsten Tage bekomme ich hoffentlich mein Xiaomi Redmi 4 pro und mal schauen, was ich da so mache 😉

Comments are closed.