[Droid Incredible Android Development] tiny4579:
Changelog

Notes on the new interactive governor below.

04/25/13

interactive governor updates from Tinykernel (Galaxy Nexus)

new sysfs path for fast charge - still compatible with incredicontrol

additional TCP congestion scheduler options with a default scheduler of cubic

10/04/12

New interactive governor backported from Incredikernel GB. Smartassv2 still default

Removed rarely used CPU governors

08/10/12

added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger

enabled KSM (Kernel Samepage Merging) - no change needed to make it active

03/11/12

Added Lazy governor - credit to Ezekeel

Enabled Smartass and Conservative governors

02/25/12

Disabled smartass,interactive,conservative governors

Disabled CFQ and BFQ governors as they were found not to be a efficient on flash devices

New I/O scheduler - SIO

New CPU governor - lagfree

smartassV2 is default governor again

Tweaked deadline scheduler for performance

Applied different zram patch, should be more stable, and removed memory tweaks in zram script (have to disable/enable to reset)

12/31/11

Patch kernel to 2.6.35.14

Tweak intellidemand and interactiveX governors for battery life

Ext4 patch for performance

Add ZRAM and swap support and add script to toggle ZRAM - see bottom of OP for more info

12/25/11

Increase min and max voltages by 25 for all non-OC frequencies

Added faux123′s intellidemand governor (thanks faux123!) - similar to ondemand but with screen off

Added imoseyon’s interactiveX governor (thanks imoseyon!) - interactive with screen off

12/01/11

Revert config setting that was causing freezing issues

Allow overvolting up to 1375 for more stability in overclocking

Revert default smartassv2 settings back to those of pre-11/6 kernel

Fix permissions on sysfs which were causing force closes in some apps

Use new ondemand,performance, and conservative governors

11/19/11

Tweak ondemand governor

Interactive governor fix

Update BFQ to v3-r1

Add and enable Tiny Preempt RCU (should perform even better than Tiny RCU)

11/10/11

Adjust smartassv2 scaling (see github for details)

Fix touchscreen issue that occurs on some devices

config: set tiny rcu (lower memory footprint)

add 1152000 and 1190400 CPU frequencies - only try if you're adventurous

various behind-the scenes fixes

11/06/11

Add interactive governor

Add smartass governor

Increase smartassv2 ideal wake frequency to 998Mhz - should help performance (if you don't like, underclock to 768 - this may change in a future release)

Add BFQ I/O Scheduler

HAVS+Sysfs interface (use Incredicontrol or boot scripts - see incredikernel.com and incredikernel thread for more information)

Fixed wifi not starting on certain ROMs such as McTwist - hopefully

11/02/11

Added unified panel driver from incredikernel and gingertiny-v1 for better responsiveness

Added msm_vibrator from gingertiny-v1 for smoother haptic feedback with smartass

Enabled TUN VPN support

10/31/11

Features:

Rebased on HTC official Incredible gingerbread .13 kernel

Audio Boost (Thanks Chad0989 for letting me use your source for this)

USB Fast Charging (Thanks Chad0989 for letting me use your source for this)

compressed kernel further for better support with boot manager

support for 128Mhz as well as overclock up to 1113

3/5 point multitouch support on supported devices

lowered wifi voltage

OC up to 1.113Ghz

Built in modules for cifs, smartassv2, conservative, ext4, ntfs (read only)

HTC's perflock removed

Ext4 driver used to mount ext2/3 filesystems (default in cyanogenmod and incredikernel)

Enabled swap support (need app like swapper from market to utilize)

SD Card and EMMC mount should work properly on all Sense ROMs now.

incorporated some tweaks from incredikernel

support for wifi-n (2.4ghz only - hardware limitation)

Audio Boost and USB fast charging are disabled by default in this version (I don't like audio boost). You can enable audio boost in the same way you enable USB fast charge.

10/23/11

Ext4 driver used to mount ext2/3 filesystems (default in cyanogenmod and incredikernel)

Updated to new OJ driver from Cyanogenmod kernel

[*]Sysfs interface for SVS (can now use incredicontrol) Not working properly

10/15/11

Fixed G-sensor issue (calibration, 3d-home screen, auto-rotate should work now)

10/08/11

Adjusted smartassV2 parameters for better performance

10/05/11

Set smatassV2 as default governor

incorporated some tweaks from incredikernel

added support for wifi-n (2.4ghz only - hardware limitation)

09/29/11

Added smartassV2 (erasmux)

09/20/11

Tweaked smartass governor to resolve reboot issues reported with using smartass (please let me know - it seems better for me so far)

Enabled swap support (need app like swapper from market to utilize)

Enabled compcache support (if ROM has uitility installed I can work on a script, currently I can't get the utility to work)

09/01/11

set max speed to 998 as phone would overclock at boot regardless of setcpu/overclocking app's setting which caused bootloops for phones that couldn't handle overclocking (Thanks Chad for the tip!)

08/31/11

Initial Release

Audio Boost (Thanks Chad0989 for letting me use your source for this)

USB Fast Charging (Thanks Chad0989 for letting me use your source for this)

compressed kernel further for better support with boot manager

support for 128Mhz as well as overclock up to 1113

3/5 point multitouch support on supported devices

lowered wifi voltage

OC up to 1.113Ghz

Built in modules for cifs, smartass, tun, conservative, powersave, ext4

HTC's perflock removed

Bootup frequency increased to 998

Known issues:

Beats will not work. This is not a specific issue with this kernel but rather that the support is not built into the stock kernel. It worked in the port but I'm not sure what needs to be changed.

Incredicontrol force closes when trying to open the HAVS tab. This only seems to happen at boot and clears up. Since it clears up on it's own, I don't think it's a kernel issue though but I'm leaving it on here so people are aware.

*Disclaimer*

Please do not report bugs if you overclock or undervolt/overvolt differently than what is set by default. It adds too many variables. Set CPU max back to 998 and report a bug then if it doesn't go away after that.

I am not supporting the older .10 kernels at this time though if you decide to still use it I may need your assistance to get Beats audio working.

*Note*

1. Just because it's been asked before about what ROMs this kernel supports, this kernel does not need to be built to support any particular ROM but is confirmed to be working fine on many of the most popular Gingerbread Sense ROM by multiple users and several leading devs. If it does not work on your ROM let the dev know first in case it's a known issue.

2. Smartass (v1 and v2) has a built in min speed of 245 and will go to the set min speed only when the screen is off. Due to the nature of the governor, don't use a screen off profile with Smartass. It has been reported to cause issues. If you want a screen off profile use a different governor.

OC voltages are set to the same as 998 Mhz. Sense is a tricky animal when it comes to voltage adjustments. I had about 10x the issues with undervolting on sense froyo as on aosp, but maybe it's because that kernel was undervolted more.

*Important*

If you get random reboots or freezes on the new kernels (10/31 or 11/2), I will need the logs of that:

If it's a reboot grab the file /proc/last_kmsg using adb or root explorer. For adb setup please do a search on xda or the internet.

It would be adb pull /proc/last_kmsg for the adb command.

For root explorer just copy to the sdcard. It's a text file so you can post it online and post the link here or attach to your post when you report the issue.

If it is a freeze try to use logcat and output to a file when you're trying to reproduce it. Google logcat usage if needed. Also grab the last_kmsg after rebooting.

Release kernel found at

incredikernel.com

Update: 11/15/12 - I've added a mirror for my files on goo.

http://goo.im/devs/tiny4579/inc/kernels

Source Code(Dev Only, not flashable)

Github.com Kernel Source

All releases are built from the master branch.

The config for the kernel is in arch/arm/configs/incrediblec_defconfig.

I use the GCC 4.4.3 toolchain for this kernel due to GCC 4.6 causing build issues.

Below is a link to the original tiny-gingersense source which is a hybrid kernel running off code released for the Evo Sense kernel as well as some code from the Froyo Incredible sense kernel. This one uses the master branch as well and the same config filename and toolchain as v2.

Original tiny-gingersense kernel source

Frequently Asked Questions:

Some key differences between smartass and smartassv2 so users can decide which they prefer and learn a bit more about the differences:

Smartass

1. Screen off profile built in maxed at 384mhz.

2. Wakeup frequency is 998mhz.

3. Min screen on is 245mhz.

4. Improved by Chad to run better on our devices.

5. Purely load based, no ideal value.

Smartassv2

1. This is the same exact governor in Erasmux's Nexus One kernel (github.com/erasmux/n1-kernel)

2. Ideal wake frequency is 768 (also default that can be changed).

3. Screen on min is actually 128mhz).

4. No screen off profile.

5. Ideal sleep frequency 245mhz.

6. Improved upon from erasmux's version, not Chad's.

Basically the smartassv2 ideal wake frequency allows the phone to favor a certain speed to attempt to save battery life. It can still go above ideal wake and below ideal sleep so there's no caps on max and min while awake or sleep.

Some tips/info on various governors:

Smartass/smartassv2/interactive:

Use 128 min so the governor can scale as it needs to. Max speed I'd recommend at least 768Mhz.

Ondemand:

Try 128 min and if it lags use 245 min. Max speed I'd recommend at least 768Mhz.

Performance:

Only recommended for benchmarks but speed will always run at max.

InteractiveX:

Same as interactive except it has an auto screen off set to the min. Ideal with 245 min in setcpu but try 128 for battery life but it you have wake lag then set to 245.

Intellidemand:

Based on ondemand with a built in screen off. Any speed settings should be fine.

Interactive:

Some new features with this one. Starting with 10/4/12 release I am using the interactive kernel from Google which features a new kernel option called input_boost.

It is off by default but can be enabled by writing a 1 to /sys/devices/system/cpu/cpufreq/interactive/input_boost. Also there is another parameter for interactive called hispeed_freq in the same location. The hispeed_freq is where the governor jumps to first. Hispeed_freq by default is 614400 to help save battery. In the older interactive governor there was a maxspeed freq which meant the governor was a bit jumpier to the max speed. This should be a good blend of performance and battery.

ZRAM, what is it and how to I add it? (starting officially with 12/31/11)

If you are familiar with swap space in linux or virtual memory in Windows it is a similar concept. Except instead of using the hard drive as swap space it compresses swap space in RAM for faster access times than conventional swap. This will also wear out our storage memory less than typical swapping.

Enable ZRAM is simple thanks to a script built by imoseyon which is provided in the kernel zip file. To enable, use adb shell or download a terminal app and run zram enable. This will persist across reboots (if init.d is setup in your ROM) so if you don't want it anymore run zram disable and it will remove the bootscript and deactivate it.

You need to have root privileges to enable/disable zram. Run the su command in terminal emulator to request root.