[Nexus 4 Android Development] jassycliq:
GOAL

The goal of this kernel is to have a central place for developers in the community, who don't want the burden to maintain their own kernel, to have a place to do so. Many times, developers who work on these devices constantly develop issues with others or don't have time to incorporate new features. Our goal is to avoid all that. Anything and everything will be accepted, granted it doesn't break anything. [MENTION=4195844]show-p1984[/MENTION] has been kind enough to not only host the source but grant the use of his buildbot for this project. Every time source is pushed, the bot will start to build the kernel, zip up the package and finally upload it to my goo.im account. If you'd like to become part of this project then go ahead and reach out to me on twitter (@jassycliq) or PM me on here. My short term goal for this kernel is to add all the hotplug drivers available for mako and incorporate them into this one kernel. As it stands we can only use Qcom's binary, show's mpdecision and faux123's intelli-plug as they have switches to turn them off. These can be changed on the fly, as long as the user turns off all the hotplug drivers first then turns on the desired hotplug method. I'd also like to have an app that can control this, well a proper application to be exact.

Features

* CPU OC up to 1.9ghz, Default to 1.5GHz

* CPU UC down to 162mhz

* UV down to 600,000uVolts

* Intelli-plug hotplug driver

* Qualcomm's MPDecision

* MSM MPDecision (kernel based mpdecision)

* Dynamic FSync

* Sweep2Wake

* Snapdragon S4 and Krait optimizations

* 3-Phase Thermal

* GPU OC up to 487mhz

* Faux's Gamma Interface

* Faux Sound/Speaker Control

* Fast Charge

* Schedulers

FIOPS

SIO

NOOP

ROW

CFQ

DEADLINE (tuned for flash devices)

* Governors:

DanceDance

Interactive

Ondemand

Performance

* Advance TCP Congestion Control

Westood+

Reno

Bic

Cubic

Htcp

Veno

* Compiled with gcc 4.7.3 (Linaro 4.7-2013.04)

* -Ofast optimized

* WLAN, TUN and CIFS compiled as modules due to size of kernel from the high amounts of optimizations

* OTG support

* Too much to write!

Choosing between the 3 hotplug drivers

This kernel comes with 3 hotplug drivers (intelli-plug, qcoms mpdecision and kernel based mpdecision) by default only Qualcomm's MPDecision is used. To turn one of the others you must use their respective sysfs interfaces after turning off the one's you're not using. To make it easier for you, I have included a small little application that helps you turn through this. If you'd like to make an init.d script to choose which one you want on boot then use the following commands

For kernel based mpdecision

echo "0/1" > /sys/kernel/msm_mpdecision/conf/enabled
echo "0/1" > /sys/kernel/msm_mpdecision/conf/scroff_single_core

For Intelli-Plug

echo "0/1" > /sys/module/intelli_plug/parameters/intelli_plug_active
echo "0/1" > /sys/module/intelli_plug/parameters/eco_mode_active

For Qualcomm's MPDecision

start mpdecision
stop mpdecision

Downloads

http://goo.im/devs/jassycliq/mako

Why do I have no WLAN?

Due to this kernels very high optimization settings it is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort = userinit (init.d) support.

The zip adds init.d support to your ramdisk, if that fails for some reason the wlan module cannot be inserted.

if

adb shell lsmod

doesn't show this:

tun 14701 0 - Live 0x00000000
cifs 275399 0 - Live 0x00000000
wlan 2964650 0 - Live 0x00000000 (C)

Then init.d support is probably missing.

You can test it by going to /system/etc/init.d/ and executing 00wlan.

adb shell
su
. /system/etc/init.d/00wlan

Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show wlan, you can execute 01cifs and 02tun too).

If WLAN now works, init.d support is missing.

You need to have busybox installed in order to be able to get init.d support going, this shouldn't be a problem for most people, since it is usually installed when rooting your phone anyway.

It does not matter if busybox is installed in /system/bin or /system/xbin, my script will detect the location upon flashing and patch the ramdisk accordingly.

If no busybox is found, the script will add init.d support to your ramdisk with the default location: /system/xbin/busybox. All you need to do is install busybox there and reboot your phone.