[KERNEL][S4][SENSE][4.2.2][June 3] IronBorn2 [Initial release][battery life]

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
IronBorn2 Kernel Mandatory Info
Source: IronBorn2 -sense2 branch
Compiler: CodefireX Toolchain
Kernel Linux Version: 3.4.10
defconfig: ville_defconfig

Hello everyone,

I am releasing a new SENSE kernel for SENSE 4.2.2 ROMS like Maximus, Viper, etc. It should install for either One S hboot.

I started with anoane's evita port then added a lot of excellent commitsfrom MikeC84's jewel kernel. HUGE THANKS TO BOTH OF THEM!!!

This kernel should seriously help with battery life on 4.2.2 SENSE ROMS. But make sure you have also frozen apps that cause serious wakelocks too (ie: google bookmark sync on viper rom)

My github: https://github.com/AKToronto/IronBorn2 Goto sense2 branch for this kernel

Github for MikeC84's jewel kernel: https://bitbucket.org/MikeC84/android_kernel_jewel/commits/all

CodefireX toolchain: https://github.com/codefireXperiment/prebuilts_gcc_linux-x86_arm_arm-eabi-4.8/tree/kk-devel

Features to highlight:
AROMA installer
In kernel MPDecision (seriously helps battery life)
In kernel three-phase thermald management
Voltage Control (for undervolting, again to help battery life)
Sound Control
Simple GPU Governor with tunables selactable
Added latest intellidemand and intelliactive governors
Added BFQ, FIOPS, ROW and SIO schedulers (FIOPS default)
Krait version export
Dynamic fsync added and enabled
Built with CodefireX toolchain, compile errors fixed for gcc4.8 and linaro -O flags
Optimized AES, SHA1 routines, RWSEM algo, etc
Led notification duration timeout mod
Enable KControl advanced GPU control
Custom ramdisk option in AROMA

MORE INFO ON MPDECISION AND THERMALD can be found at: ShowP's Bricked Kernel for One S

MORE INFO ON CPU KRAIT VERSION EXPORT
Type in the following code in a terminal window on your phone:
Code:
su
cat /sys/kernel/debug/krait_variant
This will let you see what chip version you have... The slower it is the harder it will be to undervolt

MORE INFO ON NOTIFICATION LED DURATION TIMEOUT
Use sysfs interface to change behaviour :

* /sys/kernel/notification_leds/off_timer_multiplier (rw)
*
* 0 - Notification LED will blink forever until cleared by user
* 1 - Notification LED will blink as requested by app or until cleared by user (default)
* 2 to 255 - Notification LED will blink as requested by app multiplied by value or until cleared by user
MORE INFO ON CUSTOM RAMDISK
If you want to play around and customize your ramdisk, complete your edits then save a file in the zip package as /kernel/custom.boot.img-ramdisk.gz
Then select the option in AROMA

USE THIS KERNEL AT YOUR OWN RISK! IF YOU DO NOT KNOW WHAT YOU ARE DOING, BACK OFF!

MAKE A BACKUP BEFORE INSTALLING!!!!!!!!!!!!!!!!
DOWNLOAD LATEST VERSION HERE:

LATEST IRONBORN2 KERNEL

Install instructions:
1. Flash the file above in recovery and make sure you are S-OFF.

IF YOU WANT TO UNINSTALL THIS KERNEL
1. Make sure to rename mpdecision_backup and thermald_backup in /system/bin/ folder to their original names before flashing a stock kernel!!! These files are not needed by this kernel because all the work is done in the kernel and not in the ROM.
2. Consider reinstalling default kernel/ROM's kernel modules as well

Thanks to: MikeC84, anoane, ShowP1984, faux123, yank555-lu

DONATIONS NOW ACCEPTED: HERE
 
Last edited:

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
Changelog

June 3, 2014
-Initial import from anoane evita 4.2.2 kernel
-Initial import of commits from MikeC84's MAC kernel for jewel
-Added in-kernel MPDecision
-Added in-kernel three-phase thermald management
-Added voltage control
-Added sound control
-Added simple GPU governor
-Added BFQ,FIOPS,ROW,and SIO schedulers
-Added krait version export
-Added dynamic fsync
-Fix compilation errors to build w/ gcc4.8 and linaro
-Optimized AES, SHA1 routines, RWSEM algo, etc
-Added latest intellidemand and intelliactive governors
-Enabled KControl Advanced GPU Control
-Added notification led duration timeout mod
-Built with codefirex toolchain, linaro -O flag optimized
-Custom ramdisk option in AROMA
 
Last edited:

Hai96

Senior Member
Mar 16, 2013
316
309
93
Thanks for your work :)
The kernel is very smooth but I had 1 random reboot since using it


Gesendet von meinem HTC One S mit Tapatalk
 

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
How are people finding the kernel so far? I haven't encountered any major bugs or reboots on Viper Rom with 2.16 hboot. Any other early reactions?

Sent from my HTC One S using Tapatalk
 

Hai96

Senior Member
Mar 16, 2013
316
309
93
i got 2 reboots on viper with onedemand govenor, but i have no last_ksmg. I changed it to intellidemand and now i have no more reboots and battery live is better :)
 

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
i got 2 reboots on viper with onedemand govenor, but i have no last_ksmg. I changed it to intellidemand and now i have no more reboots and battery live is better :)
That's interesting. I've got no reboots yet but I have also been using intellidemand. I can take a look at updating the onedemand governor. It is stock code at this point but may be worth an update.

Sent from my HTC One S using Tapatalk
 

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
If he pulls that off then he's the hero of the year.
Has anyone been able to narrow down the issue? I know it's not the baseband bc it works on aosp roms. I will take a look at some speaker related changes on the kernel side to see if it can be narrowed down now that I am using viper a bit more. So the Ota from Maximus didn't fix it either eh?

Sent from my HTC One S using Tapatalk
 

CazeW

Senior Member
Nov 14, 2008
862
452
83
Has anyone been able to narrow down the issue? I know it's not the baseband bc it works on aosp roms. I will take a look at some speaker related changes on the kernel side to see if it can be narrowed down now that I am using viper a bit more. So the Ota from Maximus didn't fix it either eh?

Sent from my HTC One S using Tapatalk
Nope, the OTA made no difference. I know pirlano took a look at it but afaik, he wasn't able to find the cause. You could check with him for tips where to start looking. Cyanogen and the latest official version (as far as I remember) doesn't seem to have this problem so a good place to start would probably be comparing the speaker/phone/modem/etc. changes. That's a lot to go through though.

I've written this somewhere else before but my personal suspicion is that there is somewhere a threshold value which controls how much noise is filtered from the other side. My guess then is that this value has been set too high, so when a person is speaking quietly the phone thinks that it's just noise so it filters it to lower the noise floor. At which stage this filtering would be done is hard to say, but this would probably be HTCs own implementation which would explain why the problem doesn't exist on AOSP and Cyanogen.
But anyway, that is just my guess. The real cause could end up being something completely different.


If you do manage to fix it, that would be THE killer feature to make this kernel a must have for everyone using a Sense 5 ROM. ;)
 
Last edited:
  • Like
Reactions: nate51

AKToronto

Senior Member
Nov 19, 2012
650
702
0
Toronto
Nope, the OTA made no difference. I know pirlano took a look at it but afaik, he wasn't able to find the cause. You could check with him for tips where to start looking. Cyanogen and the latest official version (as far as I remember) doesn't seem to have this problem so a good place to start would probably be comparing the speaker/phone/modem/etc. changes. That's a lot to go through though.

I've written this somewhere else before but my personal suspicion is that there is somewhere a threshold value which controls how much noise is filtered from the other side. My guess then is that this value has been set too high, so when a person is speaking quietly the phone thinks that it's just noise so it filters it to lower the noise floor. At which stage this filtering would be done is hard to say, but this would probably be HTCs own implementation which would explain why the problem doesn't exist on AOSP and Cyanogen.
But anyway, that is just my guess. The real cause could end up being something completely different.


If you do manage to fix it, that would be THE killer feature to make this kernel a must have for everyone using a Sense 5 ROM. ;)
I've tried some basic stuff but nothing yet... i think I may just go at it more aggressively and replace all sound stuff with the cyanogen versions. I won't have time for a week or so though but I will put my attention to it before doing other updates

Sent from my KFAPWI using Tapatalk