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. * */
Here is a initial kernel for TW. Forked from ktoonsez, t has all the features you would expect from a modded kernel, CPU OC, GPU OC, more CPU governors, Undervolted, GPU OC CPU L2 OC, and linaro -o3 optimizations
* Rooted (obviously)
1: Place zip on sdcard
3: Reboot into recovery
3: Clear cache and dalvik cache
4: Flash zip
6: If desired edit the init script at /system/etc/chronic-config.sh to suit your needs
* 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
* 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+
This kernel uses a simple shell script called chronic-config.sh (located at /system/etc/chronic-config.sh) With this script you can specify your desired default values for various things including cpu governor, min/max cpu freq. USB fastcharge etc. This file as is requires no intervention and will not interfere with any kernel tuning app you already use. It is just there for people who like a minimal approach and as it is the most direct method of changing settings so will always work. We all know how sometimes apps get an update and it breaks something for you Below is an example of the config options in the script.
# 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 #
* Updated to latest NG2 source from Samsung
* Updated kernel to Linux 3.4.100
* 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
* Added ability to overclock CPU to 3.01Ghtz
* 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"
* 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
* 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
* 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.
[TW] ChronicKernel (UV/GPU/CPU-OC/linaro), Kernel for the Samsung Galaxy S 5
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
Last Updated 2014-07-30