[KERNEL][AOSP] Incredikernel (Chad+Tiny) - 11/30/2013

Search This thread

orfius christ

Senior Member
Mar 16, 2012
200
13
Sorry, I have a noob/easy question I need answered. The latest version listed on Incredikernel.com is "2.6.38.8 Incredikernel ICS 03/21/2012". Can that version be used on a Gingerbread ROM? I'm on CM7.2 Gingerbread and saw someone post in the incredikernel forum that its fine to put the latest Stable ICS Incredikernel in (3/21/2012). Safe?

Completely safe :D

Sent from my ADR6300 using XDA
 

Pons

Senior Member
Sep 2, 2010
3,932
2,067
Sorry, I have a noob/easy question I need answered. The latest version listed on Incredikernel.com is "2.6.38.8 Incredikernel ICS 03/21/2012". Can that version be used on a Gingerbread ROM? I'm on CM7.2 Gingerbread and saw someone post in the incredikernel forum that its fine to put the latest Stable ICS Incredikernel in (3/21/2012). Safe?

Look at the OP, find your kernel version/date, and see what the tag (ICS and/or GB) is.

Completely safe :D

Sent from my ADR6300 using XDA

I know you answered this, but teach a man to fish...
 
Last edited:

omniatic

Senior Member
Oct 15, 2009
849
199
Milwaukee
Thanks for the update. Just got home. I was anxious to test tonight as I cherry picked the changes this morning but then a tstorm happens. I'll test soon. Beta2 may happen tonight.

Sent from my Galaxy Nexus using Tapatalk 2

If you need a tester, I am planning on flashing drk.hd's newest build this evening. May as well test everything at once.

...sorry...I was on the phone...
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
mamarley/invisiblek, something about the new commits broke the kernel. Here is the error I'm getting:

Code:
arch/arm/kernel/return_address.c:61:2: warning: #warning "TODO: return_address should use unwind tables"
arch/arm/mach-msm/timer.c: In function 'msm_timer_sync_smem_clock':
arch/arm/mach-msm/timer.c:366: error: 'SMSM_STATE_TIME_MASTER_DEM' undeclared (first use in this function)
arch/arm/mach-msm/timer.c:366: error: (Each undeclared identifier is reported only once
arch/arm/mach-msm/timer.c:366: error: for each function it appears in.)
arch/arm/mach-msm/timer.c:382: error: 'SMSM_STATE_APPS_DEM' undeclared (first use in this function)
make[1]: *** [arch/arm/mach-msm/timer.o] Error 1
 

invisiblek

Recognized Developer
Feb 24, 2010
1,580
5,833
Minnesota
www.invisiblek.org
mamarley/invisiblek, something about the new commits broke the kernel. Here is the error I'm getting:

Code:
arch/arm/kernel/return_address.c:61:2: warning: #warning "TODO: return_address should use unwind tables"
arch/arm/mach-msm/timer.c: In function 'msm_timer_sync_smem_clock':
arch/arm/mach-msm/timer.c:366: error: 'SMSM_STATE_TIME_MASTER_DEM' undeclared (first use in this function)
arch/arm/mach-msm/timer.c:366: error: (Each undeclared identifier is reported only once
arch/arm/mach-msm/timer.c:366: error: for each function it appears in.)
arch/arm/mach-msm/timer.c:382: error: 'SMSM_STATE_APPS_DEM' undeclared (first use in this function)
make[1]: *** [arch/arm/mach-msm/timer.o] Error 1

is
smd_private.h
not included in your timer.c by chance?
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
is
smd_private.h
not included in your timer.c by chance?

It is and it seems that it's defined and actually timer.c and smd_private.h have not changed since my previous kernel. So I took my working config and pulled it against the new setup and still no change.

EDIT: I think I inadvertently made changes that I didn't even realize that broke crap.

Do you know which changes actually need to be merged to update the drivers? Just the large kgsl commit on page 2 and the two kgsl 3.8 updates on the first page of that github?
 
Last edited:

invisiblek

Recognized Developer
Feb 24, 2010
1,580
5,833
Minnesota
www.invisiblek.org
It is and it seems that it's defined and actually timer.c and smd_private.h have not changed since my previous kernel. So I took my working config and pulled it against the new setup and still no change.

EDIT: I think I inadvertently made changes that I didn't even realize that broke crap.

Do you know which changes actually need to be merged to update the drivers? Just the large kgsl commit on page 2 and the two kgsl 3.8 updates on the first page of that github?

cool

no not at all, the only real reason i knew what happened there is i was trying to do it the other night and ended up giving up (like 3am lol)
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
cool

no not at all, the only real reason i knew what happened there is i was trying to do it the other night and ended up giving up (like 3am lol)

New error for you. I think I can pull this off this time though, lol:

Code:
drivers/gpu/msm/adreno_a2xx.c: In function 'a2xx_cp_intrcallback':
drivers/gpu/msm/adreno_a2xx.c:1639: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
drivers/gpu/msm/adreno_a2xx.c:1639: error: (Each undeclared identifier is reported only once
drivers/gpu/msm/adreno_a2xx.c:1639: error: for each function it appears in.)

I'm sure the issue is the commits were built from tiamat so they probably had some of the necessary commits.

So the fix for this error was to add: #include <linux/sched.h> to the file with the error.

Next error:
Code:
drivers/gpu/msm/adreno.c: In function 'adreno_getchipid':
drivers/gpu/msm/adreno.c:377: error: implicit declaration of function 'cpu_is_msm8930'
drivers/gpu/msm/adreno.c: In function 'adreno_getproperty':
drivers/gpu/msm/adreno.c:801: error: 'struct kgsl_devinfo' has no member named 'gpu_id'

It's been a while since I did any serious kernel work. Fun...
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Update: Got it to actually build but still working on making it boot.

Nope, no good even on the new build. :(

Kind of a downer due to the hours spent on this thing.
 

omniatic

Senior Member
Oct 15, 2009
849
199
Milwaukee
Oh, thank God! The evervolv kernel is fast, but it's killing my battery. Gonna flash this ASAP and see how it runs.
Thanks+

...sorry...I was on the phone...
 
Last edited:

Pons

Senior Member
Sep 2, 2010
3,932
2,067
Beta2 works (boots and WiFi at least) on AOKP b37, but I'll need more than 10 minutes to assess stability.
 
Last edited:

omniatic

Senior Member
Oct 15, 2009
849
199
Milwaukee
Looks like we've got a winner! So far, all is well. We'll see how it runs through the afternoon and report any problems.
Thanks++
Edit: Much better... smoother, faster, less battery drain. Everything works better than with stock.
...sorry...I was on the phone...
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 30
    Current Release: 12/20/2012(JB)/10/03/2012(GB+ICS)
    Important, Please read: There are now two kernel versions starting with 8/10/2012 release, one for GB+limited ICS(no HWA) support and another for the ICS branch with HWA. Changes will be loggged separately for each kernel type. If you see no changelogs specifically for that type, then there's no release made. For example, 8/10/12 for GB is a continuation of the 3/21 release with none of the post-3/21 kernel ICS changes made.
    Update 9/21/12: As of 9/21/12, jellybean is officially supported with the JB specific kernels.


    First of all, I started this thread to make commenting and tracking easier for the incredikernel releases following Chad's latest release (8/15/2011).

    I also wanted to make a distinction between Chad's initial kernels and the ones I've updated since that release and this is one way to do it. Initially I didn't want to do that but now I regretted not splitting sooner.

    If you want the changelog for anything prior to my first kernel please refer to:

    Chad's Incredikernel thread

    Changelog:

    11/30/2013 JB 4.3
    • Android 4.3 support
    • synced with updates from Android 4.3 Evervolv kernel

    04/25/2013 ICS Sense+JB 4.2
    • dynamic fsync control
    • WiFi driver updates
    • Interactive governor updates - see Tinykernel
    • Entropy Tweaks
    • Netfilter updates
    • New sysfs location for fast charge for broader app compatibility - still compatible with latest incredicontrol
    • FUSE filesystem support

    12/20/2012 JB 4.2 ONLY
    • add back governors that were removed in 12/15

    12/15/2012 JB 4.2 ONLY
    • enabled UHID support
    • updated msm_fb for 4.2

    12/11/2012 JB ONLY
    • cpufreq: enable overclocking of 1.15Ghz and 1.19Ghz
    • numerous interactive and ondemand governor tweaks
    • cpufreq: send uevent when governor changes
    • ondemand: boost pulse for JB's powerHAL

    10/11/2012 JB ONLY
    • defconfig: several config changes to fix data usage not working

    10/06/2012 JB ONLY
    • defconfig: enable conservative governor by request

    10/03/2012 ICS+JB+GB
    • defconfig: remove rarely used governors and set max frequency to preventing booting higher than 998mhz
    • lower default hispeed_freq to 614Mhz
    • cpufreq: interactive: always limit initial speed bump to hispeed_freq

    09/21/2012 ICS+JB+GB
    • ALL: New Interactive governor
    • ALL: Built with GCC 4.6 toolchain from Google
    • GB: interactive governor tweaked for battery
    • ICS+JB: interactive governor tweaked for butter
    • JB: genlock patched for JB support
    • JB: new wifi driver for compatibility with JB ROMs

    08/11/2012 ICS+GB
    • KSM wasn't enabled as it should have been in the last build - fixed that - also nothing needs to be done to enable it on GB as it's on by default

    08/10/2012 ICS ONLY
    • fixed data usage features for ICS
    • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger
    • enabled KSM (Kernel Samepage Merging) - still need to enable in CM settings

    08/10/2012 ICS+GB
    • added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger

    07/07/2012 ICS ONLY
    • Merged in multiple driver updates to support HWA (chad0989)
    • Updated adreno kernel drivers to latest
    • added xtqta_guid - for ICS' data usage feature, also seems to have resolved stability issues
    • Added lazy CPU governor
    • Added back intellidemand

    03/21/2012 ICS+GB
    • Added lazy CPU governor

    02/26/2012 ICS+GB
    • Smartassv2 default governor for sure - doesn't override ramdisk settings though
    • new governor lagfree - balance between ondemand and interactive
    • new I/O scheduler SIO
    • tweaked deadline for better performance
    • removed CFQ/BFQ schedulers and smartass, conservative, and interactive govenors (still have interactiveX and smartassv2)

    01/03/2012 ICS+GB
    • Tweak intellidemand and interactiveX governors for battery life
    • Add ZRAM and swap support and add script to toggle ZRAM - see bottom of OP for more info
    • SmartassV2 default governor again

    12/26/2011 ICS+GB
    • Added faux123's intellidemand governor (thanks faux123!)
    • Added imoseyon's interactiveX governor (thanks imoseyon!)
    • Works on GB and ICS currently
    • interactiveX may not play nicely with ICS so intellidemand is default
    • Conservative is disabled, let me know if you need it back

    12/08/2011 (Chad) ICS+GB
    • Added ICS support (limited)

    11/27/2011 GB
    • Use ondemand, performance, and conservative governors from the Android Linux 3.0 kernel
    • Set minimum voltage back to 800 as the voltages will not go below 800 anyway. Anything lower is placebo effect. This is a hardware limitation.

    11/14/2011 GB
    • Update OJ driver
    • BT fix for newer CM nightlies
    • WIFI module updates
    • Update and re-add BFQ scheduler as well as disable deadline
    • Ondemand is back
    • Fixes/Tweaks to ondemand and interactive

    10/08/2011 GB
    • Adjusted smartassV2 parameters for 1GHz processor (originally for 500Mhz device)

    10/01/2011 GB
    • Set smartassv2 to default governor

    09/30/2011 GB
    • Added SmartassV2 governor

    Current CPU governors as of the latest release:
    • SmartassV2
    • Ondemand
    • Interactive
    • Lagfree
    • Lazy

    Technical doc on CPU governors (most of the ones in this kernel anyway)
    https://raw.github.com/tiny4579/android_kernel_common/android-2.6.38-incredikernel/Documentation/cpu-freq/governors.txt

    Update: 11/30/13 - removed link to incredikernel.com as the site has no content - fully on goo.im now

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

    Kernel Source

    https://github.com/tiny4579/android_kernel_common

    Here are a couple notes if you want to build this kernel from source:

    Jellybean kernel branch is android-2.6.38-incredikernel-jb.
    ICS kernel branch is android-2.6.38-incredikernel-ics.
    Gingerbread kernel branch is android-2.6.38-incredikernel.
    The config for the kernel is in arch/arm/configs/incrediblec-incredikernel_defconfig. If you want to switch branches I recommend doing a make incrediblec-incredikernel_defconfig after checking out that branch.
    I use the GCC 4.4.3 toolchain for this kernel due to GCC 4.6 causing build issues.
    11
    Without further ado, I present for your testing pleasure....

    Incredikernel-ICS-HWA-Beta2

    Features adreno/kgsl updates courtesy of drewis from the evervolv team!
    6
    New kernels up! GB kernel will be up shortly or tomorrow with the 10/3/12 build date and same changes. Test with lulzactive was broken so I scrapped it for what I think are better governors.

    Edit: Just noticed I accidentally removed smartassv2 from the kernel config for jellybean. If anyone notices it missing please let me know and I'll add it back tomorrow, otherwise it's just a git blunder.

    Edit 2: GB kernel up now.
    5
    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 9/21/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 in 10/3/12 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.

    Lagfree:
    Based on ondemand but with a softer CPU scaling which should help with battery life. It also seems to be very responsive (starting with 2/26)

    Lazy:
    Based on ondemand as well (Ezekeel is the developer of this governor). I cannot explain this too well but its apparent behavior seems to be to switch between low and high frequencies pretty evenly.
    A note from Ezekeel on this governor:
    "Thus I took the ondemand governor and implemented an additional parameter 'min_timeinstate' defining a minimum time the CPU will stay in a certain frequency state before it will be allowed to switch frequencies again. This way one can have a fine grained polling by setting the sampling_rate to a low value without running into problems with these fast frequency changes.

    I did some extensive testing with a sampling_rate of 10000, min_timeinstate of 40000 and up_threshold of 90 and FLAC, mp3 and video playback all seem to work flawlessly. So it seems the root of the problem was indeed that the CPU does not handle fast frequency changes well.

    I tested several apps and games and so far I have not found anything that this governor cannot handle. Thus I dare to say that it seems to be the superior choice over ondemand."


    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.
    5
    Hopefully this kernel build fixes the freezing many were experiencing. I cannot recreate the freeze problem on a ROM I was testing whereas I could fairly easily on an earlier build.

    https://dl.dropbox.com/u/31805083/incredikernel-ics-hwa-rc1.zip