[Kernel][5.x][carcosa-kernel][Stock kernel with cherry-picked features][2015/03/20]

Search This thread

jfmcbrayer

Senior Member
May 9, 2011
218
116
By the way, is anyone testing this on tilapia having occasional mobile data dropouts? I have one about once a day that is usually fixable by turning on airplane mode and turning it off again, but I'm not sure whether it's related to my patch, or just a coincidence (could be my mobile provider). I'm personally testing a patch using a wakelock timeout (as suggested by @sgt. meow), but I may not bother publishing it if no one else is having problems.

Update1:
So, after testing overnight, I've got 11h 50min unplugged, and baseband_xmm_power wakelock for 1h 7min (9.5%, 1666 locks), compared to 25min for PowerManagerService.Wakelocks. IMO this is still too much; it needs to be equal to or less than PowerManagerService.Wakelocks. I'm going to leave it in place for today to see if it solves my data dropouts, and if so, I'm going to reduce the timeout. It's currently 5 seconds; going to try reducing it to 0.5 seconds.

Update2
The patch doesn't seem to fix my data dropouts. If I keep having them, I'm going to test with mr1 for a few days to make sure it's my data provider. In the mean time, I've reverted to a25. I'm still interested in hearing other peoples' experiences.
 
Last edited:

jfmcbrayer

Senior Member
May 9, 2011
218
116
Hi men thank you for your work!
I managed to download it nd flashed it, excellent battery life but i think that due to GPU OC i get reboots due to overheating!
The GPU clock defaults to the stock 414MHz. If you're overclocking it and having trouble, of course turn it down. You might also check the MPU clocks and voltages. Since I added overclocking, I think the default voltages may be a little lower than stock (they're from faux), so you might do a comparison, and/or not use the higher clock speeds.
 
  • Like
Reactions: Monfro

Carter07

Senior Member
Nov 10, 2012
177
35
Is voltage control implemented in this kernel?
I can't find it in fauxclock and trickster mod.
 

jfmcbrayer

Senior Member
May 9, 2011
218
116
a29 is out. It makes the baseband_xmm_power wakelock run on a configurable timeout, or allows you to disable it completely at runtime. See the second post for details.
 
  • Like
Reactions: Monfro

Carter07

Senior Member
Nov 10, 2012
177
35
Oh, you're running mr1. That's very old. Look at the release history to see which was the earliest release with voltage control, or just install the latest.

I really ought to pick a recent release to designate mr2. Any preferences, dear users?
Oops sorry didn't see changelog, now I'm running a29 and runs great. :)
 

marco.palumbi

Senior Member
Jan 9, 2010
121
159
hello @jfmcbrayer

I see that your install zip includes the library power.grouper.so
why did you include it?
which are the differences with the stock one?
where are the sources for it?

I flashed the zip after removing the file and it seems to work fine (solving the power drain issue..)
thanks
 

jfmcbrayer

Senior Member
May 9, 2011
218
116
That is the power HAL. It is my understanding that the stock power HAL will not tolerate overclocking: it will reset the max CPU frequency to stock whenever the screen goes off. I pulled this binary from M-kernel, if I remember correctly, but all the overclocking kernels for grouper and tilapia include it. I think it is based on the sources here: https://github.com/thalamus/android_powerhal.

I've stopped including it on my experimental builds for lollipop, and it seems like it's not necessary any more.
 
  • Like
Reactions: marco.palumbi

x-system

Senior Member
Aug 17, 2008
54
0
Oh. thank you very much!
How I can change GPU overclock, CPU overclock(in cm12 it not work), CPU voltage control?

What you think about 5.0.2? What better for good performance and battery drain? 4.4.4 or 5.0.2?
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    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
    3. SIO

    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
    a33: carcosa-a33-lp-anykernel.zip
    Lollipop update; adds SIO IO scheduler.
    a35: carcosa-a35-lp-anykernel.zip
    Lollipop 5.1 update (still works with 5.0.2). Adds hardware acceleration for kernel encryption routines.
    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.
    5
    Notes

    F2FS support

    While this kernel (from a22 on) includes the f2fs driver, it does not include any of the ramdisk or init tweaks that you would need to use f2fs. This is because I am not in a position to test f2fs myself. That said, the a22 (and later) kernel installer will not disturb any changes you have already made to your ramdisk or ROM to support f2fs, so if you have already got f2fs working on your device, it should continue to work after installing this kernel. Don't forget to do a nand backup in your recovery before installing, though. Seriously.

    NTFS R/W support

    This kernel (from a22 on) includes RW support for NTFS. However, in KitKat, NTFS USB drives mounted with StickMount are not writable due to SELinux policy. To write to an NTFS USB drive, you need to (from a root shell) 'setenforce off', then 'setenforce on' when you're done using it. I do not recommend that you put SELinux in permissive mode permanently. It's there for a reason, and this is just a workaround for a policy error in KitKat. The SELinux SetEnforce Toggle app is a convenient way to turn it off and on for this.

    Mount slave namespace workaround

    Android apps that mount filesystems (e.g. CIFS, Lil'Debi's loopback fs), mount them in a private namespace that is not shared with other apps (as explained by mkasick). There is a rom-based workaround applied in CM-based roms, and probably many others, but not in stock. Instead, I am applying his kernel/ramdisk based workaround. If you are on stock and need this workaround, do not use the anykernel build; use the one with the full disk image.

    Configurable baseband_xmm_power wakelock timeout

    This is based on work by Sgt. Meow, with some tweaks. It is controlled by the module param /sys/modules/baseband_xmm_power/bb_timeout, which defaults to 10, and represents the time, in 10ths of a second, that the baseband_xmm_power wakelock should be acquired for before timing out. 0 will disable the wakelock completely as in earlier versions of carcosa-kernel. These semantics are not the same as those for the same parameter in Oxydo, so be aware.

    -------------------------------------------------------------------------------------------------------
    Camilla: You, sir, should unmask.
    Stranger: Indeed?
    Cassilda: Indeed, it's time. We all have laid aside disguise but you.
    Stranger: I wear no mask.
    Camilla: (Terrified, aside to Cassilda) No mask? No mask!
    – from Act 1, Scene 2 of The King In Yellow
    5
    Lolipop update is here: carcosa-a33-lp-anykernel.zip. It rebases on the released sources for 5.0.2 and adds the SIO IO scheduler.

    At some point, I want to tag my last (unreleased) KK kernel as milestone release 2, but I'm pretty limited on time right now.
    3
    The latest build is compatible with 5.1 stock. By default it eliminates the baseband_xmm_power wakelock completely, but you may have intermittent connectivity issues -- adjust the timeout to something other than 0 if you do (I'm currently setting it to 300 on my n7).
    2
    Are we still expecting this release?

    Yes, sorry about that. I meant to get it up the same day, but life interfered. A28 is up.