Default [Kernel][4.4][carcosa-kernel][Stock kernel with cherry-picked features][2014/04/24]

1. Motivation/overview

This is a kernel for the 2012 Nexus 7 (grouper/tilapia) which sticks as closely as possible to the stock/released kernel sources, while incorporating the features I want from other popular alternative kernels. I've built it because my Nexus 7 3G (tilapia) has trouble with all of the non-stock kernels I've tried -- something causing USB resets in a tight loop. I rebuilt the stock kernel and started adding my favorite features in order to rule out what was causing the problem, but ended up with a kernel I preferred for day-to-day use.

You might like it, too.

Note that there is very little original content in this kernel: see the credits below and the github repository for the sources of the included features.

2. Features

IO Schedulers
  1. bfq
  2. row

CPU Governors
  1. smartmax
  2. wheatley

Misc
  1. Build with -Os (optimize for size)
  2. GPU overclock
  3. Experimental: remove baseband_xmm_power wakelock
  4. f2fs driver (see note in second post)
  5. ntfs r/w (see note in second post)
  6. CPU voltage control
  7. Mount slave namespace workaround
  8. CPU overclock (against my better judgement).

3. Instructions

This kernel is intended primarily for use with the stock ROM. The first releases (mr1 and a20) were built with a stock ramdisk, and will generally not work on other ROMs. Later releases use an AnyKernel updater and may work on other ROMs. I am only able/willing to test on stock, however, so non-stock users, use at your own risk (even more than usual).

To install, boot into your custom recovery of choice and install one of the zips below. Or use Flashify. Be sure to make a backup with your recovery first.

4. Warning and disclaimer

I am not responsible for any harm caused to you, your tablet, or the integrity of the space-time continuum by this kernel. In the words of the GNU Public License:

 

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.


5. Downloads

Milestone releases:
mr1: carcosa-kernel-mr1.zip

Alpha releases:
a20: carcosa-kernel-a20.zip
Includes experimental patch removing baseband_xmm_power wakelock.
a22: carcosa-a22-anykernel.zip
Includes changes to governor defaults, ntfs r/w support, and the f2fs driver.
a23: carcosa-a23-anykernel.zip
Includes voltage control (undervolting) interface.
a25: carcosa-kernel-a25.zip carcosa-a25-anykernel.zip
Includes mount slave namespace workaround, CPU overclocking (against my better judgement)
a27: carcosa-a27-anykernel.zip
4.4.3 update
a28: carcosa-a28-anykernel.zip
Remove baseband_xmm_power wakelock again, rather than making it time out.
a29: carcosa-a29-anykernel.zip
Add configurable baseband_xmm_power wakelock timeout

6. Source

Sources are on github, which is also your best source for changelogs.

7. Credits

This kernel contains precious little original work -- it builds on the stock kernel release and applies cherry-picked patches from various sources, principally M-Kernel (Metallice) Franco-kernel (Francisco Franco), and Oxydo (Sgt. Meow), but also Faux123, Ezekeel, Maxwen, and many others. My main contributions have been picking the things I wanted, and resolving the occasional hairy merge. I have attempted to maintain the original authorship information in my git logs as much as possible; I apologize for any cases where the attribution of a particular patch has been lost.