francoTurtle is made for battery hungry users. Its the default governor and it will boot at 700/1000

francoGazelle is made for performance hungry users while trying to maintain a reasonable battery life

SLUB memory allocator as default

USB HOST enabled

CIFS enabled

TUN enabled

ColorControl from Ezekeel

Command: echo "-10 0 -2" /sys/class/misc/colorcontrol/v1_offsets
this is just an example, values range between -255 and 255. If you want the values to stick on reboot create an init.d script or use my app

Hotplug mod added. Works independently of the governor. Shuts down cpu1 on screen_off and wakes it up again on screen_on

Dynamic hotplug for francoTurtle. if current frequency is equal to minimum frequency and the number of online cpus is equal to 2, cpu1 offlines; if current frequency is bigger than the minimum and the number of online cpus is 1 cpu1 onlines. This check runs every 2 seconds. It's disabled by default and it only works for francoTurtle

Franco App

This application is a must have if you have a Galaxy Nexus GSM or LTE version. It's a simple tool to download and update franco.Kernel for the Galaxy Nexus. It eases up the download and update check process for every user.

Downloads the kernel directly from the ftp

Checks for updates directly from the ftp

Cpu frequencies changer

Governor changer

Kernel settings: hotplug_enabler (more coming)

Reboot to recovery button

Custom download path

ColorControl to change the screen colors

UV interface

Information

Check for Kernel Updates - Does exactly what you would assume, checks Franco's servers for an update. If an update is available, it will be listed under your current kernel version #

Kernel Auto-Flash - Will download and flash the latest kernel with no more user input.

Download Kernel - Will download the latest kernel to the SD card (location can be set in settings)

OC/UV

Max CPU - Sets the maximum scaling frequency. On the stable branch of the kernel, this will either be stock or underclocked to 1000mhz. On the Expirimental branch, this will be able to be overclocked to 1.35, 1.4, 1.5, 1.6, or 1.65 ghz depending on which frequencies Franco includes with a particular release.

Min CPU - Sets the minimum scaling frequency. By default this is set to 700mhz. In testing, this had very little affect on battery life, but an increase in responsiveness, especially when using HotPlug Mod.

Scaling Governor - Sets the paramaters by which the CPU switches between frequencies (see description of goveners)

Set at Boot - Sets the user selected parameters upon booting the phone (does not use init.d as this caused some issues)

Undervolt - Sets specific voltage for each frequency. See description of voltages.

Frequently Asked Questions (FAQ)

A: Fix it yourself, it's an app waking your device up not the kernel's problem

3. Signal is dropping since I flashed the kernel, amg u sucks!

A: The kernel has nothing to do with gsm/cmda signal. Make sure you have the latest radios

4. Do I need to wipe anything when flashing this kernel?

A: No.

5. Does this kernel has X or Y mod?

A: Learn to read, everything you need to know is in the features list, changelog or public repo.

6. Why doesn't this include a GPU overclock?

A: (from Colin Cross of Google) Most GPU workloads on 4460 with a 720p screen are limited by the
memory bandwidth, not the GPU computation ability (which is fairly
linear with clock speed). With the GPU at 307 MHz, the core is at
OPP100, the and the memory bus is at full speed. At 384 MHz, the core
is at OPP_100_OV, which raises the core voltage (not counting
SmartReflex) from 1.127V to 1.25V, causing a huge increase in power
usage. Without the GPU, the core is almost always running at OPP100
when under load, because CPU OPP100 (700 MHz) requires core OPP100.
That means scaling the GPU from 150MHz to 307MHz costs very little in
terms of power. Nothing else in the chip requires core OPP100_OV, so
scaling the GPU to 384MHz is a pure power hit for very little (or no)
performance gain.

7. What is HotPlug Mod?

A: Hotplug is a method for shutting down one of the two CPU cores to save on power consumption. The initial implementation is to shut off core1 when the screen is off, then back on with the screen. A second implementation called Dynamic HotPlug (DHP) has been tested, where core1 is shut down when CPU load is less than 60%

8. Why did you remove Dynamic HotPlug?

A: When checking CPU load, the CPU would sometimes spike, causing core1 to be turned back on unecessarily. This could lead to extended periods of turning core1 on and off, consuming more power.

9. Isn't CFQ I/O scheduler intended for spinning disc storage?

A: Yes, but it can be tuned to work well for flash devices as well.

10. What voltage settings should I run?

A: Stock! If you want to screw around with voltages to get a lower operating temperature, or whatever, be warned, you may cause instability. Also note: there has been no significant battery savings by a lower voltage alone.

CPU/GPU Features

Franco.Kernel allows for 350mhz, 700mhz, 1000mhz, 1200mhz, 1350mhz, and 1500mhz clock frequencies to be used

CPU Govenors

Franco has developed two governors based on the standard conservative.

francoTurtle is for battery hungry users. By default it will be set with 700min and 1000max and it will take a lot more cpu load to increase his frequency. In my testing 700mhz is used around 95% of the time.

francoGazelle is mainly for performance users. While it maintains some battery saving that its inherited from Conservative, it will ramp up aggressively to the max frequency and far more often than francoTurtle.

HotPlug

HotPlug is a method by which one of the two cores can be shut off. The main application of this is is when the screen is off. However, Franco has attempted to implement a "Dynamic Hot Plug" where core1 is shut off when CPU load decreases below 60%. Due to instability, this has been discontinued.

CPU Voltage

Franco Kernel allows for varying CPU voltage levels for those wishing to tweak this setting. NOTE: as this may cause instability and saves very little battery, the kernel comes at stock values. One argument for lower voltages is to reduce operating temperatures.

Kernel Changelog

Removed all OC steps besides 1,35ghz - this is because this is going to be the stable branch, and I want it clean and shit free

Volume hack is set by 15 as default to prevent issues with very low volume inadvertently

C4 state enabled again as it was seen on the omapzoom repo

One or two small tweaks

27th February - nightly #18.5

Removed autogroup and cgroups again - some croup options caused massive overhead and we don't need that kind of grouping crap in our device. Curious enough famous 13.1 had this options disabled as well

Reduced wakeups from wifi and modem by half - imoseyon's idea

Removed MPU register overrider - this will probably reduce some OC capabilities. The reason for this is to prepare this branch to be stable and leave this hacks for a future experimental branch

Since 1,6ghz and 1,65ghz steps weren't working for the majority of users and it was causing some bootloops on forgetful users, both frequencies are gone. Stability is everything

Changed 1,35ghz step to 1,3ghz and added 1,4ghz

24th February - nightly #18.3

Smartreflex 1.5 enabled again (it's enabled on stock kernel) - this will probably fix any SoD issues that have been arising and fix some extra high temperatures in some devices. Because of this 1,65ghz and 1,6ghz won't work for 90% of the users - which I actually don't care because stability > everything else

CFQ I/O scheduler is the default again and tuned for flash devices just like it was before the rebase

Conservative governor added back and tuned as a preview of Gazelle and Turtle since I'm going to use it as a base on both governors - it's also the default governor as well

22th February - nightly #18.2

Added 1,6ghz and 1,65ghz frequencies - play safe with them, I'm not responsible with any problems you can have while overclocking

Added <#18 screen gamma values by default

21th February - nightly #18.1

SoD issue should now be fixed

Added 1,5ghz step - use it with caution, you're on your own if you use this step so don't bother crying at me if your device doesn't run faster than your 8-core desktop

20th February - nightly #18

Completely rebased kernel - no more shit code lying around

Turtle and Gazelle not yet added as I need to tune them better

Ondemand governor tweaked and used as default

A lot of other changes that will be visible on my repo in a few hours

Stability

Long battery again

15th February - nightly #17.2

More stability fixes

15th February - nightly #17.1

Try to fix the reboots from last version

14th February - nightly #17

Added 1,5ghz and 200mhz steps to give users a little more freedom of choice

Gazelle now scales on all frequencies, but its still very aggressive on the scaling

ColorControl patch from Ezekeel - now you'll be able to change the color multipliers doing this for example: echo "2004318071 2004318071 2004318071" > /sys/class/misc/colorcontrol/multiplier Don't ask me for the values, try it yourself

Custom Voltage mod from Ezekeel patched up to his latest changes - for more information check his github repo

Dynamic hotplug removed - this is a good idea on paper but CPU spikes up every other time while trying to check if cpu1 was online or not, and that is not expected at all. I may return to this implementation in the future if I think of a better way to do it

350mhz bumped to 400mhz and set as minimum frequency as default - for testing purposes, we'll see that comes from this

francoTurtle is the default governor again

8th February - nightly #16.1

Erroneous ram report on the app list is now fixed

Revert regulator drive 3.2 backport for stability

Revert multithread boot init calls batch for stability

Revert two other patches in a try to fix the strange wifi bug some users were having

fracoGazelle governor is now the default governor to prevent the phone to go into single-core only mode. Is still fine to set francoTurtle as default governor to boot if the users desire to. This is mostly a cosmetic fix.

7th February - nightly #16

CFQ completely pushed to 3.1

Changed back to Fast No HZ RCU. jRCU and hotplugging isn't a good combination

Stock voltages. This will rule out any possible issues coming from bad voltages on my side

Bye bye the rest of the debug shit. This will give a little performance boost

Added Dynamic Hotplug: Dynamic hotplug for francoTurtle is a simple check: if currentfrequency is equal to minimum frequency and the number of online cpus is equal to 2, cpu1 offlines; if current frequency is bigger than the minimum and the number of online cpus is 1 cpu1 onlines. This check runs every 2 seconds. If none of the conditions are met it keeps polling every 2 seconds until one of the conditions are met. This is an attempt to provide extra battery power during screen on. More information on how to enable/disable in the feature list above, or just use my app

Stability release: back to the old wifi driver as the new one was causing instability issues

Other small stability reverts

1th February - nightly #15.1

francoTurtle boots now with 1ghz

New wifi driver from nikademus's repo

.zip includes a cleaner.sh file that cleans up my init.d to prevent shit hitting the fan

Cleaner.sh also cleans up dalvik-cache just for fun

Bootanimation took out from the zip because I got too much hate mail

Cpu voltages are now scaled ~87% of stock ones

Some minor tweaks and optimizations because I don't remember everything

30th January - nightly #15

Two new governors added - francoTurtle and francoGazelle. They are both based on Conservative and they have different purposes. francoTurtle is for battery hungry users. By default it will be set with 700min and 1000max and it will take a lot more cpu load to increase his frequency. In my testing 700mhz is used around 95% of the time. francoGazelle is mainly for performance users. While it maintains some battery saving that its inherited from Conservative, it will ramp up aggressively to the max frequency and far more often than francoTurtle.

francoTurtle governor is set by default

CFQ I/O scheduler is now the default. While this decision looks pretty idiotic since CFQ is made for rotational devices, after I've read some IBM articles I've seen that it can be tuned to work as well for flash devices, so after I did that I wasÉoverwhelmed with the performance that it produces compared to deadline or FIOPS.

CIFS is now included inside the kernel instead of a module

CM9 compatibility added - Gamma control isn't present here yet because ColorControl does the same thing

Block rq_affinity is now working aggressively - means that the IO tasks are not bound to the cpu that it was being destined, so if cpu0 is overwhelmed with tasks it will be migrated to cpu1 which is always nice

CFQ scheduler updated to 3.1 kernel code

Ezekeels Voltage Control added and removed coolbho's implementation

Stock GPU clock - I'll give you two options: first, if you cry about this search the thread and you'll find an email that Colin Cross (Google Android team) sent me explaining why stock GPU clock is better. Second option, if you keep crying and asking for "UMFG GAVE ME 512GHZ CLOCKZ" after you've read what Colin said I'll send you a link to listen Cry me a river song from Justin Timberlake

Some minor optimizations and tweaks - visit my repo for more information

27th January - nightly #14.4

Another stability release - removed imoseyons ugly hack form the UV interface and all seems good now taking in consideration the feedback from kernels test1 and test2

Should be compatible with CM9 since I added all the ramdisk changes needed

Thanks for sticking with me, shit happens sometimes when we don't expect

27th January - nightly #14.3

Stability release - few people were still having some weird data drops and battery drains, I sincerely hope this fixes it

Patched up to 3.0.18

Added an AWESOME boot animation from rascarlo - be sure to drop him a thanks or a donation as a token of appreciation, I'm gonna do so myself as soon as I get his paypal link

C4 state patch reverted - according to Colin Cross (Google Android team) it can only save 2mAh max during idle, but it could cause some instability, thats why they reverted it as well. I want stability, so this stays reverted

VM_Readahead values hardcore - now it's set to 512kbs

CIFS added as a module

Writeback values reverted back to stock - they seemed to perform extremely well in conjunction with the Writeback IO backport from 3.2

Conservative governor tuned again - what I did this time is pretty simple, this governor now only jumps between min frequency and max frequency. Why this? Because I want to minimize any kind of lag that "can" happen when polling and then ramping up step by step to max frequency. To balance the battery/performance ratio I increased the ramp_up threshold from 60% to 80% CPU load, which means that while it doesn't use the 920 step (in the 700min-1200max scenario, since it's the default and the one that I recommend) it will ramp less times to max frequency. This is wielding the best results in the last 24 hours for me and my testers didn't complain at all, quite the contrary

UV interface is disabled - don't bother ask me 50 times for this. It has been proved that it creates a huge stall if a user undervolts too much. This kernel is already undervolted with this settings: 925000, 1103000, 1217000, 1280000 - values suggested by faux on his thread on rootzwiki and they seem to play along pretty well

Dynamic Writeback from 3.1 is back too

30th December - nightly #7.1

Bye CIFS - from my testing it was causing horrible battery life while idle

USB now being recognizable in the computer fixed too

29th December - nightly #7

Battery drain during idle is now finally fixed - got reports of 1% drain for 7h idle, and some other awesome results

Ramdisk is now being delivered to be able to give certain tweaks to improve smoothness

TUN and CIFS are now built in the kernel - no more modules that don't load

Some minor tweaks and optimizations

27th December - nightly #6

Add back UV interface

3.2-rc7 RCUtree backport from imoseyon

When the screen is powered up the device ramps to the max frequency for a brief time

Fixed compiling warnings all over the place

Ondemand is default again

Ondemand and interactive tunable parameters polished again

New sdcard binary - to work with GTA3 you have to delete this directory /sdcard/Android/data/com.rockstar.gta3 and download gta3 data again

More under the hood config changes

More attempts to increase battery life

A lot of reverts of previous patches to ensure maximum stability

25th December - nightly #5

Revert "Add dynamic writeback feature from 3.1"

Kernel more lean with more useless shit disabled

Hotplug governor enabled again and made default - this governor disables cpu1 while screen is off - testing to see if it helps with battery life

Updated to 3.0.14

Tweaked the default colors - whites are more white, and colors are more vibrant

Decrease frequency transitions latency

22th December - nightly #4

Removed a bunch of debug that slows down the system (logcat and dmesg/printk are still there, and I don't plan to remove them)