[Galaxy S Plus I9001 Android Development] Christopher83:
​

This thread is dedicated to all the people who are still using a rom ICS (CM9 and derivatives) and would like to try an alternative 3.0 kernel that provides some additional feature.

I will do my best to keep it updated regularly and keep it as much as possible in line with the various features that will be added to my kernel for JB.

I hope it will be useful, and ensures better performance and battery life.

Of course, your feedback, as always, are welcome and certainly valuable.

The main features are the following:

- Kernel 3.0.x sources synched with ics-3.0 repo of Arco68 and ADC Team

- Built with my custom Linaro 4.8.3-2013.11 toolchain optimized for Cortex-A8

- Built with Cortex-A8 and NEON VFP optimization flags (both kernel and modules)

- Built with -O2 optimization flag for kernel image and -O3 optimization flag for modules

- CPU overclockable up to 1824 MHz

- CPU frequencies undervolted (UV version) or extremely undervolted (EXUV version)

- CPU voltage control VDD sys interface (click for more details)

- 360MB, 370MB or 390MB of free RAM

- Init.d support

- Fast Charge support (default disabled, click for more details)

- Battery Life eXtender support (default disabled, click for more details)

- Ram Console support (click for more details)

- Backlight Notification v9 (BLNv9) (click for more details)

- USB OTG support (if also implemented on rom side)

- Customizable vibration intensity (click for more details)

- Lowered display panel voltage

- Lowered touchscreen voltage

- Lowered wifi voltage

- Lowered swappiness (60 -> 45)

- Increased CPU frequency during boot

- Optimized AES and SHA1 routines for ARM cpu architecture

- Fixed 100% battery notification after charger unplug

- Increased audio volume on board side

- Con Kolivas' CK3 Tweaks

- Optimized SLUB memory allocator

- Optimized ARM RWSEM (read/write semaphore) algorithm

- Optimized asynchronous I/O latency on solid state disks

- Optimized string and memcopy libs

- Disabled Gentle Fair Sleepers for better UI performance

- Filesystem dynamic read-ahead (based on disk size)

- CIFS support on boot

- Fast Random generator (frandom) support (click for more details)

- Phantom key presses filter (click for more details)

- Dynamic FSync v1.2 (click for more details)

- Dynamic dirty page writebacks (click for more details)

- VM tweaks for performance and less battery consumption

- Revised LowMemoryKiller parameters for better performance (click for more details)

- SOD (Screen of Death) fixed

- Customizable timeout for touchkeys backlight after a key press or touchscreen press (click for more details)

- Customizable activation status of touchkeys backlight on touchscreen press (click for more details)

- Timer slack controller (click for more details)

- Dynamic management of the minimal timer slack value during suspend/resume (click for more details)

- LowMemoryKiller management of not killable processes (click for more details)

- exFAT support

- Additional TCP Congestion algorithms

Available CPU governors:

- Adaptive

- BrazilianWax

- Conservative

- Hyper

- Intellidemand

- Interactive

- InteractiveX

- LionHeart

- LulzActive

- OnDemand (default)

- OnDemandX

- Performance

- Powersave

- SmartAssV2

Available I/O schedulers:

- BFQ

- CFQ

- Deadline

- Noop

- ROW (default)

- SIO

- V(R)

Kernel Downloads:

K^Kernel ICS Mediafire Folder

[QRCODE]http://www.mediafire.com/?ogyfkly1v4lnt[/QRCODE]

- v2.7 -

for CM 9

and the other roms based on latest CM 9​

Howto install the kernel:

1) Download the preferred kernel zip file to sdcard or external sdcard

2) Reboot to recovery mode

3) Flash the kernel zip file

4) Wipe cache and dalvik cache

5) Fix permissions

6) Reboot the system

Kernel sources (on GitHub):

Development branch of K^Kernel 3.0 for ICS​

Useful info:

- Special features and sysfs settings

- Frequently asked questions

​

Tables:

​

Changelog:

[B]29/11/2013 - K^Kernel v2.7 for ICS[/B]
- Kernel 3.0.101
- Sources synched with ics-3.0 repo of Arco68 and ADC Team
- Built with my latest custom Linaro 4.8.3-2013.11 toolchain optimized for Cortex-A8
- fs/sync: Make sync() satisfy many requests with one invocation (credits to Paul E. McKenney)
- usb: gadget: mass_storage: added sysfs entry for cdrom to LUNs (credits to FrozenCow)
- Update default and custom defconfigs for additional TCP Congestion algorithms (credits to Christopher83)
- add exfat support (credits to radu)
- Update default and custom defconfigs for exFat support (credits to Christopher83)
- acpuclock-7x30: Raised some standard UV and stock voltages for high OC cpu frequencies (credits to Christopher83)
- input: Updates to Phantom Key Presses filter (credits to Christopher83)
- softirq: reduce latencies (credits to Eric Dumazet)
- fs: vfat: reduce the worst case latencies (credits to xiaogang)
- jiffies conversions: Use compile time constants when possible (credits to Joe Perches)
- Makefile: Use -fno-inline-functions to build with Linaro GCC 4.8 toolchains (credits to Christopher83)

[B]10/10/2013 - K^Kernel v2.6 for ICS[/B]
- Kernel 3.0.99
- Sources synched with ics-3.0 repo of Arco68 and ADC Team
- Built with my latest custom Linaro 4.7.4-2013.09 toolchain optimized for Cortex-A8
- New bootsplash logo
- mm: remove compressed copy from zram in-memory (credits to Minchan Kim)
- lib/lzo: Rename lzo1x_decompress.c to lzo1x_decompress_safe.c (credits to Markus F.X.J. Oberhumer)
- lib/lzo: Update LZO compression to current upstream version (credits to Markus F.X.J. Oberhumer)
- lib/lzo: huge LZO decompression speedup on ARM by using unaligned access (credits to Markus F.X.J. Oberhumer)
- ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations (credits to Ivan Djelic)
- ARM: 7670/1: fix the memset fix (credits to Nicolas Pitre)
- msm: vidc: return error in case of init failure (credits to Pushkaraj Patil)
- Switched to SIO I/O scheduler
- Fixed change conflicts between custom settings and init.d settings during boot
- Possibility to disable the redirection to frandom number generator

[B]11/09/2013 - K^Kernel v2.5 for ICS[/B]
- Kernel 3.0.95
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.08 toolchain optimized for Cortex-A8
- Bluetooth: Fix for the l2cap layer crashes while turning OFF BT (credits to Nitin Shivpure)
- Enable setting security contexts on rootfs inodes (credits to Stephen Smalley)
- net: ipv6: add missing lock in ping_v6_sendmsg (credits to Lorenzo Colitti)
- net: ipv6: fix wrong ping_v6_sendmsg return value (credits to Lorenzo Colitti)
- msm_fb: Correct R and G offsets for correct mapping (credits to Jeevan Shriram, thanks to Arco68)
- USB: gadget: Cleanup boot-up message with default usb composition (credits to Mayank Rana, thanks to Arco68)
- cpufreq: interactive: fix show_target_loads and show_above_hispeed_delay (credits to Minsung Kim, thanks to Arco68)
- CIFS support on boot

[B]05/08/2013 - K^Kernel v2.4 for ICS[/B]
- Kernel 3.0.89
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.07 toolchain optimized for Cortex-A8
- Revert "ARM: 7765/1: perf: Record the user-mode PC in the call chain.", this should solve the battery charging failures (credits and thanks to Arco68)

[B]25/07/2013 - K^Kernel v2.3 for ICS[/B]
- Kernel 3.0.87
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.07 toolchain optimized for Cortex-A8
- msm: msm_fb: remove mmio access through mmap (credits to Manoj Rao, thanks to Arco68)
- writeback: Fix occasional slow sync(1) (credits to Jan Kara)
- cfq-iosched: Fix null pointer dereference (credits to Sujit Reddy Thumma)
- staging: android: timed_gpio: Fix unreg order (credits to Olav Haugan)
- msm: cpufreq: Only apply driver limits for scaling_min/max_freq writes (credits to Deepak Katragadda)

[B]15/07/2013 - K^Kernel v2.2 for ICS[/B]
- Kernel 3.0.86
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.07 toolchain optimized for Cortex-A8
- Fixed lost of the touchscreen configuration after suspend (credits and thanks to CastagnaIT)
- LowMemoryKiller management of not killable processes (implemented by me, thanks to CastagnaIT for the original idea of this feature)

[B]07/07/2013 - K^Kernel v2.1 for ICS[/B]
- Kernel 3.0.85
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.06 toolchain optimized for Cortex-A8
- Fixed an uninitialized spinlock for Interactive CPU governor (credits to Cyanogen, thanks to Arco68)
- Fixed atypo error in boot compressed Makefile (credits and thanks to Arco68)
- Timer slack controller (credits to Kirill A. Shutemov, thanks to Boype and Stuffynet)
- Dynamic management of the minimal timer slack value on suspend/resume

[B]30/06/2013 - K^Kernel v2.0 for ICS[/B]
- Kernel 3.0.84
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.06 toolchain optimized for Cortex-A8
- Updates and fix to Interactive CPU governor (credits to Lianwei Wang, thanks to Arco68)
- Fixes to graphic drivers (credits to Suman Tatiraju, thanks to Arco68)
- Fixes to ipv6 (credits to Hannes and Lorenzo Colitti, thanks to Arco68)
- Other minor fixes (from CAF sources)
- CK3 tweaks (credits and thanks to Con Kolivas)
- Increased battery check interval from 5 seconds to 15 seconds
- New static Cyanogen boot logo (credits and thanks to Stefano187)

[B]24/06/2013 - K^Kernel v1.9 for ICS[/B]
- Kernel 3.0.83
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.06 toolchain optimized for Cortex-A8
- Updates and fixes to Interactive CPU governor (credits to Todd Poynor and Minsung Kim, thanks to Arco68)
- Squashed update of BFQ-V6 to BFQ-v6r2 (thanks to Arco68)
- Customizable timeout of touchkeys backlight after a key press
- Customizable activation status of touchkeys backlight on touchscreen press
- Fix for discharging battery issue while charging to 100% (credits to Skywalker01)
- Fix to dynamic fsync to don't disable fdatasync (credits to Faux123)
- Enabled CleanCache

[B]11/06/2013 - K^Kernel v1.8 for ICS[/B]
- Kernel 3.0.81
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.05 toolchain optimized for Cortex-A8
- Re-added optimized string and memcopy libs (credits and thanks to Miao Xie)
- Dynamic Fsync (credits and thanks to Faux123)
- Dynamic dirty page writebacks
- VM tweaks for better performance and less battery consumption
- Revised LowMemoryKiller parameters for better performance

[B]28/05/2013 - K^Kernel v1.7 for ICS[/B]
- Kernel 3.0.80
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.4-2013.05 toolchain optimized for Cortex-A8
- Remove a not needed mmc_power_off (credits and thanks to Arco68)
- Some display fixes (credits and thanks to Arco68)
- Lowered Vibetonz voltage
- Adjusted some voltage regulators
- Restored min read ahead (from 32 kbytes to 16 kbytes)
- Other fixes and optimizations to RWSEM (read and write semaphore) taken from 3.10 kernel

[B]13/05/2013 - K^Kernel v1.6 for ICS[/B]
- Kernel 3.0.78
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.3-2013.04 toolchain optimized for Cortex-A8
- Removed pop-up noise at the end of power off sequence (credits and thanks to CastagnaIT)
- Changes to fix the suspend problems caused by BLN

[B]28/04/2013 - K^Kernel v1.5 for ICS[/B]
- Kernel 3.0.75
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.3-2013.04 toolchain optimized for Cortex-A8
- Added Intellidemand CPU governor (credits and thanks to Faux123)
- Imported the new LowMemoryKiller from 3.4 kernel
- Changed the debug level of the LowMemoryKiller from 2 to 1
- Added Voku and Dorimanx tweaks to LowMemoryKiller (credits and thanks to them)
- Removed PMEM reservation for audio (credits and thanks to Arco68)

[B]22/04/2013 - K^Kernel v1.4 for ICS[/B]
- Kernel 3.0.74
- Sources synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.3-2013.04 toolchain optimized for Cortex-A8
- Phantom key presses filter (new module developed by me)
- Fixed WEP Connections (credits and thanks to Ivendor)
- Disabled Gentle Fair Sleepers for better UI performance
- Lowered touchscreen voltage
- Added BrazilianWax CPU governor
- Various changes and updates to ARM RWSEM (read/write semaphore) algorithm
- New available memory configuration with 390MB of free RAM (camera works, video recording works only in 480p mode)
- SOD fixed

[B]02/04/2013 - K^Kernel v1.3 for ICS[/B]
- Kernel 3.0.71
- Sources reworked, cleaned and synched with ics-3.0 repo of Arco68
- Built with my latest custom Linaro 4.7.3-2013.03 toolchain optimized for Cortex-A8
- Used -O2 optimization flag for kernel image (to prevent display issues) and -O3 optimization for modules
- Revised PMEM allocations to preserve more memory for Surface Flinger
- Backlight Notification v9 (BLNv9) (credits and thanks to CastagnaIT)
- Customizable vibration intensity (credits and thanks to CastagnaIT)
- Ram Console support (credits and thanks to Ivendor)
- Optimized SLUB memory allocator (credits and thanks to CastagnaIT)
- Optimized ARM RWSEM algorithm (credits and thanks to Ashwin Chaugule)
- Filesystem dynamic read-ahead (based on disk size) (credits and thanks to Chad Goodman)
- Fast Random generator support (frandom) (credits and thanks to Eli Billauer)
- Optimized asynchronous I/O latency on solid state disks (credits and thanks to Dave Kleikamp)
- Fixed 100% battery notification after charger unplug
- Increased audio volume on board side
- New Broadcom Wireless drivers adapted by Samsung (dhd.ko) support for CM 9 by Arco68 RC 6 and next builds
- Added Adaptive and Hyper CPU governors

[B]01/03/2013 - K^Kernel v1.2[/B]
- Kernel 3.0.66 sources synched with ics-3.0 repos of Ivendor and Arco68
- Built with my custom Linaro 4.7.3-2013.02 toolchain optimized for Cortex-A8
- Added Cortex-A8 and NEON VFP optimization flags (both kernel and modules)
- Added -O3 optimization flag (both kernel and modules)
- Added more CPU frequencies and overclockability up to 1824 MHz (thanks to Doomsday94)
- Added CPU frequencies undervolted (UV version) and extremely undervolted (EXUV version) options (thanks to CastagnaIT and Smeroni for the initial implementation for our device)
- Added 5 additional CPU governors (InteractiveX, LionHeart, LulzActive, OnDemandX, SmartAssV2)
- Added 2 additional I/O schedulers (SIO and VR)
- Some fixes and tuning to LuzActive CPU governor for better battery life
- Added CPU voltage control VDD sys interface (thanks to Doomlord)
- Added 360MB or 370MB of free RAM options (thanks to Diablo555 and Doomsday94)
- Added optimized AES and SHA1 routines for ARM cpu architecture (credits and thanks to CastagnaIT)
- Added Fast Charge support (credits and thanks to Ivendor)
- Added Battery Life eXtender support (thanks to Ezekeel), adapted by me for I9001 and I8150
- Lowered display panel voltage
- Lowered wifi voltage
- Lowered swappiness
- Increased CPU frequency during boot (for faster boot process)

Credits and Thanks to:

Arco68 and Ivendor for their awesome work and their kernel sources

CastagnaIT for his 2.6 kernel sources where I learned many things and for the useful features inspiration

Ezekeel, Doomlord, Faux123, Stratosk, Tegrak, ErasmuX, Imoseyon, Doomsday94, Hadidjapri, Diablo555 and other devs I'm surely missing

CyanogenMod, Kernel.org, Code Aurora Forum, [Google], Linaro GCC developers

XDA:DevDB Information

[GT-I9001][PMEM] K^Kernel 3.0 for ICS, Kernel for the Samsung Galaxy S I9000

Contributors

Christopher83

Kernel Special Features:

Version Information

Status: Stable

Current Stable Version: v2.7

Stable Release Date: 2013-11-29

Created 2013-09-13

Last Updated 2014-07-09