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

Search This thread

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
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
 

Attachments

  • TZCqH2z.jpg
    TZCqH2z.jpg
    15.9 KB · Views: 11,765
Last edited:

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
Reserved

Old kernel info:
Which version do I need?

It's pretty simple and I think I structured the download sites pretty good. If you want another structure or you have ideas for improvements, then feel free to post them. Anyway:

For AOSP based ROMs (Mahdi, Paranoid, Liquid Smooth, etc) use the AOSP folder. If you didn't change the ROM to support f2fs or f2fs-all, you must use ext4 or mpd*.
For Cyanogenmod based ROMs (CM, Carbon, AOKP, etc) you must use the kernels from the CM folder (cm or cm-mpd) . You can flash a f2fs version on CM. Read post 2, the Q&A section.

*mpd stand for MPDecision (make poor decision). It's qualcomm's user-space implementation for plugging/unplugging the cores. Some people say it's bad, some people say it's good. I personally like it and use it
 
Last edited:

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
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.
 
Last edited:

DREWHAMM974

Senior Member
Dec 2, 2012
733
592
31
Athens, Alabama
No disrespect, but since this is based on Franco this should be in Android Development. The mods will more than likely move it there soon.

Sent from my Nexus 5 using XDA Premium 4 mobile app
 
  • Like
Reactions: big_bum

JoaoPaulo

Senior Member
Feb 9, 2013
647
873
Porto
This thread must be moved to Android Development as there are no "original" features here. Read rules before posting bro

Enviado do meu Nexus 5 através de Tapatalk
 

idriff

Senior Member
Mar 26, 2012
226
24
Nice I'm gonna test it out great work man
Btw can live without it but gotta ask is dt2w included?

Sent from my Nexus 5 using Tapatalk
 

resynx

Senior Member
Jun 14, 2010
3,231
1,288
Sounds awesome, trying out this kernel NOW! Thanks for sharing :)

Sent from my Nexus 5 using Tapatalk
 

big_bum

Senior Member
Sep 20, 2012
952
1,243
32
Bucharest
Nice I'm gonna test it out great work man
Btw can live without it but gotta ask is dt2w included?

Sent from my Nexus 5 using Tapatalk

No. But if you want dt2w you can use Linaro. :D You'll loose bfq and franco sound patches.

Dt2w or s2w will never be great on this phone because of battery drain.

But we have a hardware pedometer in our phone, so theoretically all the apps that are tracking step numbers should not use any battery at all because they are not using the accelerometer. I guess we can't have it all.

Sent from my Nexus 5 using Tapatalk
 

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.