[KERNEL] [6.0] almost-stock (aka ex big-bum)

Search This thread
C

Corndude

Guest
Something is wrong with the kernel. As soon as I turn off the display it doesn't turn on again and I have to reboot. Does not happen with slim stock kernel.
 
C

Corndude

Guest
Had to do with undervolting. Is there a default uv? If I set the same values I use in franco, I always get sod.
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
I never touched the voltages, neither franco: https://github.com/StefanescuCristi.../nightlies/arch/arm/mach-msm/acpuclock-8974.c

Trying this kernel out and i just observed using ext4-v25, volume control seems to be broken when playing Pandora and Slacker. I can't lower or raise the music volume. However when I flash stock 4.4.4 kernel or Francos kernel, volume control works fine. I'm using purity rom, stock kernel settings.

Check the test folders from the first post. I think I solved your sound problem.

Also, there's a nice surprise in there if you guys want to test. Look after mpd.
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
Well, it's sunday and I'm releasing V26 for using it in the next week.

V26 - b61c5f53fde9123a4ee1f4084d34a8b21ffc2f9b

Kernel changes

Code:
b61c5f5 gitignore: update
6357be4 zip_cm: sound is fixed now, remove unneeded libs
d4b3b06 Revert "ASoC: msm: Add support to enable audio post processing in DSP"
bd0ad10 blu_active: use get_cpu_idle_time_cb
86ab6c7 blu_active: add down load threashold to keep cal_freq better on low loads thanks to franciscofranco
ec3778e blu_active: use cal_freq, remove target_loads
1baab89 blu_active: remove variable frequency calculations
dcd5858 qup_i2c: Initialize I2C resource before registering.
79475fc i2c_qup: Fix for unhandled IRQ
70ebd15 qup_i2c: export qup_i2c_init_driver
c1a8959 i2c_qup: Improve implementation of PM callbacks
82a18e5 qup_i2c: Handle scenario if runtime PM is disable
311f67c set cpu-dma-latency as qcom wanted * they know their boards better
da1476b Revert "ASoC: wcd9xxx: Check headset insertion for consistency"
4115cd3 blu_active: merge Linux 3.5 upstream and CAF updates
44ddab4 cgroup: fix exit() vs rmdir() race
e3e317b Revert "qup_i2c: Initialize I2C resource before registering."
ec997a2 zip_cm: leave audio libs alone
3930ed9 Revert "zip cm: forgot this one"
05505bb Revert "CM: remove unneeded libs"
fe9cb2c update audio_policy.conf from neobuddy89
37732aa ASoC: msm: Add sample rates to PCM front-end
1273d9c Revert "ARM: dts: msm8974: Reset voltages from CAF source"
d0a0ebb net: Performance fix for process_backlog
8eb01505 SELinux: possible NULL deref in context_struct_to_string
5aaaef9 SELinux: use ARRAY_SIZE
20eabd4 msm: vidc: cache-flush encoder output buffers after alloc
04da6bf ASoC: wcd9xxx: Check headset insertion for consistency
5f29ac3 ARM: 7759/1: decouple CPU offlining from reboot/shutdown
ac66225 ARM: dts: msm8974: Reset voltages from CAF source

TL;DR: updates for blu_active governor, audio_policy (for CM version only), fixed the "can't change the volume" bug. It's nothing huge, just small bug fixes and improvements here and there.

Ramdisk:

Code:
b1ffef7 remove gov sync feature and tune input boost freq
140d4eb increase boost time

TL;DR: sync-ed the CPU governor tunables with CM, also tuned the cpu-boost driver with CM.


I'm working on a version with qualcomm mpdecision enabled (instead of in-kernel hotplug managing) and the governor from oneplus one (it's "interactive" rebranded as "bacon"). I've been running this version for the last 36 hours and I like how the phone feels. MPD isn't as bad as you think if you have a nice and smart governor. I think I'll release a stable version from mpd branch with the normal version of V27. If you want to test a beta-stable version of mpd, you can check the test folders for mpd-v26. The last commit on which that version was built is 141bb827b4684b0cfb9ab07d7ccfca7d44f5c422 (https://github.com/StefanescuCristian/hammerhead/commits/nightlies-mpd)
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
V27 - e2109d301cd4f53c1dbb59eaa49c384e3f942861

Kernel:
Code:
e2109d3 Revert "disable cpuboost driver for this branch"
3e68c74 Revert "blu_plug: use input boost, __ref to lighten the driver, misc fixes"
e3cf9f8 disable cpuboost driver for this branch
a12b4e7 bacon: remove rt.h
03f0256 cpufreq: blu_active: sync with code_blue
39799d20 blu_plug: use input boost, __ref to lighten the driver, misc fixes
e060661 cpuidle: Fix finding state with min power_usage
9aff327 cpuidle: Get typical recent sleep interval
fe86712 cpuidle: Set residency to 0 if target Cstate not enter
97adf72 patch -p1 < ../patch-3.4.103-104
b79e813 defconfig: update
4e18561 cpufreq: bacon: use CPUFREQ_RELATION_C
95b571f cpufreq: Add "bacon" governor
67a5914 defconfig: sync with cm/google
78bef1c defconfig: cleanup
e01d07e defconfig: update
a5ee821 cpuidle: check for need_resched() after the idle entry trace event
7a00c87 sound: msm8974: Set gpio_level_insert to 0
03242c9 ARM: 7553/1: proc-v7: Ensure correct instruction set after cpu_reset
7157ca2 ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr
a502441 ARM: fix user unalignment prefetch abort
d9316a0 ARM: gic: Bring inline with upstream
5dee2a1 ASoC: msm: qdsp6v2: update int to size_t
057161f ARM: bitops: prefetch the destination word for write prior to strex
02bd65a blu_active: use simple freq calculation

TL;DR: Linux 3.4.104, updates for the config file, blu_active governor, made ROW default IO sched (you can still change to BFQ, but I feel like app opening are faster with ROW), added the interactive gov from OnePlus One, the gov is called "bacon" (not active, you can set it in Synapse)

Ramdisk:

Code:
9e23050 remove vfs cache pressure and swappines tuning
678d5f5 cleanup

TL;DR: set inputboost to 1.3GHz, for 80ms, set vfs cache pressure to Linux's default.

Now, the interesting/new part

Kernel with qualcomm's MPDecison: V27 - d79badeb42d430b2bd76bfe062fb7f727be5a05a

Changes: I branched this from V25/V26, so it has all the things we have in V26 and pre-V26 plus:

Code:
d79bade cpufreq: blu_active: sync with code_blue
61700ea cpuidle: Fix finding state with min power_usage
5be11d2 cpuidle: Get typical recent sleep interval
b6fbf2c cpuidle: Set residency to 0 if target Cstate not enter
bf3db2f patch -p1 < ../patch-3.4.103-104
3cc8e20 defconfig: make row default
12fb8d3 Revert "defconfig: update"
7a30024 defconfig: sync with cm/google
f2f30df cpuidle: check for need_resched() after the idle entry trace event
195b89a defconfig: disable msm_limiter
7bfaf1f msm: limiter: Add override control for Min freq
63556b0 sound: msm8974: Set gpio_level_insert to 0
63e3a1d ARM: 7553/1: proc-v7: Ensure correct instruction set after cpu_reset
178c850 ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr
4e1f39c gitignore: update
0067db5 defconfig: cleanup
37cc99f defconfig: update
c6484a7 ARM: fix user unalignment prefetch abort
cafa697 ARM: gic: Bring inline with upstream
3aa120d ASoC: msm: qdsp6v2: update int to size_t
7e3843a ARM: bitops: prefetch the destination word for write prior to strex
141bb82 zip.sh: change for mpd
0836948 zip_cm: sound is fixed now, remove unneeded libs
c6484a7 ARM: fix user unalignment prefetch abort
cafa697 ARM: gic: Bring inline with upstream
3aa120d ASoC: msm: qdsp6v2: update int to size_t
7e3843a ARM: bitops: prefetch the destination word for write prior to strex
141bb82 zip.sh: change for mpd
0836948 zip_cm: sound is fixed now, remove unneeded libs
23bc625 cpufreq: bacon: use CPUFREQ_RELATION_C
8baa316 Revert "ASoC: msm: Add support to enable audio post processing in DSP"
95815fc defconfig: enable msm_limiter
a30b3d1 bacon: remove rt.h
4a03bab Revert "blu_active: add down load threashold to keep cal_freq better on low loads"
e2d8278 defconfig: update
6e0aba0 cpufreq: Add "bacon" governor
50466c3 sched_avg: add run queue averaging
c130bd7 defconfig: update
23c228d sched: Compute avg_nr_running for RQ Stats
37bff14 Revert "blu_active: use cal_freq, remove target_loads"
098b128 msm: rq_stats: small change to current cpu policy
7aed6c7 msm: msm_rq_stats: Tone down mpdecision
d44187f msm: rq_stats: Calculate load based on current freq limit
b13d8f9 msm: rq_stats: Fix wrong usage of cpufreq_quick_get()
ce99bc0 msm: rq_stats: Use cpufreq API to get the current frequency
1b2fd8b msm:rq_stats: Register for Cpufreq policy notification
c114bca msm: msm_rq_stats: remove is_smp() API
e858f54 msm: rq_stats: fix build
99127a4 build.sh: changes for mpdecision
21c521e defconfig: changes for qcom mpdecision

TL;DR: Treat it as standard V27, but with bacon governor set as default, and mpdecision enabled. Also, with updates for rq_stats, the brain on which mpdecision takes decisions to online/offlne the CPUs.

MPD ramdisk:

Code:
423b53f cleanup
fff06ac remove vfs cache pressure and swappines tuning
a0cb910 increase input boost time
a0277e8 Revert "enable msm_limiter"
8d63662 enable msm_limiter
cb73dc3 init update
879257d reenable sync

Enjoy.
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
Intellithermal v2 from faux is included.
These are the default settings for it. You can change how you want, but I like it this way.

Sent from my ΠΞXUS5
 

Attachments

  • uploadfromtaptalk1411715594916.jpg
    uploadfromtaptalk1411715594916.jpg
    64.9 KB · Views: 272
  • uploadfromtaptalk1411715616540.jpg
    uploadfromtaptalk1411715616540.jpg
    47.2 KB · Views: 264
  • Like
Reactions: reddvilzz

reddvilzz

Senior Member
May 29, 2012
1,938
392
Jakarta
OnePlus 9
Google Pixel 6 Pro
Intellithermal v2 from faux is included.
These are the default settings for it. You can change how you want, but I like it this way.

Sent from my ΠΞXUS5
Uh for some reason I can't change anything in the intellithermal settings in synapse. Everytime I try to change thing it always revert back to default after I touch the apply button. What seems to go wrong?
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
Have you tried to reset Synapse?
I can change every single option in Synapse for intellithermal, except VDD restriction which gets set by the driver as far as I read/understand the code.

Edit: You probably know this and this is the reason you want to change the default settings, but I'll leave the link here. Faux recommended intellithermal settings.
 
Last edited:

reddvilzz

Senior Member
May 29, 2012
1,938
392
Jakarta
OnePlus 9
Google Pixel 6 Pro
Have you tried to reset Synapse?
I can change every single option in Synapse for intellithermal, except VDD restriction which gets set by the driver as far as I read/understand the code.

Edit: You probably know this and this is the reason you want to change the default settings, but I'll leave the link here. Faux recommended intellithermal settings.
I did reset the synapse. Reinstall and even clear the data but the result is just the same. Well I tend to keep my phone cold so that's why I want to change the temperature throttle a little more lower than that I hope you don't mind :). But I can't touch anything in the intellithermal settings without it reverting when I applied it.

Edit: update it seems to work :D
 
Last edited:

PetritH

Senior Member
Mar 3, 2011
4,164
2,549
Somewhere
which one to flash there are plenty of folders there :p which one do you guys recommend? thanks

Sent from my Nexus 5 using Tapatalk
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
I did reset the synapse. Reinstall and even clear the data but the result is just the same. Well I tend to keep my phone cold so that's why I want to change the temperature throttle a little more lower than that I hope you don't mind :). But I can't touch anything in the intellithermal settings without it reverting when I applied it.

Edit: update it seems to work :D
If it derps again and it doesn't work after reseting Synapse, go into a terminal and type uci reset; uci
which one to flash there are plenty of folders there :p which one do you guys recommend? thanks

Sent from my Nexus 5 using Tapatalk

What ROM are you using?
 
  • Like
Reactions: reddvilzz

Top Liked Posts

  • There are no posts matching your filters.
  • 94
    AS.jpg
    DOWNLOAD
    HERE
    Google Drive mirror
    I'm not responsable for data loss or any damage to your phone if you're using my kernel. You flash this at your own risk. Always make a backup!
    (You need SuperSU 2.50 for this kernel to work!)


    M/6.0 kernel:

    Features:
    • new name: almost-stock, since it's... almost stock, but not really.
    • built on the base of latest Android 6.0 release, merged with franciscofranco's L kernel and CM/CAF12.1
    • built with -mcpu=cortex-a15 for enabling maximum performance with our Krait CPU.
    • reduced wireless wakelocks
    • underclocked GPU idle (GPU min/max 20/450MHz)
    • default CPU governor: CAF interactive, updated from CM/CAF12.1 branch.
    • built with cpu-boost driver to handle touchboost, default touchboost is set to 500ms and 1.2GHz
    • Motorola memory patches for ARM
    • default hotplug: MPDecision with updated rq_stats from CM.
    • I/O default schedueler: row
    • the famous I2C @ 19.2MHz, plus some other chips dropped at 19.2MHz and voltages lowered for internal components (Cl3Kener)
    • compilled with Linaro GCC (5.2.0) - arter's own build.
    • removed useless debug
    • workqueue udates from linux 3.7, power saving workqueues set on by default
    • selinux enforced (You need SuperSU 2.50 for this to work!)
    • partialsuspend enabled
    • various updates and fixes for net, mmc, thermal, selinux, block, cpufreq, sched, rcu, block
    • I probably forgot something

    Credits:
    neobuddy89, dorimanx, hellscore, franciscofranco, flar2, Cl3Kener
    Christopher83 for Linaro GCC binaries, tutorials on how to compile Linaro, his Linaro binaries and tutorials
    other people who work on Linux kernel.
    arter97 for his GCC 5.2.0
    Kernels from where I cherry-pick: Chaos/Hybrid - neobuddy89, Uber - Cl3Kener
    Other guys from where I might cherry pick in the future.


    Sources:
    Kernel: ttps://github.com/StefanescuCristian/hammerhead
    Ramdisk: https://github.com/StefanescuCristian/ramdisk_hammerhead
    Toolchain:
    https://github.com/arter97/linaro-lto


    The attached images are from the KK version.
    Oh, and if you want to build this for yourself, check this out!

    XDA:DevDB Information
    [KERNEL] [6.0] almost-stock (aka ex big-bum), Kernel for the Google Nexus 5

    Contributors
    big_bum
    Source Code: https://github.com/StefanescuCristian/hammerhead

    Kernel Special Features: GCC5

    Version Information
    Status: No Longer Updated
    Current Stable Version: 2
    Stable Release Date: 2015-11-01

    Created 2014-07-07
    Last Updated 2015-11-01
    13
    This is it guys.
    V8 is exactly what and how I want my daily usage kernel to be. I've added all that I've wanted in this version and I feel that there isn't much to add.
    So this is it. The final/last/latest version of big-bum. The last doesn't mean the developement has stopped, it means that it slowed down, since there are any new features to add at the moment.
    This being said, 1175 commits after V7, we have:
    - Linux 3.4.106
    - workqueue backports from @dorimanx, with a new tunable: power efficient workqueue (disabled by default). You can tune in Synapse or in /sys/module/workqueue/parameters/power_efficient
    - cpufreq/cpuidle/sched updates and fixes from @neobuddy89
    - crypto changes from CM
    - ext4 updates
    - dynamic fsync (just like in KK version)
    - added the sound changes from CM/CAF
    - wifi driver from Galaxy S5 , thanks to @myfluxi
    - a new KCAL driver from @savoca (a bonus from me: a little bit of contrast and saturation added by default. Nothing intrusive, just a little boost to make our screen shine). Tune in /sys/devices/platform/kcal_ctrl.0/
    - impulse governor from @neobuddy89 (great guy, thanks for all help)
    - built with Linaro from Uber Kernel, toolchain is built from source.
    - refreshed the build flags, and made them less aggressive
    - I probably forgot something

    Donations are not required, but are greatly appreciated.

    I also started a caf kernel, since CM posted a caf tree yesterday night. I'm currently running Blisspop and I think they will switch soon to CAF, since CM will do that too. We'll see you there.
    12
    V23 - 9098f6e9afa9657eaf2b97cb89e535744afc030c

    Kernel changelog:
    Code:
    * 9098f6e blu_plug: fix powersaver_mode when screenoff to save more juice
    * 5feccb8 blu_plug: add powersaver mode, misc fixes * When in powersaving, device has 1 core online @ 1728 MHz
    * ff37b53 cpufreq: blu_active: fix compile error
    * e729f3b defconfig: enable blu_active after name change
    * 314af87 blu_plug: add max_freq_screenoff, reworked suspend/resume, misc fixes
    * 9290e14 blu_active: let's add the file, shall we?
    * 60d0fb9 blu_active: SInce we got blu_plug, let's rename and keep it linear
    * ad00c54 blu_plug: Set up_threshold to 70, let's try without  jiffies
    * 25fb923 mako_hotplug: minor code optimisations.
    * 5683546 Revert "bluactive: let's try and live without the idle notifier and rely on the timer instead."
    * 9329e17 msm: ocmem: Add NULL pointer check for req structure
    * 211cc04 msm: ocmem: Check for NULL pointer from get_zone
    * f53f334 defconfig: update https://github.com/neobuddy89/hammerhead_kernel_caf/commit/a578168261ce29bcd8776013f39e1b1eb716474f
    * 914d2c1f blu_plug: Tune initial values, down_timer_cnt can't be lower than up__timer_cnt, missing bits, small fixes
    * 1a3e94e blu_plug: fix debug merge derp
    * 6925bd0 blu_plug: improvements and fixes * Driver recode and rework * Improve suspend/resume routines * Improve load calculations and plu/unplug routines * Better work and queue management * Fix merge derps and unplug if down_time
    * 48d0d28 mako_hotplug: lets try this fix for the crippling sound when changing networks.
    * 3875085 blu_plug: enable by default
    * e433fcc fastcharge: increase battery charging current to use higher input current
    * 841760d fastcharge: initial Nexus 5 adaptation
    * bf94717 sched/fair: Optimize cgroup pick_next_task_fair()
    * 0363cdd sched/fair: Optimize find_busiest_queue()
    * 6990855 sched/cpuidle: reduce IPI store. Backport upstream 3.16 scheduler updates
    * a6ff5ea defconfig: enable blu_hotplug
    * d08aff9 blu_plug: Dynamic hotplug driver for hammerhead Squashed, based on dyn_hotplug by stratosk Improvements, fixes, changes and ported to hammerhead by eng.stk
    * 5894a56 autosmp: update autosmp is at https://github.com/engstk/hammerhead-4.4.3/commit/72af7b695f4a459bb89595ecc90d45b17ae1ba53
    * f0ce834 cpufreq: bluactive: fix compilaiton errors
    * ce1743d6 defconfig: enable bluactive
    * 687ca1b bluactive: let's try and live without the idle notifier and rely on the timer instead. Based on crpalmer's and franciscofranco patch
    * d6c97ee bluactive: don't scale beyond min if the load is low
    * 0cf987d cpufreq: bluactive: remove boostpulse
    * f6e3633 cpufreq: interactive: remove boostpulse related code
    * 20c6d3f cpufreq: bluactive: disable trace
    * ddcaa83 cpufreq: bluactive: initial version
    * f7fc580 zlib: clean up some dead code
    * 9cb9dbf use ccache I've also enabled it for CROSS_COMPILE in my bashrc
    * d6f4ef0 defconfig: disable msm_limiter sometimes, one core gets stuck at the suspend freq and can't get past that freq you have to manually re-set the max freq, then all goes back to normal
    * 819366d strip debug
    * 26a28bc drivers: video: Separate LCD notifier define
    * ced3d50 fix warning warning: ‘struct device’ declared inside parameter list
    * ba07917 fix warnings after disabling arm topology
    * 6db7392 we need down load threshold only if mako_hotplug is enabled
    * b00879b ASoC: qcom: qdsp6v2: fix crash due to asynchronous read/write
    * 8f87707 defconfig: enable msm_limiter (for testing with autosmp)
    * e978971 msm: limiter: don't set it as default
    * 7fe29f7 msm: limiter: 1036800 not 1036000
    * 4fa6b80 autosmp: fix warnings ISO C90 forbids mixed declarations and code
    * 4f243fb msm: limiter: disable if mako_hotplug is enabled mako_hotplug has it's own limiter built-in
    * 36b2dc5 msm: limiter: set max screen off to 1036000
    * 83f9a43 msm: limiter: Fix updation waiting for next cycle
    * 64f7f0e msm: limiter: Add enable switch and use workqueues
    * 3a38454 msm: limiter: Increase constraints prior changing limits
    * 2dab19f msm: limiter: Cleanup debug prints
    * badea9e msm: limiter: Improve logic and formatting
    * b3c084e msm: limiter: Update path
    * ecf4321 msm: cpufreq: Add frequency limiter driver
    * 788b0f2 forgot this one
    * cf6891c defconfig: enable ASMP (only for testing right now)
    * c13e974 if we're using mako_hotplug, use the new cpu_freq calculator
    * c2f0735 defconfig: disable arm topology
    * c8fbe06 make ASMP dependent on !MAKO_HOTPLUG
    * 6772de6 Disable ARCH_POWER and SLEEPERS
    * ddfe92d autosmp: suspend/resume and work fixes and improvements
    * 547052b autosmp: hammerhead fixes, lcd hooks
    * 7ee72f0 autosmp: Multi-core automatic hotplug support by mrg666
    * 1649b16 mako_hotplug in kconfig
    * c781bbe cpufreq: interactive: let's try and live without the idle notifier and rely on the timer instead. Based on @crpalmer 's patch
    * 0b364f4 cfg80211: mlme: Silently ignore duplicate management registrations
    * 52172f0 net: wireless: bcmdhd: Fix Batch scan get bug
    * 427302a fix merge derp
    * ce082ff msm: smd_tty: add device tree support to smd_tty drivers

    Most important changes:
    Disabled arch power, sleepers and arm topology (UI is more responsive now)
    added autosmp in kernel and fixed compile warnings, but not enabled
    added msm_limiter, but not enabled. It limits the max freq, but in combination with autosmp third core was stuck at the maximum limit freq set.
    added blu_active and blu_plug from Code Blue kernel, set as default.
    added/replaced fastcharge with faux123's implementation.
    You can limit the voltage to 500mAh, 900mAh, 1200mAh, 1500mAh and 2000mAh. I don't recommend anything above 1200mAh, but hey, It's your phone.


    Ramdisk changelog:
    Code:
    * 45c990e hammerhead: Fix bluetooth UART device perms http://review.cyanogenmod.org/#/c/71911
    * 8f24bfe remove interactive tunables
    * 445fbc0 change bluactive to blu_active
    * 9ed9433 changes for bluactive

    Compiled with Linaro 4.9.2. (https://www.mediafire.com/folder/9823dixecw0qj/2014)

    How to tune the two new beasts:
    Universal Kernel Manager (Synapse + Script). Flash kernel, flash the zip from the link, install Synapse.
    9
    Reserved

    Lollipop Kernel

    Features:

    • backports from upstream for most of main components
    • exfat for mounting exfat formatted sticks via USB OTG
    • f2fs for mounting f2fs formatted sticks via USB OTG or if you have an f2fs formatted internal memory (use the same image for all combinations of f2fs formatted partitions).
    • for mounting OTG sticks formatted in NTFS/exFAT/f2fs/other filesystem I recommend this app. FAT formatted sticks will automount if you use CM (might work on AOSP too, I haven't tested it)
    • I also include cherry-picks from other N5 kernels (especially from Chaos/Hybrid - @neobuddy89, Uber - @Cl3Kener and Code_Blue - @eng.stk)
    • min default CPU freq: 300MHz
    • max default CPU freq: 2.26GHz
    • default CPU governor: impulse
    • available CPU governors: ondemand, bacon, performance, powersave, interactive
    • hotplug: msm_hotplug developed by myfluxi
    • cpu-boost driver from CM.
    • I/O readahead size: 512KB
    • I/O default schedueler: fiops
    • other available I/O scheduelers: noop, deadline, cfq, BFQ, tripndroid
    • GPU min/max 20/450MHz
    • GPU default governor: simple
    • other GPU available governors: ondemand, performance
    • color profiles. Based on franco, works with FKU or Nexus Display Control app.
    • savoca's KCAL
    • franco sound
    • CM sound patches
    • dynamic fsync
    • various memory improvements. This doesn't mean less consumed RAM, also free RAM is wasted RAM for linux. Also, read this: http://www.linuxatemyram.com/
    • msm limiter (limits screenoff freq to 1.2GHz)
    • KSM: Kernel Samepage Merging.

      KSM merges memory pages from one app with another app, thus only loading one memory page, not two pages that are the same.

      Let's say that app A has the page X loaded in memory. Let's say that app B loads pages X and Y in memory. KSM detects that and points app B to the memory address from page X loaded by app A. In the end we have this:

      Without KSM:
      A: X
      B: X, Y
      Total: X, X, Y

      With KSM:
      A: X
      B: ^, Y
      Total: X, Y
    • the famous I2C @ 19.2MHz, plus some other chips dropped at 19.2MHz
    • HTCP as default TCP congestion control. (I personally don't see any differences between different TCP Congestion Control algorithms)
      other TCPCC available: reno, bic, cubic (I used this in DD-WRT), westwood (they say it's good for wireless/3G/4G devices), vegas, veno
    • compilled with latest Linaro GCC (4.9.3), and with SaberMod
    • removed useless debug
    • I probably forgot something

    Q&A

    - Is it stable/bug free?
    - As stable/bug free as franco's kernel is.

    - Does it score better in benchmarks?
    - I think so. At least Antutu says so, in the integer and float benchmarks. Quadrant also says this. It's not a huge difference, and you can't see it with the naked eye. But I don't trust in benchmarks that much.

    - How's the battery life?
    - (From Reddit) "The same battery life you get with Franco, if not a little better. Optimization means better performance, better performance means less time executing the same code, less time online means more deep sleep. Idk how much better it is, but it's not worse, anyway."

    How can I configure it?

    1. Universal Kernel Manager (Synapse + Script). Flash kernel, flash the zip from the link, install Synapse. Read here for more info on frequency getting stuck at 1.2GHz. TL;DR: go and setup via Synapse how you want, then go to CPU Tab, set minimum freq to 300Mhz, apply, enjoy.
    2. FKU
    3. Kernel Tweaker
    4. Trickster Mod, via scripts in init.d, etc.


    Recommended & tested ROMs:
    • Optipop
    • SlimAOSP
    • Terminus
    • Blisspop
    This doesn't mean that ROMs are not supported, jus that I haven't tested them. The ROMs from this list are working as they should with my kernel.


    Rollback:
    • Rename /system/lib/hw/power.msm8974.so.bak to /system/lib/hw/power.msm8974.so
    • Rename /system/bin/thermal-engine-hh-bak to /system/bin/thermal-engine-hh
    • Reboot to the bootloader and flash stock Kernel by downloading the Nexus images and then fastboot flash boot boot.img
    • Start the phone
    • Reboot to bootloader again and flash what kernel you want, and then start the phone.



    Special thanks for testing and help:
    @_MirageX_ @dox81 [mention]@pianistaPL[/mention] [mention]@shadowdevil[/mention]

    Special thanks for donations:
    [mention]@Paddybecks87[/mention] and the guy from reddit (notable-_-shibboleth) who also uses my build of pf-kernel for Ubuntu. (If you see this and you have a XDA username, give me a PM to put you in the list here)


    Sources:




    I use big bum as primary but with some secondary rom and some kernel doesn't work.

    FIX:

    -flash rom
    -flash gapps
    -flash big-bum
    -flash zip EXT4 or F2FS
    -done

    ;)



    Old kernel info:
    I said last night that this kernel works on CM.

    First of all, CM is CAF. Our kernel is not CAF. This means that some libraries are not compatible with our kernel and need to be changed to make it compatible. This is exactly what Calkulin made. He made a zip that contain non-CAF libs to boot stock AOSP kernels.
    I took that zip, modified it and put our kernel in it. This is more like a hack, it's not the real CAF kernel!
    Also, in the OP I said that this isn't CAF-compatible by default. This is what I was talking about. With a little hack, it can run on CM.
    This has nothing to do with the kernel. It's all in the libs. I only made a simple/easy/convenient way to flash CM and this kernel together.


    How to:

    Scenario 1: You don't have CM installed, you want to install it.

    1. Download CM(tested with 07.07 nightly) or CM-based ROM zip. (In theory it should work)
    2. Flash CM/CM-based ROM, gapps. Read the ROM OP for more details.
    3. Flash the latest kernel/zip from CM folder.
    When updating the ROM, you must reflash the kernel zip file from CM folder.
    When updating the kernel, you can flash the normal ext4 version (zip or img from AOSP folder), or the hacked CM one (the zip from CM folder).

    Scenario 2: You have CM and you want to try this kernel.
    1. Download and flash the kernel/zip from CM folder.
    When updating the ROM, you must reflash the kernel zip file from CM folder.
    When updating the kernel, you can flash the normal ext4 version (zip or img from AOSP folder), or the hacked CM one (the zip from CM folder).

    QA:
    -f2fs/f2fs-all version for CM?
    -No.
    First of all, CM formats partitions to ext4 when flashing. You must edit your updater-script for it to work. If you know this, then you know what I'm talking about in the next 2 paragraphs.
    Second, you can make a flashable zip by yourself.
    Third, it's easier to download the zip from the thread and flash it, then flash a f2fs/f2fs-all kernel. (AOSP folder, zip or img)
    You just have to be carefull that if you're on f2fs-all, you must edit META-INF/com/google/android/updater-script from Calkulin's zip file: replace ext4 with f2fs. Repack, flash your zip, flash f2fs/f2fs-all kernel, enjoy.


    -I have done what you said. I now run CM on f2fs/f2fs-all. What do I do in case of an update?
    -Well, it depends.
    For ROM update:
    1. Flash CM ROM.
    2. Flash the zip you made and flashed when you asked the previous question (third point)
    3. Flash f2fs/f2fs-all kernel

    For kernel update:
    1. Flash the appropiate f2fs/f2fs-all kernel. (AOSP folder, zip or img)

    Credits: Calkulin for his thread, zip, files and discovery.
    9
    V7

    From now on, I'll provide Linaro and SaberMod versions for this kernel.

    USB stack is now at 3.4.105
    FUSE/vfs/fat/fs fixes from 3.5, 3.6 and 3.7
    qseecom updates from CM
    f2fs updates from upstream
    memory optimizations from motorola for our board are now merged with cortex ones
    NET is 3.4.105
    some video driver updates
    selinux fixes
    leds fixes
    msm camera updates working as it should now
    bluetooth is build at -O2 and I have reverted all the changes to stock kernel
    enabled all frequencies for the CPU. Battery tests showed no (much) gain, but no loss either. @fabi_92 reported that the phone feels smoother, so it stays this way.
    interactive: updates from CM/myfluxi
    interactive: added a tunable in which you can choose the way the frequency is calculated (the old way, or the new load-based way). Writing 1 in /sys/devices/system/cpu/cpufreq/interactive/use_cpu_load will enable the new way of calculating the freq.
    interactive: added a tunable to set the load threshold if you think the CPU doesn't stay enough in the minimum freq, but I recommend leaving it to 0 or not with it past 10-15.
    added smartmax gov by request. It's not tuned and I don't offer support for it, so if you have crashes with it don't post them here.
    underclocked GPU idle. The GPU runs at 20MHz now, instead of 27Mhz.
    reduced wifi wakelocks
    raised the thermal threshold frequency. It now goes down to 1.7GHz instead of 1.5Ghz, then if the cpu is still hot, it will the freq to 1.5GHz instead of 1.2GHz
    Makefiles changes: merged some flags from Uber, added some parameters for our CPU, enabled hardfloat for NEON and VFP
    mutex, rtmutex, semaphores updates
    added tripndroid IO sched
    I probably forgot something.