Or Continue to Thread: [KERNEL] [Franco hybrid] [AOSP…
Find Your Device:
6th June 2014, 10:57 AM   |  #1  
big_bum's Avatar
OP Senior Member
Flag Bucharest
Thanks Meter: 774
736 posts
Join Date:Joined: Sep 2012
Donate to Me
HERE or HERE if you prefer a simpler expanded tree for the FTP.
I also have a mirror HERE.
Test folder: ftp://big-bum.uni.cx/.not_so_private or https://dl.dropboxusercontent.com/u/...ate/index.html

I'm not being held 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!


It has the base of Franco, and the optimizations of the Linaro kernel, compiled with Linaro 4.9.2.
I didn't like Linaro kernel because of faux sound patches and the fact that I have to pay for the app (and some other things that I won't discuss here).
I didn't like Franco because it only has -O2 as build flags.
I decided that I wanted to have the best of both kernels, so I built myself a custom hybrid one.
Text source

  • all franco's kernel features
  • Lianro's (LaboDJ's) compile optimizations and a few other commits "stolen" from him
  • exfat for mounting exfat formatted sticks via USB OTG or if you have an exfat formatted internal memory
  • f2fs for mounting f2fs formatted sticks via USB OTG or if you have an f2fs formatted internal memory
  • 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 (Chaos, Uber and Code_Blue especially)
  • min default CPU freq: 300MHz
  • max default CPU freq: 2.26GHz
  • overclock possibility up to 3.01GHz, with the following freq steps: 2.4GHz, 2.72GHz, 2.80GHz, 2.88GHz
  • CPU under/overvolting possibility
  • default CPU governor: blu_active (the same one which Code Blue kernel uses)
  • available CPU governors: ondemand, interactive (the one from franco's original work)
  • hotplug: blu_plug (the same one which Code Blue kernel uses). I've changed from mako_hotplug to this one.
  • hotplug special tunables: powersave mode, min/max CPUs online, max CPUs online when screen is off, max freq when screen is off
  • I/O readahead size: 512KB
  • I/O default schedueler: BFQ v7r5
  • available I/O scheduelers: noop, deadline, row, cfq, zen
  • dynamic fsync. When screen is on, file syncing is disabled. Once you turn off the screen, sync will be enabled
  • GPU min/max 100/450MHz
  • GPU default governor: interactive
  • GPU available governors: ondemand, performance
  • color profiles. Based on franco, works with FKU or Nexus Display Control app.
  • franco sound
  • high performance mode sound driver, enabled by default
  • 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/
  • fast charge from faux123. This enables a custom mode where you can input your maximum input amperage, from 500mAh to 2000mAh, with the following steps: 500mAh, 900mAh, 1200mAh, 1500mAh, 2000mAh. I don't recommend setting anything more than 1200mAh.
  • KSM: Kernel Samepage Merging.
  • msm thermal driver v2 from faux
  • cpu boost driver

    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
  • 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), highspeed, hybla, vegas, veno, scalable, lp, yeah, illinois. (I will get rid of 90% of this, since I'm 100% sure that 99% of the Internet users don't even know what these are.) (https://github.com/StefanescuCristian/hammerhead/commit/2c8947b6403074d6c272a1b01076d55e2dd08ac1)
  • compilled with latest Linaro GCC (4.9.2)
  • I probably forgot something



- 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."

- It's not CAF compatible, right?
- Right. At least, not by default. I didn't test it, so I don't know if it works 100%.
EDIT (08.Jul.2014): read this.

- I want feature X/Y/Z included in this kernel.
- No you don't. You're not using my kernel. I'm the only one using it. Who are you? Oh God, I forgot to take my medication again!

- How can I configure it?
1. Universal Kernel Manager (Synapse + Script). Flash kernel, flash the zip from the link, install Synapse.
2. FKU
3. Kernel Tweaker
4. Trickster Mod, via scripts in init.d, etc.
I'd personally go with the first two.

- I like your kernel!
- Thanks! I'm happy that you're happy! But you know what will make happier? Going here and here and pressing the thanks button for the original developers. You're just 4 clicks away from making 2 people happy.
Think of me as a man who wants to use and share his custom kernel. Full credits and respect goes to Franco and LaboDJ and to other people who work on Linux kernel.
I'm not posting this to steal their users, I'm posting this because I don't think I am the only one who thought of combining Franco and some of Linaro Kernel, but people don't know how or don't have time to do that.

- I don't like your kernel!
- No worries! We're still cool.

Download and flashing:

You can download from:
my FTP
my other FTP

Please check the MD5, especially when downloading from my FTP and you're not from Europe!
You can flash this in FKU, flashify, fastboot, etc, just like a normal boot.img. Zips go in recovery.

  • 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.

@franciscofranco for his kernel sources, ideas, work and dedication
Also, you should really buy FKU even if you're not using any of his kernels. It's a great tuning app and by buying it you show him some respect for his work. I personally bought it and I don't regret that.
@LaboDJ for his kernel sources, optimizations, ideas and his work
@Christopher83 for Linaro GCC binaries, tutorials on how to compile Linaro, his Linaro binaries and tutorials
other people who work on Linux kernel.

Special thanks for testing: @_MirageX_ @dox81

Ramdisk: https://github.com/StefanescuCristia...isk_hammerhead
Toolchain: https://github.com/Christopher83/linaro_toolchains_2014

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

XDA:DevDB Information
[KERNEL] [Franco hybrid] [AOSP/CM] [F2FS] [3.4.104] big-bum V28, Kernel for the Google Nexus 5

Kernel Special Features: -Ofast, KSM, BFQ, ZEN, f2fs, CM (non-CAF way)

Version Information
Status: Stable
Current Stable Version: 28
Stable Release Date: 2014-10-08

Created 2014-07-07
Last Updated 2014-10-18
Last edited by big_bum; 13th October 2014 at 08:59 PM.
The Following 60 Users Say Thank You to big_bum For This Useful Post: [ View ]