[Samsung Galaxy S 5 Unified Development] albinoman887:
ChronicKernel for Samsung Galaxy S5​

#include
/*
* Your warranty is now likely void.
*
* I am not responsible for bricked devices, dead SD cards,
* spontaneous combustion, or any other host of cosmic penalties
* which may befall you, your family, or your phone.
*
*/

Screenshots

Requirements

* Rooted (obviously)

Installation

1: Place zip on sdcard

3: Reboot into recovery

3: Clear cache and dalvik cache

4: Flash zip

5: Reboot

6: If desired edit the init script at /system/etc/chronic-config.sh to suit your needs

7: Profit :)

ChronicKernel

* All-in-One kernel for all qualcomm variants

* Compiled with linaro

* GPU OC to 657 Mhtz (578Mhtz default - configurable though chronic-config.sh init script)

* CPU OC to 3.07 Ghtz (2.45 Ghtz default)

* CPU bandwith increase

* Added many I/O Schedulers (ROW, SIO, ZEN, etc...)

* Merged a lot of scheduler related performance patches from my S4 kernel and Faux123's

* Added CPU Governors intelliactive wheatley pegasusq smartmax dancedance nightmare intellidemand badass abyssplugv2 abyssplug and Lionheart (Default gov = interactive)

* User adjustable CPU uV

* Kernel based thermal management

* Chronic Hotplug (kernel based mpdecision replacement)

* No ROM overriding your Max freq BS :)

* FauxSound

* frandom support

* Enable/disable fsync support (fsync enabled by default)

* Countless amounts of ARM optimization from various sources

* Optimized and compiled with with the "Optimize a lot, or -o3 option)

* USB fast charge (disabled by default - configurable though chronic-config.sh init script

* Linux 3.4+

# Configure your options here #

# Config default CPU Gonvernor
#
# Kernel Default: interactive
# Uncomment desired governor by removing the "#" symbal before desired gov
# and add a "#" to the old line

# Possible values

# GOV=abyssplug
# GOV=abyssplugv2
# GOV=badass
# GOV=consevative
# GOV=dancedance
# GOV=intelliactive
# GOV=intellidemand
# GOV=linoheart
# GOV=nightmare
# GOV=ondemand
# GOV=pegasusq
# GOV=performance
# GOV=powersave
# GOV=smartmax
# GOV=userspace
# GOV=wheatley
GOV=interactive

# Config CPU frequency
#
# Default: 2457600 (2.45Ghtz)
# Recomended: 2764800 (2.76Ghtz)
# available frequencies:
# 300000 345600 422400 499200 576000 652800 729600 806400 883200 960000 1036800 1113600 1190400 1267200 1344000 1420800
# 1497600 1574400 1651200 1728000 1804800 1881600 1958400 2035200 2112000 2150400 2188800 2265600 2342400 2419200 2457600
# 2534400 2611200 2688000 2764800 2841600 2918400 2995200 3072000
#
# Max/Min
MAXFREQ=2457600
MINFREQ=300000

# Config GPU clock Max Frequency
# 389000000 = 389mhz (Super Underclocked)
# 462400000 = 450mhz (Underclocked)
# 578000000 = 578mhz (Default)
# 657500000 = 657mhz (Overclocked)
GPU_MAX=578000000

# Config GPU clock Min Frequency

# ** Choose either Samsung default 320Mhtz or Standard 200Mhtz
# ** key is as follows..

# 320Mhtz = 4
# 200Mhtz = 5
GPU_MIN=4

# I/O Scheduler
#
# Available schedulers: cfq, bfq, fiops, noop, deadline, row, sio, vr, zen, fifo
# Device default: cfq
SCHED=cfq

# Enable/Disable FSYNC
#
# Y = Enabled (default)
# N = Disabled
FSYNC=Y

# Enable Fastcharge
# 0 = disabled
# 1 = substitute AC to USB charging always
# 2 = substitute AC to USB charging only if there is no USB peripheral detected
FASTCHARGE=0

# Chronic Hotplug
# set custom "enable_core_thresholds" This is represented as four numbers each being for the corosponding core (0,1,2.3)
# the numbers are derived from cpu load times 10
# 0 = always on
# 999 = never on
ENABLE_CORE_THRES="0 290 340 390"

# End of configurable options #

July-30

* Updated to latest NG2 source from Samsung

* Updated kernel to Linux 3.4.100

July-19

* Cleaned up cpu frequency table, 2899Mhtz was never a valid freq, and the new ones were based off of that step. That is now fixed

* Bumped bandwith on 3 highest freq steps

* Bumped max voltage to 1400

* I/O: deadline: Allow 0ms deadline latency, increases the read speed

* SELinux: Fix memory leak upon loading policy

* msm: kgsl: Fix nice level for higher priority GPU start thread, previously we were using the lowest possible process priority which increase latency, (cherry-picked from flar2's HTC One-M8 kernel)

* PM: devfreq: Use high priority workqueue. Same thing as mentioned above, give the GPU freq driver higher priority (flar2)

* A couple misc. I/O related patches from upstream CAF kernel

* Updated to latest NF6 kernel source from Samsung

* removed more log span (ktoonsez)

* added nightmare cpu governor

* tweaked some ancient configs for intellidemand back from the msm8x60 days

* added frandom support if there is anyone who uses it

* Added sysfs module to enable/disable fsync

(enabled by default)

. It's in the standard location (/sys/module/sync/parameters/fsync_enabled) and like always can be configured though the chronic-config.sh script. I can also personally vouch for the tack that tricksterMOD will show the FSYNC enable/disable toggle with this patch. So any other app with the option should as well

* cleaned up chronic-config.sh and added missing cpu governors to list

July-17

* Added ability to overclock CPU to 3.01Ghtz

July-13

* Chronic Hotplug is born! This is basically based off of ktoonz KT auto hotplug but with user configurable parameters. Right now all you can change is the "enable_core_thresholds" this is the load the system has to be at for each respective core to turn online. the number is % of cpu load time 10. So 30% would be 300 (0 = always online). There is one module called enable_core_thresholds that sets all four cores. Its formatted like this (0 240 290 390). I have added an option in the chronic-config.sh script to configure this. Here is an example showing cores 0 and 3 always being on and 1 and 2 to come on at 24% and 29% respectively

ENABLE_CORE_THRES="0 240 290 0"

This line can be found in chronic-config.sh under the "Chronic Hotplug" section. Check script or above for more info.

* Disabled userspace mpdecision since we are now using Chronic Hotplug

* Also added option to set I/O scheduler in chronic-config.sh

* Backported some upstream 3.16 scheduler updates

July-10

* Reverted some of the sched tweaks merged from faux's kernel to vastly improve I/O performance

* Disabled some more debug options we don't need to speed up the kernel

* Switched back to Gzip compression as we have the room and kernel will initialize faster

* Set net loopback default mtu to 64K

* Fixed simple-ondemand gpu governor from crashing (ktoonsez)

* Reverted DRIVERS: SLIMBUS initial overclock commit as it seemed to drain battery when playing music

* Removed async-fsync for now until I make a module for it. Like another user said, I didn't notice any performance decrease with it off.

* Removed F2FS as i'm pretty sure its only compatible with AOSP (If i'm wrong let me know and i'll merge it back)

* Further tweaks to thermal (kthermal) values to be more stable on high frequencies (dropped polling speed to 500 ms and lowered temp limits about 2 degrees

* Disabled KT-auto-hotplug code i forgot about since I don't support it

* Stopped Samsung's "cpufreq_limit" driver from overriding Max freq (note: I had the option of stopping it from changing the min freq but it drastically decreases performance. This is equal to the cpu-boost and DVFS driver on the S4. They just expanded it to include a max freq cap which i disabled so we are not limited by it, So bottom line. You can set your min freq/ but it is temporarily overridden by the driver at times. THIS IS NORMAL AND IS LIKE THIS IN ALL KERNELS EXCEPT I ACTUALLY DISABLED THE MAX LIMIT SO IT STOPS GETTING LIMITED AT 1.19GHTZ AT TIMES. THIS IS THE OPTIMUM SOLUTION

* Fised chronic-config.sh not copying to the devices

* chronic-config.sh: fixed path for GPU max freq

* Set GPU min freq to 320mhtz (Samsung default) and added an option in chronic-config.sh to change it

* chronic-config.sh: list all available cpu frequencies instead of just a range since they are hard to remember :P

July-5

* initial release *

Some noteworthy changes from original source not listed above...

* Got rid of some logspan.

* send input events one at a time (faster touchboost related responses)

* few mismatch derps by samsung (faux123)

* Few other small fixes

* ]If you have problems with frequencies sticking use "System Tuner" and go to Settings and prevent other apps from changing CPU settings

* ]If you have problems with MINIMUM frequency sticking the reason is because of the touch boost driver. when you tap the screen you can't go below 1.19Ghtz, hence whenever you set a min freq....The only real solution to this without disabling the touch boost driver which hinders performance is to use the chronic-config.sh script or have an app set it boot. basically be set without a tap on the screen :)

* Although this kernel has now reached "beta" status. bugs still could pop up. please if you find a reproducible bug and decide to post please try and provide a last_kmesg or logcat.

TW : ChronicKernel-KK4.4-TW-KLTE-v1.5.zip

Goo.im Repo (mirror) : CLICK HERE

My Github (main): https://github.com/Team-Hydra/android_kernel_samsung_klte

* ktoonsez, this is a major fork of his kernel!

* First off of course cyanogen, the CyanogenMod project and all who contribute.

* A lot of this was taken/based off of flar2's Kernel for the HTC One, so thanks for the source!

* Also grabbed some things from Faux123's kernel

* All the people who have helped me learn more and more over the past year and a half :) (arco/dastin1018/android1234567) you guys are the best!

here is a donation link if you want to buy me a coffee or pack of smokes (I go through a lot sitting on the PC messing around lol) go ahead. But not required or expected by any means :)

Note: The name on the paypal account may say patricia, this is because it's a family paypal account. :)

Happy Flashing

Albinoman887

XDA:DevDB Information

[TW] ChronicKernel (UV/GPU/CPU-OC/linaro), Kernel for the Samsung Galaxy S 5

Contributors

albinoman887

Kernel Special Features: Linux 3.4.x Kernel for GS5 with overclocked CPU/GPU, Linaro optimizations, chronic-hotplug, upstream fixes, frandom, and much much more

Version Information

Status: Beta

Created 2014-07-06

Last Updated 2014-07-30