Android OS Forum banner
1 - 20 of 86 Posts

Kernel Haxor
1,416 Posts
Mod Type:: Kernel

Difficulty:: Very Easy

Mod Base:: AOSP

Mod Status:: Stable

Apply In:: CWM Recovery

Carrier:: T-Mobile

Optional:: Overclocked

Requires Root:: Yes

Optional:: Insecure Boot

Android Version:: 4.0.3 (ICS)

Here's a kernel build based on CM7 Kernel Source Tree

Special Shout out to DebauchedSloth for his pull requests and collaboration on this open source project

Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in its entirety, I kindly ask you to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you :cool:

What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
[Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.


Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).

ZRAM (aka CompCache aka RAMZSwap)

ZRAM is an updated version formally known as CompCache and RAMZSwap. It was originally designed for 2.6.38.xx kernels, I have backported to our 2.6.35.xx kernel. ZRAM allows real-time compression of memory objects in RAM thus reducing memory pressure for the Linux kernel and can keep more apps in memory longer (more apps in RAM == better performance, less fetching from slower MMC or SDCard). Compression, however, is not Free. Some CPU cycles are required to do the compress/decompression, so there's a slight penalty for it. The original CompCache / RAMZSwap required a user space binary to control its behavior which adds additional penalty to performance, but the new version ZRAM eliminated the need for a separate dedicated daemon, thus reducing the overhead and increased performance from the old CompCache by 20%. Therefore, with the newer implementation of ZRAM interface, the performance penalty is almost negligible.

Joe's RCU (Optimized for Small SMP systems)

Joe Korty has created an RCU for small SMP systems (> 32 cores). His approach is to isolate all the Garbage Collection (GC, a slow time consuming but necessary processing) to a single core, thus allowing other cores to ONLY work on real required processing. This will allow the additional cores to complete their assigned tasks as fast as possible (not bogged down by GC) then immediately go back to a suspended state (saving battery).

Fast No Hz RCU (Optimized for SMP operations)

Fast NoHz is an optimized version of the traditional Tree RCU. Many new kernels are using the Tickless NoHz design. This RCU is tailored and designed to work with the new NoHz kernel system.

Brain F*ck Scheduler - (BFS)

This scheduler is designed to be simple and speedy tailor specifically for user interface type systems such as desktop/smart phone devices where user interaction is MORE important than serving 1 million web requests (CFS, the default scheduler) at the same time (think of nimble desktop workstations vs large corporate servers).

SLQB - (SLAB allocator with Queue)

This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate). Not all kernels are using SLQB including CM7 main line...

Fair Budget Queue (BFQ I/O scheduler)

This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.


For those who decide to flash, please post the results and/or issues here

[ BETA Builds Files: ]

CM9 (Ice Cream Sandwich) 049 Beta build 5:

CM9 (Ice Cream Sandwich) 050 Beta build 1:

[ Current Release Files: ]

[ Start @ 1.0 GHz, Stock Voltage, Max @ 1.55 GHz ]
(Official LGE/Tegra Voltage Values, Same as STOCK LGE Kernel)

The File ==> CM SV Kernel Version stable <==

[ Start @ 1.0 GHz, Stock Voltage (Low Grade aka LG, Max @ 1.48 GHz ]
(Official LGE/Tegra Voltage Values, Same as STOCK LGE Kernel)

The File ==> CM SV Kernel Version stable (Low Grade) <==

[ Installation procedure: ]

1. reboot to CWM
2. Clear cache
3. Advanced, clear Dalvik
4. install zip from SDcard
5. Reboot


[ Bulletin: ]

Version 050 is out. Fixed ALL SOD and lock up issues. Optimized multitasking performance!

[ Bugs: ]

None so far...

[ History: ]

See 2nd post below!

Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this ROM or Kernel!!!

My githubin Compliance with GPL

Kernel Haxor
1,416 Posts
[ History: ]

Version 0.0.1 (deprecated)

Added SLQB memory allocator
Added FakeShmoo OC/UV
Added MinMax Governor

Version 0.0.2 (deprecated)

Adjusted Touch Sensitivity
Adjusted virtual keyboard deadzone

Version 0.0.3 (deprecated)

Updated Kernel to!!! Latest Patches!

Version 0.0.4 (deprecated)

Added new 1500 MHz frequency
Made Performance Governor Default (supposedly Tegra has HW scaler)
Default to 1100 MHz as startup frequency.

Version 0.0.5 (deprecated)

Fixed Max OC to allow proper 1.5 GHz setting
Revert back to MinMax Governor to conserve Battery Life

Version 0.0.6 (deprecated)

Updated kernel battery driver for better battery reading
Reduced amount of memory freed by oom_kill
Undervolted -50mv across the board by default
Lowest CPU Freq is now 400 MHz instead of 300 MHz, voltage remain the same
Governor switched back to performance due to some issues

Version 0.0.7 (deprecated)

Removed unnecessary spin locks to eliminate random stalls (lag)

Version 0.0.8 (deprecated)

Removed LG ATS driver support (not needed)
Removed ERRATA 720789 (not needed)

Version 0.0.9 (deprecated)

[ major fail on my part. blame on 3AM kernel hacking ]
Patched MM portion of kernel
Added Relaxed I/O accesses

Version 0.1.0 (deprecated)

Patched from to
Compiled with Tegra2 specific VFP optimizations

Version 0.1.1 (deprecated)

Compiled with even MORE Tegra2 specific optimizations

Version 0.1.3 (Beta, Closed!)

Updated battery driver by DebauchedSloth

Boosted Headset volume by DebauchedSloth

Version 0.1.4 (Beta, Closed!)

Updated battery driver (part 2) by DebauchedSloth

Version 0.1.7 (deprecated)

Use normal oom_killer threshold
Upated to use TMUS specific CPWatcher (fixed kernel oops)
Revert star_battery change internal percentage calc method
Mem Cgroup optimizations
Fixed init.d issue
Added read-ahead cache for internal FLASH and SDCARD

Version 0.1.8 (deprecated)

Patched MM
Patched ASHMEM
Updated RCU to use NoHz matching NoHz for SMP used by Tegra2

Version 0.1.9 (deprecated)

BCM4329 disable ISCAN, enabled CSCAN
Patched RCU IRQ handling
Grab CPU Serial Number during boot

Version 0.2.0 (deprecated)

Added LG specific LED kernel driver (props to Aremcee)
Enabled LED generic driver

Version 0.2.1 (deprecated)

Fixed LG LCD Back Light driver
Updated LG LCD ALC/ALS sense cycle from every second to every 1.5 seconds (reduce pulsing effect)

Version 0.2.2 (deprecated)

Memory Carveout reduced from 128 MB to 64 MB
Updated LED config
Overclocked AVP from 240000 KHz to 266400 KHz
Overclocked DDR2 SDRAM timing from 300 MHz to 333 MHz

Version 0.2.3 (deprecated)

Updated BlackLight driver to be more compatible

Version 0.2.4 (deprecated)

Reduced cpu load by making LED notification as a single cpu thread
Reduced cpu load by making Battery driver polling as a single cpu thread
Reverted back to CM7 battery driver for now

Version 0.2.7 (deprecated)

Updated OC Voltages and Frequencies for UV and SV kernels
UV Kernel up to 1.55 GHz
SV Kernel up to 1.40 GHz
Fixed Gyro/Accelerometer output scale factor
Fixed Suspend issue
Fixed lag issue

Version 0.2.8 (deprecated)

Enabled USB Accessories Support
Revert to DS' Battery Driver (CM7 batter driver was causing overheating issues and faulty charges).

Version 0.2.9 (deprecated)

Patched to the p990h v10a drop
Split DS and CM driver into separate zips
Dropping EXT3 versions (too many zips to deal with)

Version 0.3.0 (deprecated)

Fixed WiFi DeepSleep
Enable BT Address access
Reduced unnecessary activities in Battery Charger
Power off Hall Sensor (magnetic) and Accelerometer when not using

Version 0.3.1 (deprecated)

Fixed overly aggressive accelerometer sleep policy
Added Voodoo Sound Processing

Version 0.3.2 (deprecated)

Reverted both power save for Hall and Accelerometer
(Both commits broke magnetic and compass drivers)

Version 0.3.3 (deprecated)

Partially revert load reduction for battery drivers (CM7 and DS)
(this is to fix alarm issue)
Revert WiFi deep sleep policy
(this is to fix WiFi Calling Issue while screen off)

Version 0.3.4 (deprecated)

Changed GPU carving back to 128MB to fix reboot issues
Cleaned up FakeShmoo Overclock code in general for future tweaks
GPU 3D overclock enabled
APV Overclock increased to 280000
Added new LED notification compatibility

Version 0.3.5 (deprecated)

Updated to LG latest drop v10e
Allowed LED lights to be configurable

Version 0.3.6 (deprecated)

Updated to LG latest drop v10e (part 2)
Updated touch screen driver

Version 0.3.7 (deprecated)

Reverted drop v10e's NVRM changes
Adjusted sleep GPIO settings
Updated Kernel to patch level

Version 0.3.8 (deprecated)

tegra_gps: Hold wakelock while GPS is in use
Cleaned up OC minor coding error
Updated Bluetooth Sleep driver from V21e (Better Power Savings)
Added Compressed RAM Swap Memory from LGE V21e (More available RAM)
Updated WL driver to use thread based control from LGE V21e (Better way of Control)
Updated Gyro Accel, Compass and TS0710MUX (used for GSM) drivers from LGE V21e (Faster Transfer and better sensor readings)
Added Memory Carveout Killer to reclaim unused memory from LGE V21e (More available RAM)

Version 0.4.1 (deprecated)

Fixed oops that was 0.4.0 (Blame midnight hax and lack of caffeine)
Patched kernel to
Updated Battery Charger driver from LGE V21e
Updated rindrv for better TCP throughput from LGE V21e
Updated Mic Bias for headset from LGE V21e
Updated Headset and Amp initialization order per LGE V21e
star_bl: Lower ALC voltage values
p99x: Board file updates from v21e
star: Fix headset detection on resume
star_powerkey: Fix missed events while on LP1
star_proximity: Move event generation to workqueue
nvodm_touch_synaptics: Adjust coordinate limits
star_proximity: Fix pin assignment on p999
Updated CM7 battery charger driver

Version 0.4.2 (deprecated, Nightly 143+)

Updated RAMDISK for Nightly 143+
USB: Remove serial functions from RNDIS composition
Revert "TTY: ldisc, do not close until there are readers
Revert "Fix memory leak in cpufreq_stat
removed LGE's compressed RAM Swap

Version 0.4.3 (Long Term Stable Release, Nightly 166~172, CM7.1.0.1)

The File ==> DS OC/UV Kernel Version 0.4.3 <==
The File ==> CM OC/UV Kernel Version 0.4.3 <==
The File ==> DS SV Kernel Version 0.4.3 <==
The File ==> CM SV Kernel Version 0.4.3 <==

Used the git implementation of SHA-1 to reduce boot time by 11%
Updated uidstat to only count IPv4 traffic
Optimized memcpy and memmove for string library calls (real working version

Version 0.4.4 (deprecated, Nightly 174+)

Added optimized CRC32 and CRC32c which pretty much improves EVERYTHING which use those 2 library calls including File Systems, TCP/IP etc
Added Arcee's SPI DVS patch
Added LZO compression support (for ZRAM)
Added ZRAM patched to beyond Linux 3.1-rc9 (a newer version of Ramzswap without user space daemon )
tegra: Updated nvhost for new star userspace bits

Version 0.4.5 (deprecated, Nightly 174+)

cpufreq: fix cpufreq_stats table removal warning via cpu hot-plug
base:cpu.c: Cherry pick updates from Motorola Atrix 4G kernel
cpufreq: cherry picked updates from Motorola Atrix 4G kernel
compilation: fixed annoying debug section mismatch warnings
Revert "Fix memory leak in cpufreq_stat"
kernel patch: ->
atomic_t: Cast to volatile when accessing atomic variables
Revert "Revert "Fix memory leak in cpufreq_stat""
Revert "Revert "TTY: ldisc, do not close until there are readers""
Revert "tegra: Import dvs updates for SPI from p999's v21e"
Revert "nvrm_user.c: Updates from the p990 v10e drop. Fixes BSOD while charging"
kernel patch: ->
kernel patch: ->
kernel patch: ->

Version 0.4.6 (deprecated)

star: Import some v20l patches
star: Add GPIO pins G0, G1, and W2 to wakeup pad
mm: retry page fault when blocking on disk transfer
sched/rt: code cleanup, remove a redundant function call
ARM: Add optimised swahb32() byteswap helper for v6 and above
hugetlb: Replace BUG() with BUILD_BUG() for dummy definitions.
kernel.h: Add BUILD_BUG() macro.
block: limit default readahead size for small devices
PM / Suspend: Fix bug in suspend statistics update
mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path
lockdep: print lock name for lockdep_init_error
init/main.c: execute lockdep_init as early as possible
[PATCH] Input: introduce device properties
[PATCH] input: mt: Add hovering distance axis
input: mt: Break out slots handling
Input: introduce MT event slots
USB: f_mass_storage: Disable write cache support
kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
sched: don't call task_group() many times in set_task_rq()
PM: wakelocks: Don't report wake up wakelock if suspend aborted
rtc alarm: fix bad index when canceling alarms[]
ARM: support XZ compressed kernels
decompressors: add boot-time XZ support
decompressors: add XZ decompressor module
arm: Allow CPU-supported unaligned accesses
PM: wakelocks: Display wakelocks preventing suspend by default
mmc: core: put eMMC in sleep (cmd5) mode before suspend
input: evdev: Add missing wake_lock_destroy
lookup3(). The new hash function

Version 0.4.7 (deprecated)

Patched to

Version 0.4.8 (deprecated)

Patched to

Version 050 (Current, CM7.2.0 Stable +)

Increased BL polling from 2 sec to 3 sec
Fixed sys_sync() stability issues
Backport CFS Autogroup to allow for better multitasking performance (smoother operations)
Optimize Driver wait/sleep time outs with more CPU friendly operations
Fixed occasional Sleep-to-Off issues (Take 2
Fixed occasional Sleep-to-Off issues
Removed some kernel debug options
Enable ARM unaligned access
Added CM7.2.0 Stable Compatible RAMDISK
Added Screen Off CPU limiter (limit CPU usage to Max 503 MHz)
Turn off 2nd CPU core while screen off
Fixed reboot hang issues
Fix Temple run issue using Sensor updates from v20L
Add CPU Freq Table support (which fix the CPU stats bug, now you can use CPUSPY to see deep sleep stats)
Adjusted CPU freq table, Lowest @ 216MHz, Highest @ 1552MHz
use generic strnlen_user and strncpy_from_user functions
Patched to Linux
Added 18 patches from LGE V21Y 2.3.4 GB source drop

Version 051 (Current, CM7.2.0 Stable +)
Added ARM asm optimized crypt libs for AES/SHA1 for better IPSec performance (up to 50% faster)
tweaked Deadline I/O scheduler for better Android Performance

Version 052 (Current, CM7.2.0 Stable +)
Updated to new LZO compression algo (up to 2x faster than older versions)
Added Google's proportional rate reduction algo for TCP
Switched from Cubic to Westwood+ for TCP congestion control (better for Cell/Wifi style lossy connections)

Kernel Haxor
1,416 Posts
Discussion Starter · #30 ·
DJ said:
Are you gonna update the next Kernels to fully function with MIUI? 0.3.4 is a little bit buggy with it.
I am not going build a kernel for MIUI. It should be the other way around, MIUI needs to be compatible with CM7. MIUI uses many framework patches from CM7 and MIUI is CLOSED SOURCE, so I can't build a kernel for a blind ROM, they should make sure they are compatible with CM7 therefore use the same kernel as CM7 like mine.

Kernel Haxor
1,416 Posts
Discussion Starter · #50 ·
it is from a pull request someone sent to rmcc but he hasn't merged it into main cm kernel. the original CM kernel's touch driver's sensitivity is slightly shifted towards the left side of the screen, so this driver basically make it so it is shifted back to center. ie, when you type with on-screen keyboard, the CM driver requires you touch slightly off-center towards left for it to register the key where as the newer driver u can touch the key in the center for a it to register.

Kernel Haxor
1,416 Posts
Discussion Starter · #58 ·
everest_deth said:
@Faux Hey man, would you mind peeping at this last_kmsg please?

I've gotten two random reboots while typing some IMs. Shoot me some ideas if you have time :)

Kernel: Latest UV/OC @1.1 (I do not even have setCPU or anything installed)
ROM: CM7 nightly - 99

As a temporary fix I'll go to the SV, and I'll report back
Sorry, any crash on UV kernel will not be supported :( There are simply too many variables involved for UV/OC combination for it to be reliable. I have been running .38 all day with all sorts of apps and still haven't had a single glitch on it. I will keep an eye on it still, so far it's been pretty smooth esp with the additional RAM recovered by RZ swap and Carveout killer.

Kernel Haxor
1,416 Posts
Discussion Starter · #70 ·
mcrabbi said:
View attachment 1874

I'm guessing this is something the Voodoo app dev will have to address?

Sent from my LG-P999 using THE FORCE
mcrabbi said:
I'm also running the latest, 3.0.1. I've never had a previous version. I suppose I could hunt it down but the only thing I've changed is the kernel since it last worked. That was 036 I believe. Before the LGE GB kernel source was released. Could it be that the kernel version is tripping a breaker on the voodoo app, so to speak?

Sent from my LG-P999 using THE FORCE
I heard even 037 kernel has the same issue (037 is pre-GB update), and as I stated before the Voodoo driver has not changed since inception, so not sure what is causing the issue except application itself. Give me so logs when you run the voodoo app and see if I can see something there.

Kernel Haxor
1,416 Posts
Discussion Starter · #72 ·
DJ said:
Contacted Voodoo with the screenshot of the issue we're all aware of, and I got this reply... "Its says no need: no need ! :) I'll remove useless warnings in the next version" Faux, does this help? What is that referring to?

Sent from a Nexus X by LG
Which is harmless... I guess it's trying to load its own kernel module..

Kernel Haxor
1,416 Posts
Discussion Starter · #91 ·
Version 040 is coming soon.

Geek Talk below:

Just an important note: Arcee and I have taken 2 different routes applying latest GB source updates (V21e drop) to CM kernel. In the end my CM kernel should be compatible as Arcee's CM mainline but our kernel sources have diverged even further than before but I will keep in sync with arcee's changes as much as possible to maintain compatibility with CM.
1 - 20 of 86 Posts