[KERNEL] Custom Kernel Nougat (Ladekontrolle, Laufzeit, CPU-Hotplug, Farbkontrolle, Performance)

C

cyclon1978

Fortgeschrittenes Mitglied
521
Hallo,

Features
  • Kontrolle des maximalen Batterieladezustandes
    • ich habe den Kernel um die Funktion "Battery Life Saver" erweitert. Diese dient dazu, den maximalen Ladezustand des Akkus von 100% auf zb. 95% zu ändern um die Lebensdauer des Akkus zu verlängern. Da der Akku fest eingebaut ist kann somit die Lebensdauer deutlich erhöht werden - zu Lasten der Laufzeit, da die maximale Akkukapazität nicht mehr genutzt wird.
    • Hinweis zum Ladeverhalten des Originalkernel
      • Der Stock Kernel (und dieser hier bei BLX Einstellung von 100%) laden bei 100% mit einer bedenklich hohen Ladeschlussspannung. 94% entspricht dem bei vergleichbaren Geräten verwendeten Wert. Wenn BQ nicht einen ganz besonderen Akku gebaut hat, oder die vom Kernel gesetzten Werte nicht genau an den Akku weitergegeben werden wird dieser bei 100% mit 4,4 Volt stark überladen.
    • Im Abschnitt Akku den Battery Life Extender Wert z.B. auf 95% stellen, "bei Systemstart anwenden" auswählen damit die Einstellung erhalten bleibt. Nach der Einstellung das Ladegerät abstecken (falls angeschlossen) und erneut anschießen.
    • Der eingestellte Wert passt relativ genau, d.h. wenn man 96% wählt landet man z.B. bei 97%. Das liegt daran dass nicht alle Zwischenschritte möglich sind.
    • Eine Einstellung unter 75% ist nicht möglich (da nicht besonders sinnvoll), d.h. der Akku wird immer zu mindestens 75% geladen und kann zwischen 75% und 100% eingestellt werden.
    • Da die Ladebeschränkung über die Spannung geregelt ist läd das Gerät mit einer Maximalspannung welche einem Ladezustand von z.B. 95% entspricht. Bei Erreichen der Ladespannung wird der Akku nicht weiter geladen und die Akkuprozentanzeige bleibt stehen. Es sieht so aus als würde der Akku weiter geladen (Blitzsymbol)
    • Das Laden des Gerätes im ausgeschalteten Zustand und während die TWRP Recovery läuft ist von der Einstellung nicht betroffen, da die TWRP ihren eigenen Kernel hat und bei ausgeschaltetem Gerät der Kernel nicht die Ladefunktion übernimmt.
  • Kontrolle der Bildschirmfarben
    • Im Kernel Adiutor im Bereich "Bildschirm" lassen sich die Farben anpassen, invertieren, Graustufenmodus einstellen und mehr.
  • CPU Hotplugging
    • CLUSTER_PLUG: schaltet bei aktivem Bildschirm den kompletten Little Cluster nach Bedarf ein und aus. Bei deaktiviertem Bildschirm ist die im Kernel Adiutor Mod konfigurierte Anzahl little cpus aktiv (z.B. 1) und alle BIG cpus deaktiviert.
  • exfat
  • s2fs
  • sysrw und sysro script für system schreibbar (rw) und wieder readonly mounten in system/xbin
Sonstiges
  • Basis ist der Stock-Kernel von Version 2.0.0
  • Aktualisierungen aus MSM Kernel branch LA.BR.1.3.6.c2_rb2.11
  • Upmerge auf Linux 3.10.105
  • Performance-Optimierungen (Debug Features reduziert)
Installation

Wie immer bei Modifikationen am Gerät sollte man ein TWRP Backup machen (system, boot, data)

Den Kernel mit der Recovery (TWRP) installieren (root bleibt erhalten wenn das Gerät gerooted ist, ebenfalls andere Modifikationen wie init.d Support).

Kernel Adiutor Mod installieren (aus 2. Beitrag, ggf. vorhandene Version zuvor deinstallieren, volle Unterstützung des Kernels nur mit dieser Version)

Kernel Sourcen

GitHub - cyclon1978/aquaris-X5-plus at 2.0.0_Linux_3.10.105_Current
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: nik, Elmario, einfachGaer und 9 andere
Download:

Kernel Adiutor Mod: kamod.apk (aktuellste Version)
  • Aktuelle GPU Frequenz wird jetzt angezeigt
  • Adrenoboost Parameter hinzugefügt (GPU Reiter)
Versionen bis 5.004 (pre Nougat, läuft aber mit Nougat Rom)
  • Exfat
  • Msm hotplug: um state_notifier erweitert um bei deaktiviertem Bildschirm mehr Energie zu sparen
  • Cluster_plug: Bildschirm aus: Big Cluster deaktiviern
  • Linux 3.10.105
  • dynamic fsync
  • lcd_notifier (verwendet bisher nur im cluster_plug, in Zukunft auch in den anderen Hotplugs)
  • sdcardfs fix
  • adreno_idler, adrenoboost (msm-adreno-tz als gpu governor wählen, default)
  • zram optimierung
  • cpu_boost optimierung
  • diverse Performance-Optimierungen
  • fs tweak: noatime-nodiratime als Default beim Mounten (speichert keinen letzten Lesezugriff-Zeitstempel -> schnellere Lesezugriffe, weniger wear-out)
  • GPU: 133MHz und 200MHz als neue niedrigste Frequenzen hinzugefügt
  • ext3 Unterstützung deaktiviert, ext4 und anderes aktualisiert (Bugfixes aus Linux 3.16)
  • Linaro 4.9 Toolchain statt google 4.8
  • Diverse Performance-Optimierungen und Bug fixes aus Linux 3.16 und anderen Quellen
  • KSM hinzugefügt (vor allem für die Geräte mit 2GB Ram empfehlenswert, mit kamod aktivieren)
Version 1.002 (Nougat Kernel)
  • Linaro 5.4 Toolchain
  • Linux 3.10.105
  • Msm changes auf den neuesten Stand gebracht (Bugfixes)
  • ClusterPlug von mir für Energiesparen bei ausgeschaltetem Bildschirm optimiert
  • Dynamic FSync
  • Virtueller Speicher (zram) lz4 statt lzo
  • Battery life extender (Default 80%)
  • Farbkontrolle
  • Ext4 aus Linux 3.16
  • Sdcardfs
  • F2fs
  • Random: Performance-Aktualisierungen aus 3.16
  • USB Fastcharge per kamod aktivierbar (bisher immer aktiviert!)
  • Vibrationsstärke: für Maximum folgenden Befehl ausführen
    • echo 3596 > /sys/devices/virtual/timed_output/vibrator/vtg_level
 

Anhänge

  • kamod_2017-03-01.apk
    3,6 MB · Aufrufe: 469
  • BQX5PLUSN_KERNEL-01.002.RC0.zip
    14,1 MB · Aufrufe: 214
  • BQX5PLUSN_KERNEL-01.002.RC1.zip
    14,1 MB · Aufrufe: 214
  • BQX5PLUSN_KERNEL-01.002.RC2.zip
    14,2 MB · Aufrufe: 200
  • BQX5PLUSN_KERNEL-01.002.RC6.zip
    14,2 MB · Aufrufe: 311
Zuletzt bearbeitet:
  • Danke
Reaktionen: Elmario, god-future, juergen0815 und 14 andere
Changelog 4.003:
  • Upmerge auf Linux 3.10.85
  • exfat wieder aktiviert
 
  • Danke
Reaktionen: moidept und der_Kief
Nur eine Möglichkeit gefunden, EXFAT im RW-Modus ohne Permissive Selinux zu montieren.
So Mount Beispiele für EXFAT und F2FS:
Code:
su
mkdir /sdcard/mnt

Mount EXFAT:
Code:
mount -t exfat -o context=u:object_r:sdcard_external:s0 /dev/block/sda1 /sdcard/mnt

Mount F2FS:
Code:
mount -t f2fs /dev/block/sda1 /sdcard/mnt

Umount:
Code:
umount /sdcard/mnt

Blockvorrichtung kann sich unterscheiden und should durch selbst genommen werden.
 
  • Danke
Reaktionen: moidept
@Zin-Uru

Kann so auch der normale User (also ohne root) auf den mount zugreifen und Dateien schreiben?

---

Neue Version 4.005: Bugfixes aus Android Kernel und CPU-spezifische Bugfixes
 
  • Danke
Reaktionen: der_Kief, moidept und Zin-Uru
@cyclon1978

Nein. Nur root.
 
  • Danke
Reaktionen: moidept
Neue Version hochgeladen, siehe 2. Post.
 
  • Danke
Reaktionen: moidept und Miss Montage
cyclon1978 schrieb:
Neue Version hochgeladen, siehe 2. Post.
Die neue Version ist der "KERNEL-04.011" also ich komm schon garnicht mehr hinterher..
Danke für deine unermüdliche Arbeit.
 
Wo finde ich denn den Kernel Adiutor Mod im zweiten Post? Bin ich blind? :winki:
 
  • Danke
Reaktionen: moidept
Im alten Thread (1.5.1)
 
@cyclon1978, vielen Dank für deine Arbeit. Total klasse!

Was mich interessieren würde: Durch das letzte Update auf 1.6.0 wurden ja „Optimierungen des Ladevorgangs“ eingepflegt. Weißt du etwas darüber? Liegen die Änderungen auch im custom kernel vor, sodass die Einstellungen der Ladeschwelle nun möglicherweise obsolet geworden sind?
 
Version 1.6.0_20161229-1655 released · bq/aquaris-X5-plus@dbdd259 · GitHub

Die Änderungen sind in meinem Kernel enthalten.

Die Ladeschwelle würde ich weiterhin benutzen, diese sorgt ja nur dafür dass bis 80% geladen wird. Die Änderungen von BQ sind eher WIE geladen wird. Bezüglich Kamera gab es auch Änderungen, aber was genau das bewirkt kann ich nicht sagen, die dtsi Files sind eine Sache für sich...
 
  • Danke
Reaktionen: nik, moidept und blackris
Linux 3.10.89
 

Anhänge

  • BQ_X5PLUS_KERNEL-04.013.zip
    14,4 MB · Aufrufe: 180
  • Danke
Reaktionen: Ping_2000, moidept und blackris
Neue Version 4.021

Changelog:
- Aktualisiert auf Linux 3.10.104
- alle CPU Hotplugs sind default ausgeschaltet (bisher HIMA default an, MSM Plug default an)
- MSM Plug (core_ctl) als Modul war bisher defekt - korrigiert und Default deaktiviert)
- BFQ IO Scheduler hinzugefügt
- f2fs update

Das bedeutet konkret:

damit hotplug funktionier muss ein Tool zum Aktivieren verwendet werden, z.B. Kernel Adiutor Mod. Alternativ ein Script (als init.d z.B. mit Kernel Adiutor mod, da der kernel keinen init.d Support mitbringt).

Ohne einen hotplug Treiber (Empfehlung cluster_plug) wird die Akkulaufzeit deutlich geringer ausfallen.

init.d Skripte:

msm hotplug aktivieren (geht nicht über den kernel adiutor, dort kann aber die restliche Konfiguration unter "Core Control" gemacht werden:

#!/system/bin/sh
echo "1" > /sys/devices/system/cpu/cpu0/core_ctl/disable
echo "1" > /sys/devices/system/cpu/cpu4/core_ctl/disable

cluster plug aktivieren:

#!/system/bin/sh
# configure cluster plug
echo 40 > /sys/module/cluster_plug/parameters/load_threshold_down
echo 80 > /sys/module/cluster_plug/parameters/load_threshold_up
echo 6 > /sys/module/cluster_plug/parameters/vote_threshold_down
echo 2 > /sys/module/cluster_plug/parameters/vote_threshold_up
echo 80 > /sys/module/cluster_plug/parameters/sampling_time
# Enable/disable cluster-plug
echo 1 > /sys/module/cluster_plug/parameters/active
 

Anhänge

  • BQ_X5PLUS_KERNEL-04.021.zip
    14,4 MB · Aufrufe: 186
  • Danke
Reaktionen: Zin-Uru, Ping_2000, 4Kira und 3 andere
Können Sie bitte "TTL target" in der nächsten Version unterstützen?
 
  • Danke
Reaktionen: moidept
Das hier?

This option adds the "HL" (for IPv6) and "TTL" (for IPv4) targets, which enable the user to change the hoplimit/time-to-live value of the IP header.

While it is safe to decrement the hoplimit/TTL value, the modules also allow to increment and set the hoplimit value of the header to arbitrary values. This is EXTREMELY DANGEROUS since you can easily create immortal packets that loop forever on the network.

Wenn ja - wozu wird das benötigt?
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: Miss Montage - Grund: Zitat abgehoben. Gruß, Miss Montage
  • Danke
Reaktionen: moidept
Sie müssen den Wi-fi Hotspot für einige Mobilfunkbetreiber aktivieren, die diese Funktion aufgrund des TTL-Werts blockieren.
Die Funktion ist standardmäßig in meinem anderen Gerät (Xiaomi) aktiviert. Keine Probleme mit ihm.
 
  • Danke
Reaktionen: moidept
Changelog
  • LZ4 Support
  • LZ4 als Default für zram
  • CONFIG_IP_NF_TARGET_TTL aktiviert für @Zin-Uru
  • Hotplug: AutoSMP hinzugefügt
  • Ioscheduler: FIOPS hinzugefügt
  • Ioscheduler: SIOPLUS hinzugefügt
  • CPU Governer: BLU_ACTIVE hinzugefügt
  • CPU Governer: IMPULSE hinzugefügt
  • Filesysteme: SDCARD_FS hinzugefügt
außerdem diverse Performace- und Energiesparoptimierungen

Weiterhin gilt: UNBEDINGT einen HotPlug bei Start per Skript oder z.B. KernelAdiutorMod aktivieren, da ansonsten keiner ausgewählt ist!

Ich teste den Kernel mit CLUSTER_PLUG und BFQ, daher kann es durchaus sein, dass die von mir nicht genutzen Features mal einen Bug haben.
 

Anhänge

  • BQ_X5PLUS_KERNEL-04.022.zip
    15,1 MB · Aufrufe: 231
  • Danke
Reaktionen: legend-tobi, Zin-Uru, 4Kira und eine weitere Person
Jetzt haben wir viele governors, i/o scheduler und hotplug-Typen.

Können Sie einige Empfehlungen (profile) für:
1. Beste Leistung
2. Beste powersave
3. Beste symmetrische Konfiguration

Vielen Dank für Ihre Arbeit!
 

Ähnliche Themen

Frank84
Antworten
1
Aufrufe
1.360
nik
nik
C
Antworten
79
Aufrufe
11.896
cyclon1978
C
J
Antworten
105
Aufrufe
28.081
theNfan
T
Zurück
Oben Unten