[KERNEL][RAY][JB 4.1 & 4.2] LuPuS-JBv9 [LINARO 4.7.3][UPDATED 08-06-13] - Sony Ericsson Xperia Mini, Mini Pro, Xperia Pro, A

LuPuS JellyBean Kernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This kernel can be used on any JB CM BASED JB 4.1 or 4.2
Disclaimer
Code:
[COLOR="DarkOrchid"]#include[/COLOR] [COLOR="Magenta"][/COLOR]
[COLOR="Blue"]/*
* Your warranty is now void.. LOL I guess you knew it already.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* concerns about features included in my kernel before using it! YOU and only
* YOU are choosing to make these modifications.
*/
[COLOR="Magenta"]#ifdef[/COLOR]
You have a [COLOR="DarkGreen"]question[/COLOR] post it in the [COLOR="DarkRed"]thread[/COLOR],
Instead of [COLOR="DarkGreen"]Pm'ing me[/COLOR], as other users may
experience you [COLOR="DarkRed"]problems[/COLOR]
[COLOR="Magenta"]#endif[/COLOR][/COLOR]
What Works --
Wifi - (flash modules)
Bluetooth
Everything Else that works on FXP and any other JB kernel
What doesn't work --
Anything that doesn't work on FXP and any other JB kernel
Added Io-schedulers --
- Noop
- Anticipatory
- Deadline
- CFQ
- BFQ
- SIO
- ZEN
Added Governors --
- lagfree
- brazillianwax
- smoothass
- scary
- savagedzen
- smartass
- smartassv2
- smartassH3
- interactivex
- minmax
- + the 5or6 that are there with FXP
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up
CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.
When screen is off, frequency is locked to global scaling minimum frequency
Virtuous
Virtuous is a modded smartassV2 which gives even more battery time then smartassV2
Intellidemand - Thanks to faux123
This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,
and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.
Intellidemand does not jump to highest frequency when screen is off.
Lazy - Thanks to Ezekeel
The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.
Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state
on a step overriding sampling interval.
Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always
select the maximum frequency while the screen is off.
-Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
-Lionheart:
Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Superbad -
A "superbad" super smooth rendition of a highly optimized "smartass" governor!
Darkside -
A "slightly more agressive smart" optimized governor!
Intellidemand2 - Thanks to faux123 and CosmicDan for mods
Uses d_bus ramping, quick and smooth and performance based, do not complain about battery drain on this
governor but it will make everything feel more like project butter
What else-----
-SLQB - (SLAB allocator with Queue)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).
- Alot of changes to code to try improve smoothness ect
- Wifi signal lock on should now be quicker / stronger then before
--When LEDS change green, pink then blue press volume down to enter CWM Recovery
I would like to say a big thanks to -
slz.kiev - for amazing PACman ROM & Testing
FXP - Sources
Cyanogenmod - Souces
DooMLoRD - Everything he's done for XPeria
wechy77 - For helping me test
tempest918 - For the New Logo
xeozus
NobodyAtAll
Faux123
Erasmus
Leedroid
Phil3759
CTCaer
Anyone missing please PM me
Github Sources -b jellybean
https://github.com/garwedgess/semc-kernel-msm7x30
CWM source -- https://github.com/garwedgess/android_bootable_recovery -b lupus-cwm

LuPuS MENU
You can run lupus menu from terminal or scriptmanager or similar, you must run as root or script will exit with a message
in terminal
Code:
su
lupus
* information is in lupus menu
1/ CIFS Menu *
Enable
Disable
2/ zRam Menu *
Enable
Disable
Set zRam size ( default is 60)
3/ Frandom Menu *
Enable
Disable
4/ USB OTG *
Enable
Disable
5/ Clean and Remove tweaks
Remove init.d's
6/ Tweak Menu
Note all tweaks are preset from here and option to set as init.d's
Clean all temp files
SQLITE optimizations
LMK Optimizations
Network optimizations
Defend against ARP spoofing
Remove android logger
SDcard speed tweak
Flag blocks as non-rotational
7/ Performance Menu
Note all options are se by user input from here and option to set as init.d's
Set CPU frequencies
Set Governor
Set IO-Scheduler
Voltage Control
VM tweaks (explained below)
VM Tweaks
dirty ratio and dirty background ratio 1 & 2
This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.
dirty_expire_centisecs
How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.
dirty_writeback_centisecs
This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.
min free kbytes
This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.
overcommit_memory
This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.
0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.
1 - Always overcommit. Appropriate for some scientific applications.
2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.
Swappiness
A property for the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive. A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space.
VFS Cache Pressure
File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.

Changelog ...............
Code:
[hide]
[B][v1] [/B]
- Initial release
- 25 Governors
- 6 Io-Schedulers
- SLQB memory allocator
- Built with linaro 4.6 toolchains
- Swap
- Zram enabled
- Custom voltage control supported
- Supports USB OTG
- Supports ext2, 3 & 4
[B][U]v2[/U][/B]
- Couple of extra tweaks - improvements to battery
- Fixed Wifi issues
- Reverted my disabling of disabling sched_feautures if you get that :P
- Added USB OTG modules needed for USB OTG ( find attached zip at the end of the post)
- Added stable freq-table for higher OCing upto 2ghz
[B][U]v3[/U][/B]
- Completely scrapped previous sources and started fresh
- CWM fixed thanks @ Scritch007
- Built with Linaro 4.7
- Optimized for Linaro
- Thumbee
- Reverted to 1.6 max OC
- Lzo patched
- Use Google Snappy Compression / Decompression
- Added TINY RCU
- Fixed Battery drain ( Tester lost 0.2% overnigh with wifi on ) :victory:
- Uses uncompressed Image {why .img size is bigger)
- Custom improvements for overall smoother performance
[B][U]v4[/U][/B]
- built with latest linaro 4.7.3 (02-01-2013) - Thanks @ ChainFirex
- Added memcopy
- Added compaction
- Lowered vfs_cache_pressure
- LMK (lowmemorykiller) optimizations
- Improved CIFS support
- Enabled USB tether
- Disabled gentle_fair_sleepers
- Updated video drivers
- Clean up on wifi config
- Back-ported binder changes
- TWRP recovery - thanks @ championswimmer & TWRP team
[B][U]v5[/U][/B]
- Built with Linaro 4.7.3 (02-01-2013)
- Free'd RAM (disabled 720p) now 381mb - Thanks at Paul678
- Makefile optimisations (snapdragon & neon) - Thanks at Paul678
- Tweaked permormance on interactive governor - Thanks at Paul678
- Tweaked SIO io sched - Thanks at Paul678
- Free'd some RAM from loggers
- Reduce swappiness
- Fix PageHead
- Fix binder. use of uninitialized variable.
- Fix kernel/net Memory Leaks
- Eliminate kstrdup memory leak
- ipv4: force_igmp_version ignored when a IGMPv3 query received
- Fix Entropy Depleting (no more depleting) - Thanks @ Kees Cook
- enable ipsec tunnel support in kernel (Latest FXP Change)
- ARM7 optimsations + more in config
- TWRP v2.4 - Thanks @ Championswimmer, TWRP Team
- Thanks [user=4402161]@Wechy77[/user] for LuPuS TWRP theme
[B]v6[/B]
- Supports both 4.1 & 4.2 JB
- New IIO Scheduler ZEN thanks [user=2632235]@bbedward[/user]
- New Governor smartassH3 thanks [user=3057569]@Hero[/user]
- Tweaked Deadline IO scheduler
- Tweaked smartassv2
- Frandom
- SFB Net scheduler
- OC up to 1804.8MHz
- Logger backported from CAF
- Free RAM from logger
- LMK updated and optimized + various LMK tweaks
- Various ARM & RAM changes
- TinyRCU optimizations
- Optimized crc32 lib
- various VM changes
- Improved cleancache
- Undervolt LCD display, touch sensor proximity sensor & Wi-Fi thanks @ M66B
- Entropy tweaks
- Try fix for CRT animation [user=4266283]@paul678[/user]
- TWRP & CWM
- LuPuS Menu
- Auto Loading wifi
- All modules and init.d's included No need to flash anything after kernel
Plus alot more changes see [URL="https://github.com/garwedgess/semc-kernel-msm7x30/commits/jellybean"] for full list of credits and patches used[/URL]
[B]v6[/B]
- Latest changes to ALS and Button Backlight -- Thanks @ FXP
- Lowered OC to 1612.8Mhz
- Remove ALS and Button Backlight option from LuPuS Menu (no longer needed)
- Random reboots should be fixed ( for those who where having such issues )
[B]v7[/B]
- Fixed 3D from hanging under high intensity
- Fix pmem for HDPI Mike NG] (no more reboots??)
- CWM Recovery = VOLUME DOWN
- TWRP Recovery = VOLUME UP
- Clean up on LuPuS Menu
- Better wifi check
- KEY RESET ( Menu and POWER)
- Tuned Smartassv3 and SmartassH3 [user=2799345]@M66B[/user]
[B]v8[/B]
- Fixed reboot to recovery on 4.2 (not sure if i broke it on 4.1)
---- Custom CWM
- Clean-up of menu
- Added own wipe options menu -- with extra options
- Aroma File Manager from CWM --- Must have aroma ([COLOR=Red]aromafm.zip) placed on root of sdcard[/COLOR])
- Multi zip installer
- Reboot options - Power off re-added under this menu
- Pointless but people keep asking me for it so re-added wipe battery stats also.
- LuPuS themed...
- Fixed "dancing android"
[/hide]
[B]v9[/B]
- Added option to enable Quick Key Reset (enable / disable via LuPuS Menu)
- Tuned Governors
* superbad
* lionheart
* virtuous
* darkside
* conservative
* smartassH3
- Really use google snappy zRam (improves zRam)
- Added zCache
- Removed persistent RAM
- Removed some more kernel debugging
- uninterruptible sleep
- Update SIO & CFQ
- Added Ultra-KSM
- Removed optimized AES & SHA1 routines
- Updated TWRP to 2.4.4
*Fixed Mount USB Storage in TWRP
- Updated CWM to latest Official CWM source
*Removed reboot options
*Re-added power off and reboot system now to main menu
- Improved wifi-loading scripts
- Clean up of lupus menu
- Fixed root issue on some devices
- Reworked kernel logs (can be found in /data/local/tmp)
- Boot.d - If phone is taking a long time to start move suspicious init.d scripts to /system/etc/boot.d
They will be run in background and won't affect boot time.
LuPuS-Jellybean-DOWNLOADS
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.
480p
LuPuS_urushi_jBv9-ram.img
md5 = 3ff24d7e343beb483aa81d7bcfa1b5f5
[/LIST]
720p
LuPuS_urushi_jBv9.1-full.img
md5 = 1effb6e2ba80afbb55d1bd9d30a426fd
[/LIST]
Mirrors -- all LuPuS Kernels can be found here
www.goo.im/devs/wedgess
Wifi is built in to kernels ramdisk NO MODULES NEEDED
If your MD5 doesn't match re-download

Everithing works fine so far. See benchmark scores.
Sent from my Xperia Ray using xda premium

Wow...nice one! Really responsive! Just wanted to point out that in addition to all the features listed in the OP, that you can undervolt
with this kernel....didn't see it as a feature in the OP...
Thanks!

justmpm said:
Wow...nice one! Really responsive! Just wanted to point out that in addition to all the features listed in the OP, that you can undervolt
with this kernel....didn't see it as a feature in the OP...
Thanks!
Click to expand...
Click to collapse
Lol ye i forgot to add it in to op thanks for reminding me.
Edit- Put of couple of more things into 3rd post, anymore I can remeber will be added
Sent from my GT-I9300 On Official JB

wedgess said:
Lol ye i forgot to add it in to op thanks for reminding me.
Edit- Put of couple of more things into 3rd post, anymore I can remeber will be added
Sent from my GT-I9300 On Official JB
Click to expand...
Click to collapse
very smooth, but has a problem the wifi seems works not stablely, sometimes cause reboot and sometimes cannot been disconnected.

feelow said:
very smooth, but has a problem the wifi seems works not stablely, sometimes cause reboot and sometimes cannot been disconnected.
Click to expand...
Click to collapse
Did you reboot? I have no problem with wifi. Only at first boot I had this problems.
Sent from my Xperia Ray using xda premium

testing...
(thx for your effort sofar :good
1st impression: lower scores on Antatu than with standard PAC-kernel.
i'd like to have a better battery life, so now testing "virtuous/sio, 806/134".
or are there better suggestions?
(like to keep a snappy Ray )

"Custom voltage control supported" not working. The PAC romcontrol says: not supported by your kernel

Wechy77 said:
"Custom voltage control supported" not working. The PAC romcontrol says: not supported by your kernel
Click to expand...
Click to collapse
I don't think that part of RC has been activated....it also doesn't work with the kernel from champilnswimmsr's aokp build. I am using incredicontrol from the play store...but a lot of other apps will let you change the volts.

justmpm said:
I don't think that part of RC has been activated....it also doesn't work with the kernel from champilnswimmsr's aokp build. I am using incredicontrol from the play store...but a lot of other apps will let you change the volts.
Click to expand...
Click to collapse
is there a list of recommended (or safe) voltage settings for the Ray?

Yes i know in rom control it still says not supported not sure why but u can always use SetXperia app from playstore to change it
And poster who asked about safe settings. Try down step -25mv at a time and see what is stable for you. If u get reboots then its obviously not stable.
Or else safest way if your wortied then dont undervolt at all. What maybe stable for someone might not be stable for you
Sent from my GT-I9300 On Official JB

I tryed thi kernel for my CM10 rom. And it seems buggy. Antutu points is lower than on stock kernel, and the perfomance is bad too, including games and UI.

_TREM_ said:
I tryed thi kernel for my CM10 rom. And it seems buggy. Antutu points is lower than on stock kernel, and the perfomance is bad too, including games and UI.
Click to expand...
Click to collapse
lol ok first off this is not stock kernel so you can't compare it to STOCK,Ssecondly i'm not sure what governors, io scheds and frequencies you are using. People who have tested have reported it being smooth and performance being greater not worse. Also I obviously use my own kernels on my own device and my experience is the complete opposite of yours. You sure it not 'your' CM10 rom. Buggy!! how? please do elaborate.
Anyone else confirm what the above pster has said ??

Using it now for some hours with Virtous and SIO and looks very promising. Speed of ROM is for me the same and I dont play games. But Battery seems to be great! I left the screen off a lot and have like 95% deep sleep, so pretty well battery ;D I use FXP142.
EDIT: just tested the game "granny smith'. Runs good! But I didnt test with another kernel.

[GER]Roxxor said:
Using it now for some hours with Virtous and SIO and looks very promising. Speed of ROM is for me the same and I dont play games. But Battery seems to be great! I left the screen off a lot and have like 95% deep sleep, so pretty well battery ;D I use FXP142.
EDIT: just tested the game "granny smith'. Runs good! But I didnt test with another kernel.
Click to expand...
Click to collapse
Ye virtuous is supposed to be more battery friendly then smartassv2
Intellidemand2 would be best performanced based but not the best on battery.
Sent from my GT-I9300 On Official JB

Thanks for the great kernel, really liking the Superbad governor.

I left my ray on during the night, to see what the battery would do...
(i mean screen off, but wifi+3g on)
from 100 to 74% in 9 hours.
8:40 deep sleep (94%)
806/134 virtuous/sio
I cannot compare btw, usually i charge at nighttime, but usage seems quite high?
was hoping for about 90% battery left or something, but like i said, not tested with other kernels.

I think I caught a "wifi" bug. Yesterday the wifi cut out and wouldn't turn back on...after rebooting everything was fine for a few hours and then wifi stopped working. I am not sure if it is really wifi or something else, because if I go into settings I see that wifi is on, I can turn it off but it won't turn back on...if I leave settings and pull down the status bar it show wifi as "on"...when I go back into settings it shows wifi as "on"...and no networks are shown that can be connected. You can do this over and over and every time you reenter settings it says wifi is on. I think it also causes a wakelock from wifestatemanager.
I went into recovery and formatted system and reinstalled PACman v15...a few hours later the problem returned. I flashed in a different kernel and it seemed OK....now I have your kernel on ChampionSwimmer's AOKP ROM and I am waiting to see if the bug returns.
I am not sure if there is something specific I do that activates the bug, so I don't have a logcat of it happening. I attached a logcat of me trying to turn on and off wifi in settings. I also attached the battery stats report from Better Battery Stats in case the wakelock is informative....

Related

[Kernel-.33.3][DIET][05/02] CM 5.0.6, 8 MB+ RAM, Hybrid AVS **STABLE**, Optional OC

Diet Android Kernel 2.6.33.2 by PsyQ
I am releasing the kernel which I use by myself I removed most of the debugging options useful for kernel/driver debugging and maxed-out possible compiler optimizations. It has Hybrid AVS support using IntersectRaven's improved method as well as optional overclocking (see note)
These kernels feature:
* Hybrid Adaptive Voltage Scaling for extra battery life
* Optional 1.1 GHz Overclocking Support
* Extra 8 MB of RAM reclaimed from Camera
* Based on Cyanogen's 5.0.6 kernel
* Maximum possible compiler optimizations (loop unrolling, tree vectorization, NEON, Cortex A8 compiler tuning, armv7a target, and many more)
* Removed all unnecessary features from the kernel configuration, including debugging options (these kernels are not useful for kernel debugging / driver development)
* All cpufreq governors (ondemand, powersave, conservative, ...) for people that want to tweak the CPU frequency scaling
Following kernels are available:
diet_2.6.33.3.hybrid_avs_800mv.zip --> Hybrid AVS support, goes down to 0.8 volts and has stock frequency (998 MHz) as max.
diet_2.6.33.3.hybrid_avs_800mv_OC.zip--> EXPERIMENTAL Hybrid AVS with overclocking to 1.1 GHz (0.8v min voltage)
diet_2.6.33.3.hybrid_avs_925mv.zip --> Hybrid AVS support, goes down to 0.925 volts and has stock frequency (998 MHz) as max.
diet_2.6.33.3.hybrid_avs_925mv_OC.zip--> EXPERIMENTAL Hybrid AVS with overclocking to 1.1 GHz. (0.925v min voltage)
To use it, flash the zimage with fastboot and push the bcm4329.ko to the /system/lib/modules:
Code:
[power off your phone and boot into fastboot]
fastboot flash zimage zImage
[reboot]
adb remount
adb push bcm4329.ko /system/lib/modules/bcm4329.ko
Pushing of the bcm4329.ko is necessary as WiFi support would be broken otherwise. If you don't do it, WiFi will not work.
Changelog:
Code:
V1.11 - Update - May/02nd/2010
- Moved to 2.6.33.3 Kernel
V1.10 - Update - Apr/26th/2010
- Changed floating point model to VFP
- There are two AVS versions with different lowest voltage limits (800/925mv)
V1.09 - Update
- Implemented IntersectRaven's Hybrid AVS method
- Synced with the latest code snapshot of CM kernel
V1.08 - Update
- Non AVS kernel is now undervolted down to 0.925v
- Kernel RCU is now of uniprocessor type, saving memory
- DMA speedup patch from latest CM source
- Removed "loopback" file device (this is not related to network)
- Further compiler optimizations
V1.07 - Update
- 8 MB RAM reclaimed from Camera
- Further kernel trimming
- AVS is now available with 0.925v and 0.850v flavors
- Some attempts to make AVS more stable (still work in progress)
V1.06 - Update
- Moved to kernel 2.6.33.2 from Cyanogen's 5.0.5.6 source
- AVS kernels are capable of undervolting down to 0.925v instead of 1.000v
- Minor cleanups
V1.05 - Update
- Further fixes in AVS Support (thx intersectRaven!)
V1.04 - Update
- Fixed bugs in AVS Support
- More kernel tweaks
- Removed "normal" version of the kernel, as _xtra seems to be stable enough
- Added non-overclocked AVS kernel for maximum battery life
V1.03 - Update
- Added Experimental Adaptive Voltage Support (AVS)
- Currently AVS is "for test only", and this kernel has debug support and no loop unrolling
V1.02 - Update
- Switched to CFQ I/O Scheduler
- Removed some more stuff (e.g. 10 Gbit Ethernet Support)
V1.01 - Update
- Added Conservative Governor
- Fixed table lookup bug (thanks pershoot!)
V1.0 - Initial Release
- Based on CyanogenMod 5.0.5.3 source
- Overclocking Support (1.1 GHz)
- Undervolted
- Optional extra undervolt (see attachments - _xtra is additional UV)
- Added Powersave CPU governor
- Removed most of the debugging stuff from Kernel (which makes this kernel useless for kernel debugging!)
- Even more C compiler optimizations (almost -O3 level + extra stuff, like loop unrolling, etc...)
- Audioboost patch
For other kernel developers - you can find the source code here (note that for AVS support you need AVS sources from ChromeOS):
http://github.com/psyq321/nexus_one_kernel_additions
Do you use the xtra version, if so have you noticed any problems
Nice release, will definitely try sometime.
Grrr!!! checked for updated version right before leaving for work, and just missed it!
I am using the one you posted in the other forum without any issues. Does it possess the same undervolting as the Xtra version?
Yes, _xtra is using same undervolt as the version from yesterday.
Additionally, this version contains more optimizations (loop unrolling) that I managed to cram-in by removing more debug options of the kernel (otherwise it would not fit)
What is loop unrolling?
Awesome, I'll pull the config to see what you have done...
just installed on my device. so far so good, using the extra undervolt. booted fine and everything so will report back later if I notice anything weird.
Hi man, in first thanks for this work...
Now can u tell me how can i use your kernel?
Thanks in advanced
just
[power off your phone and boot into fastboot]
fastboot flash zimage zImage
[reboot]
adb remount
adb push bcm4329.ko system/lib/modules/bcm4329.ko
interesting...I've been experimenting with the compiler optimizations in my own build...it made the kernel bigger although I feel a bit more responsiveness now...almost not noticeable but I think its there...
xPatriicK said:
What is loop unrolling?
Click to expand...
Click to collapse
Loop unrolling is the optimization technique used by modern compilers to potentially speed-up execution by decreasing overhead of the loop passes.
For example, imagine that you have a loop, that does something 4 times:
Code:
for(x=0; x<4; x++) {
do_something;
}
In this case, some % of the execution will be checking if the x is less than 4, and if no - "doing_something" again. This check has to be performed for every step (so, it is done 4 times)
Now, if you unroll this loop, it would look like this:
Code:
do_something; x++;
do_something; x++;
do_something; x++;
do_something; x++;
^ So, in this case, we completely eliminated checks.
Or, if the loop is much bigger (say, x goes up to 800):
Code:
for(x=0; x<800; x+=4) {
do_something;
do_something[x+1];
do_something[x+2];
do_something[x+3];
}
See? In this case, you reduce the number of condition checks for bigger loops.
This can sometimes make code faster - but the downside is that it makes the code bigger (which is obvious even in those examples above).
In Android Kernel 2.6.33.1 case - loop unrolling increases zImage size by ~350K. If I didn't strip debugging stuff out, zImage would be too big to fit on Nexus One.
Fortunately, there was approx. 400K to be saved by just kicking out features that enable kernel debugging. I don't think most of the people need that. These features are useful for kernel and driver developers, but most of others can perfectly live without them
Alright, thank you!
will try _xtra when Paul released the new Desire cam. Thanks for your work
Ivan Dimkovic said:
Loop unrolling is the optimization technique used by modern compilers to potentially speed-up execution by decreasing overhead of the loop passes.
For example, imagine that you have a loop, that does something 4 times:
Code:
for(x=0; x<4; x++) {
do_something;
}
In this case, some % of the execution will be checking if the x is less than 4, and if no - "doing_something" again. This check has to be performed for every step (so, it is done 4 times)
Now, if you unroll this loop, it would look like this:
Code:
do_something; x++;
do_something; x++;
do_something; x++;
do_something; x++;
^ So, in this case, we completely eliminated checks.
Or, if the loop is much bigger (say, x goes up to 800):
Code:
for(x=0; x<800; x+=4) {
do_something;
do_something[x+1];
do_something[x+2];
do_something[x+3];
}
See? In this case, you reduce the number of condition checks for bigger loops.
This can sometimes make code faster - but the downside is that it makes the code bigger (which is obvious even in those examples above).
In Android Kernel 2.6.33.1 case - loop unrolling increases zImage size by ~350K. If I didn't strip debugging stuff out, zImage would be too big to fit on Nexus One.
Fortunately, there was approx. 400K to be saved by just kicking out features that enable kernel debugging. I don't think most of the people need that. These features are useful for kernel and driver developers, but most of others can perfectly live without them
Click to expand...
Click to collapse
on point. i like what i see. i will try this out.
If I use the powersave governor option, SetCPU always show it running at minimum 245MHz. Is it working as expected?
bethedealer said:
If I use the powersave governor option, SetCPU always show it running at minimum 245MHz. Is it working as expected?
Click to expand...
Click to collapse
That's fine since the powersave governor clocks it to the lowest for maximum power savings.
standby 245/245 governor is better than on demand?
xPatriicK said:
standby 245/245 governor is better than on demand?
Click to expand...
Click to collapse
Curious about this too!
xPatriicK said:
standby 245/245 governor is better than on demand?
Click to expand...
Click to collapse
It's not necessarily better. It depends on what you're optimizing for. For example, powersave governor optimizes for power savings in return for slowest clock speed which may be apparent when using CPU intensive apps. Ondemand tries to balance it somewhat while giving more importance to CPU speed since it clocks the CPU back to full speed whenever an app runs and downclocking when appropriate. The conservative governor I use in my kernel also tries to balance this but gives more importance to power savings since when an app runs it slowly ramps up the clock speed until the app finishes. Hope this clears it up!
Note that powersave might actually consume more power at the end if you do some intensive work.
Why? Because it will force CPU to stay at the lower clock, even if the task could be completet much quicker with the higher clock.
At the end - it could very well be that running the task quicker @higher clock speed could consume less power total!
Unfortunately, there is no easy way to test what is better, unless someone writes a script that performs some tasks repeatedly until battery dies, and compares the baterry life between different CPU scaling strategies.
I'd definitely not use powersave governor. Rather, I'd play with the "up threshold" and "profiles" in SetCPU to make the CPU frequency scaling more conservative.

[Kernel][AOSP] MAC Kernel - 2.5 [OC uV | Linaro -O3 | CK1 | S2W | USBFC | SLQB | SIO]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
BIG thanks to Agrabren, ToastCFH, CyanogenMod Team, Coolexe and cjoliver​
What is a kernel?​
Code:
#include
/*
* Your warranty is now likely void.
*
* I am not responsible for bricked devices, dead SD cards,
* spontaneous combustion, or any other host of cosmic penalties
* which may befall you, your family, or your phone.
*
*/
• Based off latest Disarmed Toaster build - true aosp kernel is here
• Snapdragon optimizations
• Linaro -O3 optimized
• Implement Ziggy's ck1 patchset
• USB Forced Fast Charge v3.1
• Sweep2Wake with user sysfs - YOU pick start and end points!
• CPU OC up to 1.94GHz
• Set default speeds min @ 192 MHz [email protected] 1.5 GHz
• CPU based alignment handling
• L2 up to 1566 MHz
• GPU OC 2D @ 266 MHz 3D @ 320MHz with MHzx8 bandwidth
• Glitch free GPU frequency changing
• Ziggy's Vdd table interface
• Kernel based mpdecision with advanced screen off profile
• Kernel based thermal management with 3 phase throttling sysfs
• zRam- Google snappy zRam compression / decompression
• Optimized SLUB
• SLQB memory allocator - default
• Dynamic sync control
• Optimized ARM RWSEM algorithm
• lib/memcopy: use glibc version
• lib/string: use glibc version
• Proportional Rate Reduction for TCP
• Lower vfs cache pressure -> 25
• Tweaked audio buffers for Beats
• AC charging for unknown chargers
• vfp neon Optimizations
• Adjusted VM Ratios
• Disable gentle fair sleepers, should improve performance
• Lower WiFi voltages
• Increase Max / Min Readahead Buffers
• Allow low WiFi signals to be seen
• Allow camera flash at 5%
• USB OTG
• CIFS
• SWAP
Governors
• Ziggy's LagFree
• Ziggy's Smartass v2
• Badass with GPU control
IO Schedulers
• BFQ v4
• SIO - Tuned for flash devices
• Deadline - Tuned for flash devices
• Noop
• V(R)
• Boot to recovery
• Nand backup (Optional)
• Wipe cache
• Flash kernel
• Done!
Code:
v 2.5
• Compiled with latest Linaro toolchain
• Linaro -O3 Optimized
• Patched up to Linux 3.0.50
• SLQB Memory Allocator - Defaulted
• Implement ck1 patchset - ziggy
• Add -Ofast flag to config
• Ziggy sysfs vdd interface
• Move vdd min / max to kconfig
• Ziggy's LagFree
• Add sysfs to config for smartass v2 - Ziggy
• Update LZO zRam
• Removed a bunch of governors for battery testing (SavagedZen, Lionheart, Intellidemand, Scary, Lulzactive, Wheatley, Pegasusq, Lazy)
• Default to SIO
• MHzx8 bandwidth
• Fix thermal management
• 3-phase throttling with sysfs added to thermal managment
• Advanced screen off profile for mpdecision
• User configurable sweep2wake coordinates
• Tweak deadline io scheduler for better performance on Android
• Fix bug due to buffer overrun
• Optimized sha1 and aes routines
• Lower display panel voltages
• Dynamic sync control
• Re added badass governor with gpu control
• Updated updater script
• Enabled USB OTG - Yes, I completely forgot to enable this...
• [url]http://d-h.st/myi[/url]
• New: https://github.com/MikeC84/android_kernel_htc_shooter-2
• Old: https://github.com/MikeC84/android_kernel_htc_shooter
• Old: https://github.com/MikeC84/CM9-SHOOTER
Also linked in my signature in case no one noticed..
• Abrabren
• ToastCFH
• Cayniarb
• Herver
• Cyanogen Mod Team
• Chad G
• Mazda
• showp1984
• lowlevel-studios
• abev66
• Coolexe
• faux123
• ryrzy
• oliverclaude
• yank555-lu
• Chad0989
None!
Code:
[B]Coming Soon[/B]
Add another build for older base
Optimized CRC32 algorithm
Patched up to 3.0.52
Linaro Topology drivers
[B]11/02/2012[/B]
http://d-h.st/myi
• Compiled with latest Linaro toolchain
• Linaro -O3 Optimized
• Patched up to Linux 3.0.50
• SLQB Memory Allocator - Defaulted
• Implement ck1 patchset - ziggy
• Add -Ofast Linaro flag to config
• Ziggy sysfs vdd interface
• Move vdd min / max to kconfig
• Ziggy's LagFree
• Add sysfs to config for smartass v2 - Ziggy
• Update LZO zRam
• Removed a bunch of governors for battery testing (SavagedZen, Lionheart, Intellidemand, Scary, Lulzactive, Wheatley, Pegasusq, Lazy)
• Default to SIO
• MHzx8 bandwidth
• Fix thermal management
• 3-phase throttling with sysfs added to thermal managment
• Advanced screen off profile for mpdecision
• User configurable sweep2wake coordinates
• Tweak deadline io scheduler for better performance on Android
• Fix bug due to buffer overrun
• Optimized sha1 and aes routines
• Lower display panel voltages
• Dynamic sync control
• Re added badass governor with gpu control
• Updated updater script
• Enabled USB OTG - Yes, I completely forgot to enable this...
[B]08/26/2012 - 0.9.6[/B]
[url]http://d-h.st/S4l[/url]
• Update Fast Charge to v3.1 - yank555-lu
• Update BFQ to v4
• Add V(R) I/O Scheduler
• Optimized ARM RWSEM algorithm
• lib/memcopy: use glibc version
• lib/string: use glibc version
• BadAss Governor - showp1984
• Lulzactive v2 Governor
• Pegasusq Governor
• Fix multi touch issues - Agrabren
• vDM fix - (Coolexe / Chad G)
• Update LZO compression / decompression to latest version.
• Proportional Rate Reduction for TCP
• Lower vfs cache pressure -> 25
•Tuned deadline for better flash support
[B]08/19/2012 - 0.8.5[/B]
[url]http://d-h.st/JVQ[/url]
[url]https://www.dropbox.com/s/wmqy22wqu9czf0o/MAC_Kernel_0.8.5.zip[/url]
• Kernel based mpdecision - Coolexe
• Kernel based thermal management - Dodava
• Snapdragon optimizations
• Optimized SLUB
• Tweaked audio buffers for Beats
• Glitch free GPU frequency changing
• AC charging for unknown chargers
• -O2 Optimized - Dodava
• vfp neon Optimizations - CG
• Google snappy zram compression / decompression - Vadonka
[B]08/10/2012 - 0.8.0[/B]
[url]http://d-h.st/sQM[/url]
• CPU OC up to 1.94
• Allow CPU based alignment handling - CG
• Adjust vm ratios
• Disable gentle fair sleepers, should improve performance
• Default IO Scheduler > noop
• New updater zip that will help with flashing on sense - CG
• Allow low WiFi signals to be seen
• Allow camera flash at 5%
• Sweep2Wake
[B]08/06/2012 - 0.7.5[/B]
[url]http://d-h.st/C1Z[/url]
• Re based off cm9 0.7.4
• Lower WiFi voltage
• Remove CPU oc for now
•Add back GPU OC - (Chad G)
• USB Forced Fast Charge - (Chad G)
• Change back to SLUB. SLQB causing boot loop
• SavagedZen Governor
• Scary Governor
• ZRAM
• SWAP
• CIFS
[B]07/27/2012 - 0.7.0[/B]
MAC - [url]https://www.dropbox.com/s/vf0ofwj6ppktvcx/MAC_Kernel_0.7.0.zip[/url]
md5 - a15719330044cd0a81f3768b0e3689a9
• intellidemand governor
• iosched: prevent aliased requests from starving other I/O
• SLQB Memory Allocator - Default
• CPU OC up to 1.8
• GPU OC
• Disabled Perflock
• USB On-The-Go
• Removed lulzactive governor was causing reboots.
[B]07/19/2012 - 0.6.5[/B]
MAC - [url]https://www.dropbox.com/s/hlntpy5bwgvxtdg/MAC_Kernel_0.6.5.zip[/url]
md5 - 097f78a07f6d70caff23e318a5817b1c
• Fixed Lulzactive full speed bug (tegrak)
• New base (thanks Agrabren)
• Simple IO Default Scheduler (From now on just one kernel. Use antutu cpu, rom toolbox, etc to change IO Scheduler)
• Added USB forced fast charge - CG
• Remove BadAss Governor
• GPU OC Not yet added..
[B]07/12/2012 - 0.6.0[/B]
SIO - [url]https://www.dropbox.com/s/brev1ek7ck84q5g/MAC_SIO_Kernel_0.6.0.zip[/url]
md5 - d8f01ea7e749e662aadf7f0c4dd17504
BFQ - [url]https://www.dropbox.com/s/lowuo3wnajyz6yj/MAC_BFQ_Kernel_0.6.0.zip[/url]
md5 - a36b4552dc2840f0d6ebb5a66af55f8f
• Updated Lulzactive Governor
• Fixed Lulzactive compile error
• Added Lionheart Governor
• Added SavagedZen Governor
[B]07/12/2012 - 0.5.5[/B]
BFQ - [url]https://www.dropbox.com/s/trya5xienfejqvp/MAC_BFQ_Kernel_0.5.5.zip[/url]
md5 - 01a838d7f0b45d2646c26264d3a623f7
SIO - [url]https://www.dropbox.com/s/4pyuuaqw238y4va/MAC_SIO_Kernel_0.5.5.zip[/url]
md5 - ab5d1585da3295be453dc1e8b7d3eecf
0.5.5
Updated makefile for quick compiling
Tuned SIO for flash devices
Fixed bug in SmartassV2
Tweaked conservative governor
Added Governors
Wheatley
Lulzactive - Not enabled, need to update
Lowered GPU OC
0.5.0
Updated Simple IO Scheduler
Added Governors
SmartassV2
Badass
Increase readahead buffer
0.4.6
Updated BFQ IO Scheduler
Fixed compile error for BFQ
0.4.5
FRESH START
Updated Updater Script
Added Schedulers
BFQ IO Scheduler - Not enabled - Need to update
Simple IO Scheduler - Not enabled - Need to update
OC GPU
Increase bandwidth
Added Governors
LagFree
Lazy
0.3.1
Fix Bootloop
Default Governor - SavagedZen
0.3.0
Added Governors (Still Experimenting, may experience bootloop or random reboot)
SmartassV2
InteractiveX
LagFree
0.2.0
New Updater Script
Merged Latest Changes from DevilToast repo
0.1.3
Reworked Updater Script
0.1.2
Updated Updater Script
0.1.0
Added Governors
BadAss
SavagedZen
USB Fast Charge
/sys/kernel/fast_charge/force_fast_charge == 1 to enable this feature // 0 to disable this feature (default)
from your pc:
adb shell
echo 1 > /sys/kernel/fast_charge/force_fast_charge
exit
from a terminal app on your device:
echo 1 > /sys/kernel/fast_charge/force_fast_charge
or to create a script:
just add echo 1 > /sys/kernel/fast_charge/force_fast_charge to the script
Check out Chad's app that let's you control fast charge.
https://play.google.com/store/apps/details?id=com.incredicontrol
Sweep2Wake
http://www.youtube.com/watch?v=jri2BMQHHrs
echo 0 > /sys/android_touch/sweep2wake
This will disable the sweep2wake.
Other options are.
0 for disabled.
1 for enabled.
2 for enabled with backlight.
cm9 - Working great
Sense 3.6 - takes screen shot when swiping to sleep
Sense 4 - takes screen shot when swiping to sleep
Miui Sense - Doesn't work great
Configurations:
Start button -> /sys/android_touch/sweep2wake_startbutton -> HOME, MENU, BACK
End button -> /sys/android_touch/sweep2wake_endbutton -> SEARCH, BACK, MENU
If u want ur s2w start from MENU button then
echo MENU > /sys/android_touch/sweep2wake_startbutton
and s2w end at SEARCH button then
echo SEARCH > /sys/android_touch/sweep2wake_endbutton
CPU OC
Not all phones can handle 1.9! You may experience reboots if set too high, just lower until no more reboots, every phone is different...
Over clocking the CPU may drain the battery faster than if you were are at stock clock speed.
Underclock for better battery life...
Battery / Performance build.prop edits
ro.ril.disable.power.collapse=1
pm.sleep_mode=1
debug.performance.tuning=1
debug.composition.type=hw
debug.sf.hw=1
persist.android.strictmode=0
persist.sys.use_dithering=1
persist.sys.ui.hw=true
persist.sys.purgeable_assets=1
ro.com.google.networklocation=0
ro.kernel.android.checkjni=0
ro.config.nocheckin=1
ro.vold.umsdirtyratio=20
dalvik.vm.checkjni=false
dalvik.vm.execution-mode=int:jit
video.accelerate.hw=1
windowsmgr.max_events_per_sec=240
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
Governor Info
Look here for governor tweaks
BadAss Governor
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 918Mhz and therefore stay cool and will use less power. To trigger a frequency increase, the system must run a bit @ 918Mhz with high load, then the frequency is bumped to 1188Mhz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1188Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Lagfree
Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.
SmartassV2
Version 2 of the original smartass governor from Erasmux. Another favorite for many. The governor aims for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
I/O Scheduler Info
Noop
Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.
Advantages:
Serves I/O requests with least number of cpu cycles. (Battery friendly?)
Best for flash drives since there is no seeking penalty.
Good throughput on db systems.
Disadvantages:
Reduction in number of cpu cycles used is proportional to drop in performance.
Deadline
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
Advantages:
Nearly a real time scheduler.
Excels in reducing latency of any given single I/O.
Best scheduler for database access and queries.
Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
Like noop, a good scheduler for solid state/flash drives.
Disadvantages:
When system is overloaded, set of processes that may miss deadline is largely unpredictable.
CFQ
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.
Advantages:
Considered to deliver a balanced i/o performance.
Easiest to tune.
Excels on multiprocessor systems.
Best database system performance after deadline.
Disadvantages:
Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
BFQ
Instead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.
Advantages:
Believed to be very good for usb data transfer rate.
Believed to be the best scheduler for HD video recording and video streaming. (because of less jitter as compared to CFQ and others)
Considered an accurate i/o scheduler.
Achieves about 30% more throughput than CFQ on most workloads.
Disadvantages:
Not the best scheduler for benchmarking.
Higher budget assigned to a process can affect interactivity and increased latency.
SIO
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.
Advantages:
Simple, so reliable.
Minimized starvation of requests.
Disadvantages:
Slow random-read speeds on flash drives, compared to other schedulers.
Sequential-read speeds on flash drives also not so good.
V(R)
Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.
Advantages:
May be best for benchmarking because at the peak of it's 'form' VR performs best.
Disadvantages:
Performance fluctuation results in below-average performance at times.
Least reliable/most unstable.
Can you add 2WCR to this kernel?
Also fast charge...
Also is this based off the toast wimax kernel or agrabren's 3.0 kernel with camera working?
Keep up the good work.
Yea I'll try. Been meaning to add fast charge not sure about 2wcr though, ill check it out!
It is based off 3.0.8 Kernel with camera. As soon as they add Wimax to cm9 for shooter I will add it to this. I will try and keep up with Agrabren's updates as quick as possible..
Will cause Aokp to reboot if camera is selected.
Pretty sure that is rom side, however. Just a heads up to those users
Sent from my EVO3D using xda app-developers app
You must adhere to the GPL as well as XDA rules and post source code for the kernel. Not putting any work down, just stating rules and law.
私のEVO 3Dから送信される。
I was waiting for someone to start all that.
Please, just post concerns to mods. Keep potential drama behind the scenes. Thanks
Sent from my PG86100 using xda app-developers app
noice! sub'd to thread. Good to see some kernel dev'n going on here. I will def try this out after work.
THERE WILL BE NO TROLLING, END OF STORY.
/with love from the mod staff
Links back up and source has been linked in signature but added another link in OP.
Thanks iiDuce!!
Thanks PapaSmurf!!
MikeC84 said:
Links back up and source has been linked in signature but added another link in OP.
Thanks PapaSmurf!!
Click to expand...
Click to collapse
Best of luck and I want to publicly thank you for showing a very high maturity level in dealing with this.
XDA Moderator
Does this kernel fix the boot loop problem a lot of people were having, including myself, with agrabens cm9? I have never been able to get it to fully boot up. Every kernel based off of his didn't fix it either.
Sent from my PG86100 using xda app-developers app
Does this kernel have deep sleep and such which will improve battery life on CM9?
Sent from my PG86100 using Tapatalk 2
Guys this is based off DevilToast kernel which is currently in cm9. So any thing wrong with that will be the same here, sorry. I am new to all this so eventually I will be going deeper into the kernel but for now the simple stuff first..
Besides I think Agrabren added deep sleep a while ago but not quite working correctly because I notice my phone is not sleeping well wither. Could be a rom issue as well too idk...
I have been making some buildprop edits on my phone to see if i can get it sleeping better too, we'll see.
EDIT:
Something kinda obvious I already see is it scans for wifi every 15 seconds, changed mine to every 500 seconds...
MikeC84 said:
Guys this is based off DevilToast kernel which is currently in cm9. So any thing wrong with that will be the same here, sorry. I am new to all this so eventually I will be going deeper into the kernel but for now the simple stuff first..
Besides I think Agrabren added deep sleep a while ago but not quite working correctly because I notice my phone is not sleeping well wither. Could be a rom issue as well too idk...
I have been making some buildprop edits on my phone to see if i can get it sleeping better too, we'll see.
EDIT:
Something kinda obvious I already see is it scans for wifi every 15 seconds, changed mine to every 500 seconds...
Click to expand...
Click to collapse
500? That's like every eight minutes...
I have been running this kernel since 4am. No random reboots, no boot loops no over heating. It is smooth and so far battery has been really nice. Of course, it needs more time to settle for a real reading on battery stats. Using Agrabrens Aosp rom. Waiting for Aokp here to be corrected to enable camera to work. Personal preference for that rom
Sent from my PG86100 using xda app-developers app
Nice job wanna build a kernel for me so i can make jeellly bean bootuo bro
Hit the thanks button
e3d4eva said:
Nice job wanna build a kernel for me so i can make jeellly bean bootuo bro
Hit the thanks button
Click to expand...
Click to collapse
I would but still learning this stuff. I could probably build the kernel, like anyone else easily can, it the necessary bits and pieces our 3D needs I can't do.
You would want to ask Agrabren for something like that.
ch1naski said:
500? That's like every eight minutes...
Click to expand...
Click to collapse
Yea I'm not sure but I think it still scans even when its connected to wifi. Why scan so often if you are already connected? If I want to scan real quick I'll go to settings and hit scan....
awesome - loaded up for me
all these new governors - im gonna try out wheatly vs lagfree
anyone have good results with our portal 2 guest star?

[KERNEL][PLAY] LuPuSv9 [CM9 BASED][LINARO][UPDATED-31-12-12]

LuPuS Kernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Hello there, I was reading about Governors on a thread
and was curious about these governors that I hadn't seen before and wanted to try them.
So then I came across this great thread by paxChristos and decided I would try compile a kernel with new Governors and io-scheduler.
I've taken out a couple of things while compiling the kernel as well. I have been using it for a good few days now
and thought I should share these Governors to other Xplay users.
I googled for a name and came across LuPuS :highfive: that is why the boot logo is what it is
Well hope you all enjoy and I will be adding more governors soon when I get time
Thanks to all those who have helped me making this, paxChristos for his advice & tutorial.
Lightnindude, FXP and Cyanogenmod for their sources :good:
Disclaimer
Code:
[COLOR="DarkOrchid"]#include[/COLOR] [COLOR="Magenta"]<std_disclaimer.h>[/COLOR]
[COLOR="Blue"]/*
* Your warranty is now void.. LOL I guess you knew it already.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* concerns about features included in my kernel before using it! YOU and only
* YOU are choosing to make these modifications.
*/
[COLOR="Magenta"]#ifdef[/COLOR]
You have a [COLOR="DarkGreen"]question[/COLOR] post it in the [COLOR="DarkRed"]thread[/COLOR],
Instead of [COLOR="DarkGreen"]Pm'ing me[/COLOR], as other users may
experience you [COLOR="DarkRed"]problems[/COLOR]
[COLOR="Magenta"]#endif[/COLOR][/COLOR]
What Works --
Wifi - (flash modules)
Data
Camera
Panorama
Video Recording (720p now works)
Video Playback
Front Camera
Bluetooth
Everything Else that works on FXP & Mjolnir
What doesn't work --
ALS (Disabled)
Anything that doesn't work on FXP & Mjolnir
Included in kernel
[/LIST]
Added Io-schedulers --
- Noop
- Anticipatory
- Deadline
- CFQ
- BFQ
- SIO
Added Governors --
- lagfree
- brazillianwax
- smoothass
- scary
- savagedzen
- smartass
- smartassv2
- interactivex
- minmax
- powersave
- performance
- conservative
- ondemand
- interactive
- userspace
+
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up
CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.
When screen is off, frequency is locked to global scaling minimum frequency
Virtuous
Virtuous is a modded smartassV2 which gives even more battery time then smartassV2
Intellidemand - Thanks to faux123
This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,
and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.
Intellidemand does not jump to highest frequency when screen is off.
Lazy - Thanks to Ezekeel
The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.
Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state
on a step overriding sampling interval.
Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always
select the maximum frequency while the screen is off.
-Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
-Lionheart:
Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Superbad -
A "superbad" super smooth rendition of a highly optimized "smartass" governor!
Darkside -
A "slightly more agressive smart" optimized governor!
What else-----
-SLQB - (SLAB allocator with Queue)-(both)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).
- Added Cleancache
- Supports ext 2,3
- Updated zRam
- Lzo compression/decompression speed has doubled on average.
- Init.d support
- Fudgeswap
- And much more
- O/C and stable upto 2ghz, although I do not recommend O/C to 2ghz for long periods of time, do so at your own risk.
Show your support for the kernel and my work by putting this in your signature, its only a quick one I done up with my limited time
Code:
http://i.imgur.com/xtWNL.png
Downloads in post 2
Instructions for the CWM Recovery And Aroma File Manager--
--When phone vibrates tap the back key to enter CWM Recovery v6.
--When phone vibrates tap the volume down key to enter Aroma File Manager
I would like to say a big thanks to -
paxChristos - Tutorial / Help
xeozus
NobodyAtAll
Faux123
Erasmus
Leedroid
Jerpelea
KeiranFTW - for his PNG to RLE conversion script
Lightningdude - Sources / Help
FXP - Sources
Cyanogenmod - Souces
DooMLoRD - Everything he's done for XPLay
Supervenom - For the amazing AOKP rom
Solomon4400 - For helping me test (there where a few dodgy ones before I got it to work random reboots and stuff )
CosmicDan - For the amazing CWM / Aroma File Manager - AND LuPuS MIUI[CM9 BASED]
tempest918 - For the New Logo
amarullz - For Aroma File Manager
Kernel sources -b ics
https://github.com/garwedgess/LuPuS-CM-iCs
Changelog
*** Previous changelog was messed up so I'll include everything in here ***
Code:
[B][U]v9[/U][/B]
- Improved Battery Life alot :)
- Thumbee support
- EXT 2/3 & 4 supported
- Init.d supported
- Init.d scripts added (run at boot)
- SLQB Memory allocator
- ARM7 optimizations
- Brought OC back down to 1.6 max (no need for it above 1.6 unless u want to kill your device)
- Kernel sources completely reworked started from scratch o Sony xx.587 sources
- Tiny RCU
- Updatedd patched and fixed LZO
- lowered vfs cache pressure
- Increased Wifi- Range and added support for channel 14
- 0 % Battery patch - Thanks @ Bazoocaze
- Better memory copy
- Better memory move
- Deep sleep issue fixed
- LMK Optimizations (LowMemoryKiller)
- VDD support (voltage conrol)
- Linaro Optimzations
- Compaction added
- KSM
- CIFS (improved support)
- NTFS
- Updated to newest SIO Io-Scheduler
- Google Snappy Compress & Decompress
- Added Vibrate To Recovery (Notification to enter CWM)
- Wifi module size drasticly reduced
** Possibly missing a few things **
Downloads
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.
So zRam does not work on them, below i've added a zram enabler .zip to flash via CWM[/B]
- If for whatever reason you want to disable Zram after you have flashed the .zip, just go to ect/init.d and delete 00zram
Wifi-modules included - Thanks @ CosmicDan
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
v9-LiNaRo-480p Recording
LuPuS-v9-480.img
MD5 = 3b33c08252a845e7cd8374d112f05e9f
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
v9 LiNaRo-720p Recording
LuPuS-v9-720.img
MD5 = 225f5abdfc30643e9763ff3ad95c17af
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
People will ask so i'll just post it here---------to check if zRam is enabled go to terminal emulator or similar and type
Code:
free
or alternatively
Code:
cat /proc/swaps
Please Click Thanks :good:
Great, I'll try it! :good:
Alejandroch said:
Great, I'll try it! :good:
Click to expand...
Click to collapse
Cool make sure you download and flash the the wifi modules in CWM!!
Yo I highly rate this kernel and the dev he is really great! Gratz wedgess do your thing.
Sent from my R800i using xda app-developers app
Cool thanks for the great work, the Intellidemand governor sounds very interesting.....!
Thanks for sharing your source, I like to strip system down to 240MB to give data some more space.
EDIT: I have shared with you my RAMDisk image for your consideration wedgess, maybe you will like it. It is taken from latest CM9 Ramdisk with the following changes:
- Replaced FreeXperia Recovery with DoomLords' Recovery
- Changed Recovery key to Back (instead of Volume-Down) and added a short vibration (just like DoomKernel)
- Bootlogo unchanged, still original FXP one
- Maybe some other small things, can't remember. Tree-compare it to FXP Ramdisk if you like to make sure.
I would release my own kernel with these changes but we already have two CM9-based kernels now, I don't really want to!
CosmicDan said:
Cool thanks for the great work, the Intellidemand governor sounds very interesting.....!
Thanks for sharing your source, I like to strip system down to 240MB to give data some more space.
EDIT: I have shared with you my RAMDisk image for your consideration wedgess, maybe you will like it. It is taken from latest CM9 Ramdisk with the following changes:
- Replaced FreeXperia Recovery with DoomLords' Recovery
- Changed Recovery key to Back (instead of Volume-Down) and added a short vibration (just like DoomKernel)
- Bootlogo unchanged, still original FXP one
- Maybe some other small things, can't remember. Tree-compare it to FXP Ramdisk if you like to make sure.
I would release my own kernel with these changes but we already have two CM9-based kernels now, I don't really want to!
Click to expand...
Click to collapse
Thanks intellidemand is great, its the governor I'm using at the moment. Recovery should already be the BACK button as I edited the ramdisk with my own boot logo and sbin. I used dooms touch recovery before but just wanted something simple if people want I could change eventually
Sent from my Xperia Play using xda premium
wedgess said:
Thanks intellidemand is great, its the governor I'm using at the moment. Recovery should already be the BACK button as I edited the ramdisk with my own boot logo and sbin. I used dooms touch recovery before but just wanted something simple if people want I could change eventually
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
Did you add vibrate too? I always miss the trigger on FXP kernel lol. I don't like the full Touch Recovery either because you can't see long filenames properly, but the one from his ICS Beta kernel is just like CWM Recovery.. but it does have the touch-enabled buttons down the bottom, or is that the same one you mean...? I understand it can be annoying bumping the screen on that and making a mistake selection, but DoomLord Recovery has some useful features... power-off is a good example, I hate having to pull the battery out to power off (seems dangerous).
Well yeah let the crowd decide, nothing is stopping me from repacking it myself for my use of course Cheers.
CosmicDan said:
Did you add vibrate too? I always miss the trigger on FXP kernel lol. I don't like the full Touch Recovery either because you can't see long filenames properly, but the one from his ICS Beta kernel is just like CWM Recovery.. but it does have the touch-enabled buttons down the bottom, or is that the same one you mean...? I understand it can be annoying bumping the screen on that and making a mistake selection, but DoomLord Recovery has some useful features... power-off is a good example, I hate having to pull the battery out to power off (seems dangerous).
Well yeah let the crowd decide, nothing is stopping me from repacking it myself for my use of course Cheers.
Click to expand...
Click to collapse
Haha ye that's the one I mean just personally prefer the original CWM, I agree with the power off but I just reboot system now and don't battery pull I'm open to suggestions though maybe I could make a version for people who prefer it that way??
Sent from my Xperia Play using xda premium
wedgess said:
Haha ye that's the one I mean just personally prefer the original CWM, I agree with the power off but I just reboot system now and don't battery pull I'm open to suggestions though maybe I could make a version for people who prefer it that way??
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
Here's an idea. Keep Vol-Down as FreeXperia Recovery (as it is originally), Back key as DoomLord Recovery, and Menu key as Aroma FileManager? That would be KICKASS. Looking at bootrec and bootrec-device scripts in sbin, seems easy enough to do! If you like that and would like a hand, send me a PM! Or we can keep bumping the thread discussing it :laugh: (Why not, valid dev. discussion that everyone can learn from)
CosmicDan said:
Here's an idea. Keep Vol-Down as FreeXperia Recovery (as it is originally), Back key as DoomLord Recovery, and Menu key as Aroma FileManager? That would be KICKASS. Looking at bootrec and bootrec-device scripts in sbin, seems easy enough to do! If you like that and would like a hand, send me a PM! Or we can keep bumping the thread discussing it :laugh: (Why not, valid dev. discussion that everyone can learn from)
Click to expand...
Click to collapse
this would be great, two days ago i was just looking on how to insert the doomlord recovery in the FXP kernel XD
Good work
Good work man.
:good:
I was reading your post and I thing governor: Lulzactive is not very effective.
I'm not phone deveolper, I'm only normal programmer.
So if I am wrong please explain.
I think it will make cpu freq very jumping, in every interval.
x=>60 - higher state
x<60 - lower state
so in average load it will do something like: ^v^v^v^v (higher->lower->higher->lower...)
what about:
x>60 - higher state
x<60&&x>40 - stay
x<40 - lower state
Gh61 said:
Good work man.
:good:
I was reading your post and I thing governor: Lulzactive is not very effective.
I'm not phone deveolper, I'm only normal programmer.
So if I am wrong please explain.
I think it will make cpu freq very jumping, in every interval.
x=>60 - higher state
x<60 - lower state
so in average load it will do something like: ^v^v^v^v (higher->lower->higher->lower...)
what about:
x>60 - higher state
x<60&&x>40 - stay
x<40 - lower state
Click to expand...
Click to collapse
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency. THIS IS THE VERSION IT IS NOW
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
I WILL CHANGE TO THIS ONE IN A COUPLE OF DAYS
I will leave the old version in there and put the newer one as v2
Click thanks if you like this
wedgess said:
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency. THIS IS THE VERSION IT IS NOW
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
I WILL CHANGE TO THIS ONE IN A COUPLE OF DAYS
I will leave the old version in there and put the newer one as v2
Click thanks if you like this
Click to expand...
Click to collapse
Sounds good, yeah the whole stay-at-current-if-between-60-and-40-percent is not really the nature of lulzactive, it's designed to have very responsive ramping. If you want a "stable" governor give the ondemand a go (or one of the ones it's based on, such as interactive or interactivex). Lulzactive is like a mix between interactive and smartass. Reference: http://forum.xda-developers.com/showthread.php?t=1369817
At the moment I'm having problems with lulzactive2 but if I can't fix it I still have other ones which I've added and am currently testing some of them. More to come....
Sent from my Xperia Play using xda premium
wedgess said:
At the moment I'm having problems with lulzactive2 but if I can't fix it I still have other ones which I've added and am currently testing some of them. More to come....
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
...such as bfq scheduler and all three FXP-Recovery/DoomLord-Recovery/AromaFM ;D
EDIT: It should be noted that this kernel is based on the official CyanogenMod 9 RC2 release for the Xperia Play, not FXP-CM9. I don't know how different it will behave but there are a lot of sourcecode changes compared to the FXP-CM9.
CosmicDan said:
...such as bfq scheduler and all three FXP-Recovery/DoomLord-Recovery/AromaFM ;D
EDIT: It should be noted that this kernel is based on the official CyanogenMod 9 RC2 release for the Xperia Play, not FXP-CM9. I don't know how different it will behave but there are a lot of sourcecode changes compared to the FXP-CM9.
Click to expand...
Click to collapse
Fxp is CyanogenMod for xperia.
Sent from my R800x using xda app-developers app
idiotzach15 said:
Fxp is CyanogenMod for xperia.
Sent from my R800x using xda app-developers app
Click to expand...
Click to collapse
Yes I know that, but FXP is an unsupported and unofficial fork. This kernel however, based on official cm9 for zeus, has been modified for inclusion into the official CM9 device tree. There are a LOT of source-level differences, for example the official CM9 for zeus (including this kernel) has no bfq scheduler and revised netfilter code (which wifi tethering relies on, it needs to be tested). And many other things. The reason I'm stating this is because the tutorial we have for building a zeus kernel uses the original fxp-cm9 kernel as a base.
It was info for those who want to use/examine the Lupus source for whatever reason. I for one can't build the kernel from source, I get ipt_ecm.c errors (trying to sort it out with wedgess help, seems to be case-insensitive source and/or mismatched netfilter code from different kernels). Either wedgess has committed an untested source change or my toolchain (from Doomlord) or Linux environment is borked.
Seems that mounting USB Mass Storage in Recovery is broken with this kernel, or is it just me? Can anybody else test it?
CosmicDan said:
Seems that mounting USB Mass Storage in Recovery is broken with this kernel, or is it just me? Can anybody else test it?
Click to expand...
Click to collapse
I know for a fact that DooMLoRD's recovery doesn't call the UMS properly with CyanogenMod. Last time I looked into it, I read that it's something to do with whatever rom you're running, in conjunction with the kernel, itself. In other words, DooMLoRD makes his stuff to work with stock, and because of that, there will be differences when using his stuff with CyanogenMod.

KERNEL-NookOnFireShowtime V3.22 CM/AOKP/LiquidSmooth/Carbon/SGT7/Slim Rom Compatible!

I proudly present to you
Nook On Fire Showtime V3.22
Nook On Fire Nemesis V2.4
Dear Nook Tablet users,
Welcome to the unbelievably Stable,Butter Smooth,Fast and Feature Rich: Nook On Fire Kernel!
This kernel is based on Official CM10.1 kernel sources.
I'll continue to add more features to the kernel in the future and when real life permits.
Oh, and yes: I built the kernel because I have fun doing so. But be not mistaken that I am a 'play-around kid': I dislike pulling in every little mod someone made. What I want is stability.
This kernel can be flashed on:
- SlimBean
- Official CM10.1
- LiquidSmooth
- AOKP Rom
- CarbonRom
- SGT7 Rom By TheForceUnleashed
You can use Trickster MOD Kernel Settings app from Google Play to control some aspects of this kernel
Link: https://play.google.com/store/apps/details?id=com.bigeyes0x0.trickstermod
I hope you enjoy my kernel
Nook On Fire kernel features:
*Up2date kernel Revision.
*Up2date CPU Schedulers.
*Up2date CPU Governors.
*Pushes Nook Tablet inbuilt hardware's to the maximum of their capabilities.
*Performance/battery carefully picked tweaks
*Default max CPU frequency: 1.20 GHz
*LCD Panel tweaked to reach manufacturer recommendations and reach maximum performance as the settings are taken by the datasheet pdf.
*ARM CPU topology! More info here
*More tweaks under the hood (check sources if you're interested)
*Lots more **** - flash and see for yourself
F.A.Q:
1. My device rebooted or crashed, how can I help?
A: Get me /proc/last_kmsg or logcat.
2. Battery sucks, my device is not entering deep sleep.FIX PLOX!
A: Fix it yourself, it's an app waking your device up not the kernel's problem
3. Do I need to wipe anything when flashing this kernel?
A: No.
4. No WiFi?
A: Rename /etc/firmware/ti-connectivity/wl1271-nvs_127x.bin -> wl1271-nvs.bin
5. Wrong MAC address?
A: This is a residue problem (dirty installation). Just delete wl1271-nvs.bin and reboot.
6. Does this kernel has X or Y mod?
A: Learn to read, everything you need to know is in the features list, changelog or public repo.
Changelog History:
Click to expand...
Click to collapse
Nook On Fire Showtime Kernel
V3.22 changelog
- OMAP4:Fix HSMMC 3/4/5 master clock
- Nohz/sched: don't go tickless when CPU is loaded
- LPDDR2 RAM timings optimization for 10% speed increase
V3.21 changelog
- 10! Yes 10 touch driver is back Thanks to Mik_os
- GPU is pushed to the limits 384Mhz from 307mhz
- I give back to gpu the volt juice it had it might need some adjustment still.
- Our cpu frequencies are changed
- Cpu frequencies are now these
200Mhz/600Mhz/999Mhz/1.1ghz/1.22ghz
V3.2 changelog
- Some more cherry picks
- 720p/1080p video playback seems fixed.
- Reverted previous hashcode commit about usb detection and power down.(was eating battery)
- Am declaring this release stable if no major issues surface.
- Kernel now is ready for serious heavy weight work.
V3.11 changelog
- Trying to fix 720p/1080p video playback issues
- Pushed a reverted commit about usb detection and power down from Hashcode for testing
- Repo Synced to RC5
- Second Showtime release but things show stable enough for me
- If no negative feedback i will declare next release stable So speak now or be silent forever.
V3 changelog
- First released kernel based on Kindle Fire 2 and I9100G (t1) source code.
- Linux Kernel 3.0.81
- More than 100 commits
- New features added and more to come
- Might need some fine-tuning as this is 1st release.
- Highly experimental so if you don’t need adventures stay with NOF-Nemesis for now
Nook On Fire Nemesis Kernel
V2.4 changelog
- I started borrowing code from Kindle Fire kernel, so for now we have code changes from them in:
- GCX
- USB
- MMC
- EMIF
- WIFI
And 2 Great Cherry picks from Hashcode that might fix kernel issues some Nook Tablets have
1. https://github.com/Ntemis/NOF-Nemesis/commit/f0f3f061f94544fb87c429d9e93ae417e00b3458
2. https://github.com/Ntemis/NOF-Nemesis/commit/0799813998b44dcfae0728cd8f16576931b4432f
Edit: Confirmed, now it boots on problematic nooks that couldnt use 1.2ghz previously.Welcome to 1.2ghz era boyz
V2.21 changelog
- Kernel 3.0.80
- Tried to boost io performance
- slub: zero page, trying to fix boot crashes
- Lowered cache presure from 100 -> 50
V2.11 changelog
- Galaxy Nexus Kernel processwith addictional code from franco: shorten freezer sleep time using exponential backoff
- Borrowed immoseyon interactivex governor and edit it to fuction on our interactive, when using interactive you now use interactivex.
- I tunalize interactivex header so we can use interactivex from Gnex.
- Watchdog driver borrowed from Gnex
V2.1 changelog
- Touch driver code review
- Accelerometer code review
- Kernel 3.0.79
- Some wireless code borrowed from Tuna
- Fix some issues with kernel power proccess and filesystem syncing
V1.73 changelog
- More Changes
- Upsteam Synced
V1.72 changelog
- Some more fixes and addictions
V1.70 changelog
- Linux Kernel 3.0.78
- Sio updates by Boy Petersen
V1.66 changelog
- Power related changes like Wakelock/Suspend
- Timer related issues
- Sleep and wake up changes
- Fixes in several mempolicy leaks in tmpfs mount logic
- OMAP4430 Cpu Governors Finetunning to:
Hyper/Conservative/Hotplug/Ondemand/PegasusQ and Wheatley
- Port Snappy and Frontswap and Reworked on Zram tweaks and enchancements.
- CM10.1 RC2 Synced
- Now when usb is plugged for charge etc, it wakes up :highfive:
V1.60 changelog
- Linux Kernel Upgrade to 3.0.77
- Finetuned page writeback for Vmalloc=128mb
- Upstream Sync
V1.52 changelog
- Fixed Smartass V2
- Added HYPER Cpu Governor
- Disabled Fair Sleepers for UI smoothness
V1.51 changelog
- Added SmartAss V2 Cpu Governor
- Reduced Cpu latency from 40ms to 15ms(testing)
- Since no reports came up after i released UnderVolt Kernel for test now UnderVolting is officially implemented into my kernel.
V1.50 changelog
- Add assembler versions of AES and SHA1 for ARM platforms. This has provided
up to a 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1.
- ARMv7: Flush the vectors page using the base address.
- OMAP4: PM: fix overconsumption on OFF mode
- SIO I/O sheduler updates and tweaks finetunned to omap44xx
- CFQ I/O sheduler updates and tweaks finetuned to omap44xx
- Upgraded Linux Kernel to V3.0.76
V1.42 changelog
Changes are a lot more and you are more than welcome to read my github.
Some of them are:
- Low Memory Killer ported from 3.9 kernel
- Some ondemand tweaks to increase frequency early.
- Disable CRC in Mmc driver
- Read ahead fine tunning
- Mmc core: Fix possbile memory leak
- Interactive fixes and updates
- Ported Logger from mainline 3.9
- Decreased the amount of time the device waits after entering low power mode to freeze processes.
- Reduce System logging
- Prevent enqueue of hrtimer on dead CPU
- Another kernel Upgrade to 3.0.75
- Reverted some commits that i was suspecting them to be my troublesome ones.
They were causing troubles like hard power downs and lockups.
V1.35 changelog
- Reduced swappiness from 60 to 45
- Make kernel actually use arm cpu topology
V1.34 changelog
Some minor changes vs the previous kernel base.
I removed some things i didnt like.If you need them please ask for them.
-Fsync
-Ondemandplus
-Make sure you download the modules needed for new rebased kernel!
Nook On Fire Kernel :
V13.3 changelog:
- Finetuned newly introduced Governors for Omap4430 Cpu.
- Added SLQB low-level memory manager More info here
- I have disabled Fsync because it was causing major lags.
Anyone that want to use it it can enable it inside Trickster MOD Kernel Settings from Gplay.
V13.2 changelog:
- Added CPU governor: ondemandplus (more info here)
- Added CPU governor: pegasusq
* ondemandplus is an ondemand- and interactive-based governor that has additional power-saving capabilities while maintaining very snappy performance. (Is finetuned for omap4460 for now, i will fix that when i find more free time )
* pegasusq is an ondemand based governor with hotplugging (=disables the second CPU core when it is not needed). It even hotplugs after some seconds when the screen is on.
- Added ARM CPU topology: multi-core scheduling (enabled by default; saves battery by scheduling load among the CPU cores; more info here)
- Added Fsync and enabled it by default
fsync() transfers ("flushes") all modified in-core data of (i.e., modified buffer cache pages for) the file referred to by the file descriptor fd to the disk device (or other permanent storage device) so that all changed information can be retrieved even after the system crashed or was rebooted. This includes writing through or flushing a disk cache if present. The call blocks until the device reports that the transfer has completed. It also flushes metadata information associated with the file (see stat(2)).
Click to expand...
Click to collapse
- Some more tweaks for Speed
V12.1 changelog:
- Hardcoded Row frequencies by a research group of the xda community.
- Load frequency edits so we reach Gnex Kernel speed and responsiveness
- Tried to fix usb mounting freezes and usb cut outs.
- At This point i find the kernel enough stable and fast for any task you will need it to perform at.
V12 changelog:
- Kernel Updated to latest 3.0.xx(74)
- Updated Row I/O Sheduler to latest 2013 with all upstream fixes
V11 changelog:
- Major changes taken from francisco franco Tuna kernel aka Gnex
- Kernel major jump from 3.0.62 to 3.0.73!
- For wifi to work new modules compiled against kernel 3.0.73 needed and posted.
Notice:
From now on and if you are on same rom you only need to flash kernel, when you flash a new rom a modules package reflash is required or else wifi wont work.
V10 changelog:
- Wakelock changes taken from Samsung latest JB source code
- Suspend changes taken from Samsung latest JB source code
- Memory timings changes copied from B&N Nook HD source code.
V09 changelog:
- Boxer Lcd Panel at 59.1Mhz per datasheet with accompanied settings
- More compiler optimizations
V08 changelog:
- Use ARM Hardware Float instead of software. More info here: http://wiki.debian.org/ArmHardFloatPort/VfpComparison
- Use -O3 flags when compiling Gpu driver. ccflags-y += -O3 in drivers/gpu/makefile (Thanks Mnazim)
- Improoved page writeback tweaks
- Nook HD Panel Settings
- Epic Citadel force close fixed {61fps woot!}
V03 changelog:
- Nook HD source complete memory timings
- Cpu idle code tweaks
- Silicon Performance Enabled aka 1.2Ghz
You can find all releases :
Goo.im Link:
http://goo.im/devs/demetris/Acclaim/NookOnFire
Dev-host:
http://d-h.st/users/demetris/?fld_id=16788#files
Nook On Fire Showtime CWM/TWRP Links:
One Package flasher (Kernel+Modules) for V3.22 http://tinyw.in/bALo
One Package flasher (Kernel+Modules) for V3.21 http://tinyw.in/OFgN back Sorry
One Package flasher (Kernel+Modules) for V3.2 http://tinyw.in/uJfz
V3.2 Kernel Download Link: http://tinyw.in/xd7M
V3.2 Kernel Modules (required)!Download Link: http://tinyw.in/Mxoo
V3.11 Kernel Download Link: http://tinyw.in/5z0M
V3.11 Kernel Modules (required)!Download Link: http://tinyw.in/MBw0
Kernel
http://goo.im/devs/demetris/NookOnFire/NOF-Showtime-Kernel-V3.zip
Modules
http://goo.im/devs/demetris/NookOnFire/NOF-Showtime-Modules-V3.zip
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Nook On Fire Nemesis CWM/TWRP Links:
V2.4 Kernel Download Link: http://d-h.st/YEA
V2.4 Kernel Modules (required)!Download Link: http://d-h.st/sZa
V2.21 Kernel Download Link: http://d-h.st/G2S
V2.21 Kernel Modules (required)!Download Link: http://d-h.st/oOh
V2.11 Kernel Download Link: http://d-h.st/TMo
V2.11 Kernel Modules (required)!Download Link: http://d-h.st/6v4
V2.1 Kernel Download Link: http://d-h.st/ORM
V2.1 Kernel Modules (required)!Download Link: http://d-h.st/l3y
V1.73 Kernel Download Link: http://d-h.st/Dkf
V1.73 Kernel Modules (required)!Download Link: http://d-h.st/iWe
V1.72 Kernel Download Link:http://d-h.st/uCu
V1.72 Kernel Modules (required)!Download Link:http://d-h.st/aoj
V1.70 Kernel Download Link: http://d-h.st/agX
V1.70 Kernel Modules (required)!Download Link: http://d-h.st/flX
V1.66 Kernel Download Link: http://d-h.st/3pk
V1.66 Kernel Modules (required)!Download Link: http://d-h.st/W4y
V1.60 Kernel Download Link: http://d-h.st/X7K
V1.60 Kernel Modules (required)!Download Link: http://d-h.st/ayE
V1.52 Kernel Download Link: http://d-h.st/jiL
V1.52 Kernel Modules (required)!Download Link: http://d-h.st/IWe
V1.51 Kernel Download Link: http://d-h.st/Iz8
V1.51 Kernel Modules (required)!Download Link: http://d-h.st/LIH
V1.50 Kernel Download Link: http://d-h.st/G3m
V1.50 Kernel Modules (required)!Download Link:http://d-h.st/Fan
V1.42 Kernel Download Link: http://d-h.st/dVI
V1.42 Kernel Modules (required)!Download Link: http://d-h.st/Hvr
V1.35 Download Link:http://d-h.st/b9r
V1.34 Download Link:http://d-h.st/Z0D
V1.34 Kernel Modules (required)!Download Link: http://d-h.st/OrS
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Nook On Fire CWM/TWRP Links:
V13.3 Download Link: http://d-h.st/i7L
http://celticstorage.co.uk/cm10/NOF-Kernel-V13.2.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-V12.1.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-V12.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-V11.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-V10.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-09.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-08.zip
http://celticstorage.co.uk/cm10/NOF-Kernel-03.zip
Because of major kernel upgrade new modules needed also!
Modules for NOF V11 and UP!:
http://celticstorage.co.uk/cm10/3.0.xx_Modules.zip
Installation:
Copy zip archive to sdcard
Reboot to recovery
Select to install zip from sdcard
Navigate to archive
Flash and reboot.
Fastboot way:
Unzip archive, get boot.img out of it and,
Installation:
Enter fastboot mode from cyanoboot menu by holding N button and type:
Fastboot flash boot boot.img
Fastboot reboot
Profit.
Succulent Roms NOF Version Link:
http://celticstorage.co.uk/cm10/Succu-NOF.zip
Untested
Source:
https://github.com/Ntemis/kernel3NookTablet/tree/p-android-omap-3.0.y
Find Kernel sources here:
Nook On Fire Nemesis:
https://github.com/Ntemis/NOF-Nemesis
Nook On Fire:
https://github.com/Ntemis/NOF_kernel_bn_acclaim
If you find my work useful please press thanks button!
Credits to:
Kuzma30
chrmhoffmann
Hashcode
Mik_os
Rebellos
Mnazim
Fransisco Franco
Boype
Loosethisskin
Imoseyon
and all other developers who do not remember and whos code is now being used in our kernel.
Thank you very much.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
thanks!
downloading now thanks for your contribution!:highfive:
What Is A Kernel?
Android (like many other Smartphone operating systems) runs on the Linux kernel. The Linux kernel was created in the early 1990’s by a gentleman named Linus Torvalds in Helsinki Finland. It’s incredibly stable, incredibly friendly, and incredibly difficult for the layman to understand and modify. Thankfully it’s also very popular so it has been ported on to a multitude of hardware, including our Android devices.
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that you're not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS. That’s what’s happening while you’re watching the boot animation. Interestingly enough this is done the same way for a PC, your smartphone, an Android tablet, or even a smart Linux powered toaster. If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC. As I said, Linux is amazingly scalable and as a result so is Android.
GOVERNORS
1) Ondemand:
Default governor in almost all stock kernels. One main goal of the ondemand governor is to switch to max frequency as soon as there is a CPU activity detected to ensure the responsiveness of the system. (You can change this behavior using smooth scaling parameters, refer Siyah tweaks at the end of 3rd post.) Effectively, it uses the CPU busy time as the answer to "how critical is performance right now" question. So Ondemand jumps to maximum frequency when CPU is busy and decreases the frequency gradually when CPU is less loaded/apporaching idle. Even though many of us consider this a reliable governor, it falls short on battery saving and performance on default settings. One potential reason for ondemand governor being not very power efficient is that the governor decide the next target frequency by instant requirement during sampling interval. The instant requirement can response quickly to workload change, but it does not usually reflect workload real CPU usage requirement in a small longer time and it possibly causes frequently change between highest and lowest frequency.
2) Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
3) Conservative:
A slower Ondemand which scales up slowly to save battery. The conservative governor is based on the ondemand governor. It functions like the Ondemand governor by dynamically adjusting frequencies based on processor utilization. However, the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle. Conservative governor aims to dynamically adjust the CPU frequency to current utilization, without jumping to max frequency. The sampling_down_factor value acts as a negative multiplier of sampling_rate to reduce the frequency that the scheduler samples the CPU utilization. For example, if sampling_rate equal to 20,000 and sampling_down_factor is 2, the governor samples the CPU utilization every 40,000 microseconds.
4) Interactive:
Can be considered a faster ondemand. So more snappier, less battery. Interactive is designed for latency-sensitive, interactive workloads. Instead of sampling at every interval like ondemand, it determines how to scale up when CPU comes out of idle. The governor has the following advantages: 1) More consistent ramping, because existing governors do their CPU load sampling in a workqueue context, but interactive governor does this in a timer context, which gives more consistent CPU load sampling. 2) Higher priority for CPU frequency increase, thus giving the remaining tasks the CPU performance benefit, unlike existing governors which schedule ramp-up work to occur after your performance starved tasks have completed. Interactive It's an intelligent Ondemand because of stability optimizations. Why??
Sampling the CPU load every X ms (like Ondemand) can lead to under-powering the CPU for X ms, leading to dropped frames, stuttering UI, etc. Instead of sampling the CPU at a specified rate, the interactive governor will check whether to scale the CPU frequency up soon after coming out of idle. When the CPU comes out of idle, a timer is configured to fire within 1-2 ticks. If the CPU is very busy between exiting idle and when the timer fires, then we assume the CPU is underpowered and ramp to max frequency.
5) Interactivex:
This is an Interactive governor with a wake profile. More battery friendly than interactive.
6) Lulzactive:
This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
7) Lulzactiveq:
Lulzactiveq is a modified lulzactive governor authored by XDA member robertobsc and is adapted in Siyah kernel for GS2 and GS3. Lulzactiveq aims to optimize the second version of luzactive from Tegrak by a) providing an extra parameter (dec_cpu_load) to make scaling down more sensible, and b) incorporating hotplug logic to the governor. Luzactiveq is the first ever interactive based governor with hotplugging logic inbuilt (atleast the first of its kind for the exynos platform). When CPU comes out of idle loop and it's time to make a scaling decision, if load >= inc_cpu_load CPU is scaled up (like original luzactiveq) and if load <dec_cpu_load, CPU is scaled down. This possibly eliminates the strict single cut-off frequency for luzactiveq to make CPU scaling decisions. Also, stand hotplug logic runs as a separate thread with the governor so that external hotplugging logic is not required to control hotplug in and out (turn On and Off) CPU cores in multi core devices like GS2 or GS3. Only a multi core aware governor makes real sense on muti-core devices. Lulzactiveq and pegasusq aims to do that.
8) Smartass:
Result of Erasmux rewriting the complete code of interactive governor. Main goal is to optimize battery life without comprising performance. Still, not as battery friendly as smartassV2 since screen-on minimum frequency is greater than frequencies used during screen-off. Smartass would jump up to highest frequency too often as well.
9) SmartassV2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
10) Intellidemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors )
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
11) Lazy:
This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
12) Lagfree:
Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.
13) Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source. Tweaks comes from 1) Knzo 2) Morfic. The original idea comes from Netarchy. See here. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
14) LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
15) Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery.
16) SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
17) Userspace:
Instead of automatically determining frequencies, lets user set frequencies.
18) Powersave:
Locks max frequency to min frequency. Can not be used as a screen-on or even screen-off (if scaling min frequency is too low).
19) Performance:
Sets min frequency as max frequency. Use this while benchmarking!
So, Governors can be categorized into 3/4 on a high level:
1.a) Ondemand Based:
Works on "ramp-up on high load" principle. CPU busy-time is taken into consideration for scaling decisions. Members: Ondemand, OndemandX, Intellidemand, Lazy, Lagfree.
1.b) Conservative Based:
Members: Conservative, Lionheart, LionheartX
2) Interactive Based:
Works on "make scaling decision when CPU comes out of idle-loop" principle. Members: Interactive, InteractiveX, Lulzactive, Luzactiveq, Smartass, SmartassV2, Brazilianwax, SavagedZen.
3) Weird Category:
Members: Userspace, Powersave, Performance.
Hi
When should this be flashed? Anytime? Immediately after the rom?
Thanks for your continuous work!
Sent from my NookTablet using xda app-developers app
Hi,
Yes should be flashed after the rom.
What gov are you recommending for this. It sure flies at 1200. Nice and smooth.
Don't like me...... BITE ME!!!
Too soon to tell, am updating Row and i am adding Smartass2 pegasusQ interactiveX soon.
I updated Lcd with Nook HD configs and it rocks, amazing clarity and performance.
Stay tuned
demetris_I said:
Too soon to tell, am updating Row and i am adding Smartass2 pegasusQ interactiveX soon.
I updated Lcd with Nook HD configs and it rocks, amazing clarity and performance.
Stay tuned
Click to expand...
Click to collapse
Sounds nice. Guess I'll use interactive for now. I'll let you know how it goes. If you ever need a tester for anything I am more than willing any time. Thanks for the work on this device.
Don't like me...... BITE ME!!!
Nice job. For completeness can you post a link to source? Might be there-- I did a quick search and didn't see it. Any point to adding the BFQ io scheduler? Or is that in the stock kernel, I cant' remember.
Hi demetris_I:
Is this kernel in any way related to kuzma30's kernel work?
@kur41
You have any other kernel in mind that can boot on Nook Tablet? :silly:
@fattire
BFQ io scheduler is already implemented
Hi. Thanks for your answer.
Do I really need to format the sdcard onto exfat? Didn't get it.. :/
Sent from my Barnes & Noble Nook Tablet using xda app-developers app
LacerdaPT said:
Hi. Thanks for your answer.
Do I really need to format the sdcard onto exfat? Didn't get it.. :/
Sent from my Barnes & Noble Nook Tablet using xda app-developers app
Click to expand...
Click to collapse
Nope.
Only if you need exfat filesystem support example files bigger than 4gb onto sd card.
New kernel released,
Flash, test, and report back.
Thanks
Edit:
Source changes pushed to git
YES!!! 1200mhz! Thank you!
Sooo far sooo good on CM10.1
Don't suppose 1300 or 1400 could be added for us to try on our devices. Or just mine... Screw them! I want it!
Thanks again for all your hard work! I REALLY appreciate it!
Merrell
Sent from my Barnes & Noble Nook Tablet using Tapatalk 2
Quick question -- will this kernel work with your Nooked CM10.1 (Succulent based) ROM? I've been running that for four or five days and loving it -- my Nook Tablet has never felt as quick and smooth. Thanks very much for all the great work you're doing.
paulbonner said:
Quick question -- will this kernel work with your Nooked CM10.1 (Succulent based) ROM? I've been running that for four or five days and loving it -- my Nook Tablet has never felt as quick and smooth. Thanks very much for all the great work you're doing.
Click to expand...
Click to collapse
Here is what you can do,
get this v08.zip package and the 3rd edition rom
copy the v08.zip once more in a folder and rename it to backup.zip
get boot.img from 3rd edition rom and replaced the boot.img in backup.zip
tranfer both into sd card and reboot to recovery.
flash v08 and reboot.
If it works your golden if not press power key to shutdown device and give another retry
If it fails again go flash backup.zip and report here that it doesnt work, so other know and you save them precious time doing the same.
demetris_I said:
Here is what you can do,
get this v08.zip package and the 3rd edition rom
copy the v08.zip once more in a folder and rename it to backup.zip
get boot.img from 3rd edition rom and replaced the boot.img in backup.zip
tranfer both into sd card and reboot to recovery.
flash v08 and reboot.
If it works your golden if not press power key to shutdown device and give another retry
If it fails again go flash backup.zip and report here that it doesnt work, so other know and you save them precious time doing the same.
Click to expand...
Click to collapse
Unfortunately this kernel won't work with that ROM. Just tried it, will not boot.
razzbaronz said:
Unfortunately this kernel won't work with that ROM. Just tried it, will not boot.
Click to expand...
Click to collapse
Yep, same for me
Sent from my SGH-T959V using xda app-developers app
Added Succulent kernel with NOF changes
Enjoy
P.s
Untested
Source:
https://github.com/Ntemis/kernel3NookTablet/tree/p-android-omap-3.0.y

[Kernel] Vindicator [UberTC6/Strict-Alias/Ofast][5.1][GPU OC/UV] [Release-2.4]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
"I Don't Always Run Custom Kernels. But When I Do, I Run Vindicator"
-Worlds Most Interesting Man
Pushbullet Tag: vindicator
Vindicator OTA Updater App: https://play.google.com/store/apps/details?id=com.mcswainsoftware.vindicator.ota
if there are any bugs, contact developer Jacob
You can also follow me on G+ if you would like:
[email protected]
Intro:
This is the first kernel I've ever developed. I just started developing on android a few months ago so I'm brand new to this. I don't consider myself a developer, I'm just good at figuring things out, all credit goes to the real hard workers coming up with original ideas like Franco, Imo, Flar and Faux. Initially this was built as a kernel to compile with my ROM I'm working on but I decided I would let others get a chance to use it as well. I hope you like it and I won't be offended if you hate it. All ideas are welcome and I'll try to help as best I can. If you wish to use this kernel in a rom , feel free! Although I would love it if you let me know just for my own curiosity.
For those looking for a similar experience, but much closer to stock, I suggest giving Zen Kernel a try!​
Goal:​Keep kernel as lean as possible while adding certain, desirable features and optimizing for maximum performance and battery life. The default settings should be optimal for a balance of battery and performance without a need to tweak.​
Disclaimer:​If your phone blows up, its not my fault. If your phone somehow gains perpetual battery life, I'll take full responsibility.​
Features:​-Zen Kernel Base
-Android 5.1
-BFS Cpu Scheduler (Ported By @bbedward)
-Latest Linux 3.10.x
-Compiled With Uber ToolChain 6.0
-Compiled With Ofast, Strict-Aliasing, Graphite, A15 Tweaks, And Loop Nest Optimizations
-Various Other Build Optimizations
-Optional GPU OC To 700Mhz.
-GPU Initial Freq. Is 110Mhz Instead Of 240Mhz Saving Power.
-Additional GPU Steps
-CAF Power Saving Patches
-CPUIdle Driver Updated To Linux 4.0
-Slub Allocator Updated To Linux 3.18
-GPU UnderVolted
-Workqueue Updated To Linux 3.18
-Init Updated From Upstream
-Power Efficient Workqueues
-Low Power Ram Mode Enabled
-Kernel Same Page Merging
-ZenDecision Quad Core Driver
-Hotplug Affinity Enhancements
-Kexec Hardboot/MultiRom(See FAQ For Help)
-UKM Built In And Modified. Just Install Synapse App.
-Savocas Color/Gamma Control
-Lowered Regulator And Screen Voltages
-Lowered Screen Clock Speed
-Lowered Retention Voltages
-Moto QuickWakeup
-Faux's Simple GPU Governor
-Frandom (Efficient Random Number Generator)
-Hardware Floating Point Processing
-ZRam
-ZSMalloc
-I2C Min Freq. Reduced
-Cruft Free
-Slimmed Down(Increased Size Is Due To Optimizations & UKM Not Bloat)
-Tons Of Debugging Removed
-Many Misc. Optimizations
-35mhz Min Freq, 3.09ghz Max
-Several WakeLocks Removed, Such As Sensor_Ind and hsic.
-MPDecision Disabled By Default
-MSM HotPlug
-Mako Hotplug
-Adjustable Thermal With Lean Kernel Mods
-IntelliActive Governor Added
-FIOPS, ROW & BFQ IO Schedulers Added
-Tons Of IO Fixes/Performance Boosts
-No Force Encrypt. Changed To Encryptable.
-Crypto Optimizations For Enhanced IO Throughput When Encrypted
-Voltage Control
-Westwood TCP Algorithm
-PIE & HHF Network Schedulers(reduced latency)
-Tons Of CAF Commits
-Merged In Most Of Franco's Code
-Merged In Parts Of Faux123's Code
-Merged Significant Portions Of Lean Kernel Code
-Optimized RWSEM
-Many Parts Pulled From Upstream
-Merged In All CAF And Franco Interactive Commits Into Interactive
-Francos Conservative Governor
-CPU Boost Completely Removed(Replaced With Franco's)
-Wake Gestures
-F2FS Support
-LK Config
-Vibration Control
-Asynchronous FSync
-Init.D Support
-Potentially Something I Forgot...
Downloads:
[AFH] Kernel: https://www.androidfilehost.com/?w=files&flid=25836
Downloads also through app and pushbullet
Amazing Donors!:
JackPollard
Maybelle
Credits:
Imoseyon
bbedward
Flar2
Franco
Faux123
Linaro
Code Aurora Foundation
Cl3Kener
Engstk
Yank555
Mistertac (Best Tester Ever)
RIPng(DespairFactor)
Neobuddy89
apb_axel
Google
Motorola
If I Missed You Lemme Know!​
XDA:DevDB Information
Vindicator Kernel, Kernel for the Nexus 6
Contributors
Xileforce
Source Code: https://github.com/XileForce/Vindicator
Kernel Special Features: I'm special.
Version Information
Status: Stable
Current Stable Version: 2.3
Created 2015-02-06
Last Updated 2015-05-3
Changelog:
1.0:
-Merged Latest Lean Kernel Code
-Merged Latest Franco Code
-Franco's Thermal Management Replaces Thermald
-Zram ported from Linux 3.19 upstream Using LZ4
-VM Memory Tweaks. (Vfs cache, swappiness,etc)
-I2C min frequency reduced from 50mhz to 19.2mhz
-Retention voltages dropper further
-Removed most Tracers
-Reduced Several Regulator Voltages
-Various CAF Patches
-Disable IO Stats
-Disable More Debugging
-Disable Gentle Fair Sleeper(better performance)
-ZSMalloc ported from Linux 3.19 upstream
-ZPool Ported from Linux 3.19 upstream
-Cut DMA latency in half
-Optimize SFCK Compression
-Reduce Swappiness
-Optimize Dirty Ratios
-Disable HSIC_Host wakelock by default
-Reduce Wlan wakelocks further
-Increase Bark/Pet Time
-Possibly More I Missed.
1.1:
-Savocas New Color/Gamma Control
-Lowered All Regulator Voltages Across The Board
-Lowered Screen Voltages And Screen Clock Speed(no detrimental effects noticed yet)
-Add Under clocked and Over clocked step for L2Cache
-Add 110mhz And 430Mhz GPU Slots
-Fix Simple On Demand Governor
-Additional Build Optimizations
-Integer Square Root Optimizations(3x faster)
-Lower GPU Bus Frequency @ 700mhz(battery and stability)
-Potentially Reduce BlueSleep Wakelock(testing report back please)
-Remove IO Debug
1.2:
-Merged Latest LeanKernel
-Added Option To Disable BlueSleep Wakelock Via Terminal
-Reduced BlueSleep By Default
-Readahead Optimizations
-More Voltage Reductions
-Power Suspend Updated To 1.7
-OC SlimBus
-Revert L2 OC
-Latest Franco Merged In
-Update To Linux 3.10.69
-Fix Ramdisk Issues
-Raise InteractiveX Default Screen Off To 730Mhz
-Lowered Power Draw Further At 35mhz
1.3:
-Added Motorola Quick Wakeup
-UKM Built In. Use Synapse App
-Added Aggressive Build Optimizations
-Merged In New Lean Kernel
-Greatly Reduced GPU Power Draw
-Added Bricked Hotplug
-Added MSM Limiter
-FSync Toggle
-Optimized LZ4 A Bit
-Some CAF Patches
-Increased Available Entropy
1.4:
-Merged In Latest Franco Code
-Removed Bricked Hotplug
-Defaulted Power Aware Scheduling On(Adjust In LkConfig)
-Added Power Efficient Workqueue(Better Battery Life)
-Optimized Timer Code
-Added Westwood TCP Alg.(Best One IMO)
-Updated UKM To Latest
-Updated MSM Limiter
-Numerous CAF/Linaro Patches
-Screen Power Draw Reduced Further
-USB Fast Charge
-Various Code Optimization Patches
-Added Toggles For Arch Power And Gentle Fair Sleepers
-Network Speed Tweak
-Don't Force Sync On Suspend
1.5:
-Kexec-hardboot/multirom support(Huge thanks to team member @jamcswain for porting that!) See FAQ For Help.
-Merged Lean 1.17
-Update To Linux 3.10.71
-Optimize Low Memory Killer For ZRam
-About 50 CAF Patches For Numerous Things(Thanks Neobuddy)
-WiFi Patches
-Crypto,IO,Memory Optimizations
-Entropy Optimizations
-DT2W Fixes
-Screen,GPU Patches
1.6:
-Android 5.1 (Massive Thanks To Imoseyon for merging it in)
-Latest Lean Merged
-Latest Franco Merged
-Mako Hotplug Updates
-Intelliplug V4
-Misc Fixes
-Default Power Aware Scheduler Off Again (Change In lkconfig)
1.7:
-Merged Latest Lean
-Merged Latest Franco
-Ramdisk Fixes For Roms(All Imoseyon)
-IO Boosts
-Updated Linaro ToolChain
-Boot Time Speedup(Jamcswains idea)
-InteractiveX Tweaked(Franco's Idea)
-Numerous CAF Patches
-Mako Hotplug Updates
1.8:
-Merged Latest Lean
-Merged Latest Franco
-Switched Toolchain To Custom Compiled Linaro
-Speed Up Boot Further
-Tons Of CAF Patches
-Audio Fixes/Patches
-800Mhz GPU Step
-MSM Limter Removed
-Added Moto Predictive Touch Driver(Better Responsiveness)
-Updated FB Notifiers
-Disabled MPDecision By Default. Mako Is Default Now
-FIOPS Is Default IO Scheduler Now
-Added Moto Low Memory Killer Optimizations
-CPUfreq and Ext4 Optimizations
-More Debugging Disabled
-Various Other Optimizations And Updates
-Update To Linux 3.10.72
-Probably Stuff I Forgot
1.9:
-Merged Latest Lean Kernel
-Fix USB OTG
-Fix Wake Gestures
-Default To QuadCore Mode For Mako
-Ensure 35Mhz Is Min Freq. on Boot(Fixes Weird Issue)
-Modified UKM/Synapse To Control Wakelocks (Misc Tab)
-Merged Latest Hydra Kernel Changes/Patches
-Fix Battery Drain On BlueTooth
-Frequency Mitigation Preventer V2 (In LKConfig)
-Stability Fixes
1.9.1:
-In Call Audio Fix
1.9.2:
-Updated With Official Multirom/Kexec Hardboot Patch
2.0:
-Merged Latest Franco And Lean Code
-Linux 3.10.73
-Several Memory Leaks Fixed
-Reboot/Bootloops Fixed
-!00's Of Patches
-SELinux Permissive By Default
-Compiled With SaberMod 5.0
-Screen Frequency Reverted To Stock
-Tweaked Interactive Touchboost Parameters Further
-Replaced IntelliPlug With MSM Mpdecision
-Added Back MSM Limiter
-FB Notifiers now Enabled By Default. Toggle Added To Synapse
-Merged In Some Hydra Kernel Ramdisk Fixes
-GPU OC Reduced Back To 700Mhz
-Add Power Aware Scheduling to Synapse (CPU Settings Page)
-Fix Synapse To Display CPU Bin On Front Page
-Revert FastBoot Mods For Now (Buggy)
-KCal Fixes
-MSM_HSIC WakeLock Now Enabled By Default With Divisor Of 5 (Change In Synapse Or LKConfig)
-Mako Hotplug Load Threshold Set Back To 80
-Misc Optimizations
2.1:
-Completely Rebuilt From Scratch Upon Zen Kernel With Input From bbedward
-Some features may be missing atm and may get added back in down the line.
-BFS Cpu scheduler. IMO a significant upgrade over CFS, the standard one used by almost every kernel. Should give better battery life and performance. THIS IS ONE OF THE BIGGEST CHANGES A KERNEL CAN MAKE
-Cleaned up the source and fixed issues.
-EXT4 and F2FS updated with upstream commits.
-Per CPU VMA Caching From Upstream
-BFQ and ROW IO Schedulers
-Touchboost Adjustments For More Butter
-Fauxs Simple GPU Governor
-Lowered the default voltage on 1.497ghz 10mv by default
-Compiled With Ofast Instead of Os (Ofast Is the heighest gcc optimization level, one step above O3. Os optimizes for size, rather than speed.)
-Compressed with optimized XZ rather than LZ4 to keep size down
-Latest lean and Franco merged in.
-Adaptive Low Memory Killer enabled
-So much stuff....and I honestly have no idea on how to write a changelog for a rebase...its an entirely new kernel...
2.2:
-Compiled With UberTC 6.0 (Figured We Would See How It Compares To SM 6)
-Compiled With Graphite Optimizations
-Compiled With Loop Nest Optimizations(An Extremely Aggressive Optimization)
-Compiled With loop-unroll-and-jam(A companion optimization to loop nest also aggressive)
-Small GPU Tweaks
-Greatly increased encrypted IO Performance
-Arm Specific Optimization Patches
-Added Heavy Hitter Filter(Another Network Optimization That May Also Reduce CPU Usage)
-Added Proportional Integral Controller Enhanced(Yet another network optimization algorithm designed to reduce latency and increase efficiency when doing latency sensitive things such as streaming)
-Optimize boot/compressed for Krait
-Addition Branch Optimizations and Inter Procedural Optimizations
-Support CM12.1 Ramdisk
-Optimize ROW and Deadline
-Add Bluesleep Wakelock Toggle
-Reduce Wlan_Ctrl Wakelock
-Default Wlan_rx wakelock divisor to 5
-Default msm_hsic divisor to 6
-Fix lkconfig frequency stuff
-Default below 40% frequency changing OFF
-Cleanup frequency mitigation stuff in lkconfig.
-Add Westwood
-Use amended interruptible threads (reduces cpu load)
-Disable add random on IO
-Reset cpu dma latency to stock...idk what it does so i shouldnt touch it...
-Revert Ram OC (IDK if it even worked)
-Add smb135x wakelock toggle
-A GPU Patch
-Raise default touchboost to 500ms.
-Optimize memcpy and memmove
-Significantly Optimize Console Framebuffer
-Enable non-cacheable streaming enhancement
-Add GPU Compile Optimizations
-Disable a lot more debugging
-Boot with 2.649ghz max freq for stability
-Add OC up to 3.033ghz. Highly unstable IMO but its an option for the brave.
-Cleanup Ramdisk
-Raise voltage a bit on 2.88 for stability.
-Disable useless resource counters to save processing power and battery.
2.3:
-Update CPUIdile Driver and CPUIdle Governors almost completely to linux 4.0(Several Years Worth Of Commits)
-Updated CPUFreq Driver Nearly To Linux 4.0
-Update Suspend/Sleep Driver Mostly To Linux 4.0
-Update SLUB Allocator To Linux 3.18
-Update Block(IO Stuff) From Upstream A Bit.
-Upstream Scheduler Patches
-3.09Ghz CPU Step Added (Likely Quite Unstable) Some People Like That Stuff
-Amperage On 3.03Ghz bumped up a tad for stability.
-Linux 3.10.75
-Frandom random number generator added(Extremely Fast Random Number Generator)
-Power Efficiency Patches From Code Aurora
-Fixed Crash When Switching CPU Govs.
-BFS Updates!
-Update Ondemand to Linux 3.18
-Default OnDemand To Simms22's Preferences
-Merged Latest Franco Code
-Merged Latest Lean Code
-Merged Latest Zen Code
-Franco's Conservative governor updated
-Some Interactive updates
-Color control updates
-ARM Specific Updates
-F2FS Updates
-GPU Driver Updates
-Memory Leak Fixes
-Stability Fixes
-Updated ToolChain
2.4:
-Updated To Linux 3.10.77
-Merged Latest Lean Kernel
-Merged Latest Zen Kernel
-Update Workqueue To ~ Linux 3.18
-Enable Ram To Enter Low Power Mode
-Update mm.h And Memblock from upstream
-Default IO Scheduler To BFQ. Its Been Tested To Be Best For Interactivity
-Upstream Init A Bit
-A Few Patches To SMP
-Upstream Cgroups And Memcg Significantly
-Disable RunQueue Stats. Pointless Bloat and CPU Overhead only needed for mpdecision
-Added Power Efficient WorkQueues Patch From Upstream(This Gives better battery life at the cost of a likely unnoticeable performance hit. Enabled by default. Toggle in synapse CPU settings page)
-Hotplug Efficiency Patch(Optimizes Hotplugging To Handle The Transfer Of Processes From One Core To Another Much Better)
-ZenDecision Added
-Added A Toggle For Mako(Currently Only Works To Disable Mako. Ill Work On It Further In 2.5 Credit to bbedward for this
-GPU Tweaks To Make It Smoother
-UnderAmped(Reduce Current For Every Frequency Up To 2.7ghz. Should Save Power. Experimental)
-Added KSM Tweaked For Android(Disabled By Default, Scans Few Pages, and does so very rarely. I didn't notice a battery hit with it on. Optimizes ram use)
-Franco Kernel Updater Profile Updates
-Ramdisk Modifications(May Fix Some Rom Issues)
-Fix For Ondemand Crashing(Hopefully)
-Misc Tweaks & Patches
-Hotplug Affinity Fixes
-Various Power Saving Patches
-Optimize Copy_Page For Modern Arm Processors
-Do Jiffies Conversions At Compile Time Rather Than Runtime(Saves The Cpu Work)
-Optimize For Our L1/L2 Cache Size
-Allow Options To Be Passed To Memory Barrier Instructions
-2 Patches To Improve File System Performance
-HRTimer Optimizations
-Make Binder Mutex Realtime To Reduce Chance Of SurfaceFlinger Being Blocked
-Keep Track Of ASID Allocations And Try To Reuse Them In Certain Cases To Improve Performance
-Don't Compile CPUIdle Ladder Governor. It doesn't get used anyways.
-Allow Rescuer Thread To Do More Work
-Reduce Runqueue Lock Contention
-don't use compound_head() in virt_to_head_page() this showed around a 1.8% performance improvement in some cases
-Small MultiCore Scheduling Improvement
-Definitely Some Stuff I Forgot
FAQ's
1. How Do I Enable Mako Hotplug?
To enable mako hotplug use your favorite kernel control app like faux or trickster. As of 1.8 it is the default hotplug. In trickster you have to turn off both mpdecision and intelliplug. In faux you need to simply select User Control in the Hotplug Section. The hotplug can be configured using Franko Kernel Updater App.
2. Does This Work With CM12 Theme Engine?
Yes, this works with CM12 Theme Engine and should work on all ROMs properly.
3. How Can I Force All 4 Cores Online All The Time?
First you must enable mako hotplug. Then you need to use Franco's kernel updater app or another app that allows you to tweak mako hotplug settings. In fku app select CPU manager then hotplug control. Change load threshold to 0. Additionally if you just want to make it use 4 cores more often. Lower this number below 80 as desired. This should also be possible to tweak via terminal however I've never used that method.
4. Does This Have D2W, S2W, etc?
Yes, those are part of LK which means they are include in this kernel.
5. Help! I think its making me bootloop!:
This may only apply to specific ROMs and I'm unsure ofnwhy it would change anything but users have reported this to fix the issue. If you are trying a fresh install of a ROM boot on stock kernel first, reboot, then install this kernel.
6. You Broke My Phone! Fix It!:
It will be quite hard for me to figure out what is going on if you don't provide details and a log of what happened. To get a log use any file manager with root support and navigate to sys/fs/pstore I then need the console one.
7. What Kernel Tweaking App Should I Use? What About For Tweaking Screen???:
I now Use synapse as my goto app for kernel tweaking since version 1.3. To control the screen I use the app made by Savoca who created the color control we use http://downloads.codefi.re/savoca/kcal
8. Why Add Zram? We Already Have 3gb Of Ram!
Zram was added in build 1.0 as an experiment of sorts to see how much is was actually being used. V 1.0 introduced a bunch of tweaks to the kernel that essentially make it use more ram in order to give better battery life and performance. Zram was put in place to offset this in a way.
9. Wut Is A LZ4?
LZ4 is a compression algorithm used by the kernel. LZ4 is currently the fastest supported option in the Linux kernel and had to be ported from upstream. It is significantly faster than XZ compression which is what we used prior. The downside is it results in slightly larger file sizes due to a lower compression ratio. However with modern hardware this should be moot. The gains should theoretically be noticed as a general performance bump. Boots should be faster. IO should be marginally faster. Anything that's compressing or decompressing stuff, such as ZRam and encrypted devices will utilize this in a big way. Because its compressing and decompressing so much faster it can also be assumed it is saving battery via less CPU cycles.
10. What Is Strict Aliasing And Why Should I Care?:
One of the big things Linaro does with improving Android's performance is fixing violations of what's known as "the strict aliasing rule." A pointer is said to alias another pointer when they both refer to the same location of memory. This is OK and not an uncommon thing to do. The strict aliasing rule is that pointers of different types should never refer to the same location of memory (aka alias each other). Strict aliasing allows a compiler to make some assumptions when compiling and optimizing code that it otherwise couldn't. It's actually one of the biggest optimizations you can do and it is fairly hard to add which is why most people don't. Here's a nice read up on it http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html#benefits
11. Come on man. 35mhz is pointless bro!:
A common misconception is that if two frequencies run at the same voltage. They use equal power. In fact this couldn't be less true. The equation for power draw has four variables. Two of which are frequency and voltage. Essentially it is the frequency multiplied by the square of the voltage. Then you would take that and multiply it by a few other things such as capacitance. However that is irrelevant for our purposes as it will not effect the relative results. This means that 35mhz running at 500mv will use about 3x less power than 98mhz at 500mv. Now we say well what about compared to 300mhz? I can stably run that at around 650mv. Maybe slightly less. This equates to about 15x less power usage at 35mhz. Well now that we know that. Who cares? Its not like 35mhz will even get used. Its too low! I beg to differ. I would almost guarantee that if you are not running mpdecision 35 MHz will be within the top 3 most used frequencies. Most likely the top used below sleep. And every time it uses that over 300mhz you are saving 15x the power. Additionally 35mhz also runs at a cache frequency of 35mhz as opposed to 300mhz cache frequency and runs a lower bus speed/voltage saving additional power. The same goes for 98mhz. Hope this helps clear things up.
12. How Do I Disable BlueSleep Wakelock?
Open terminal emulator app. Type su then hit enter then type echo 0 > /sys/module/wakeup/parameters/enable_bluesleep_ws all on one line. It won't say anything but if you turn on Bluetooth and check your wakelocks you shouldn't see the wakelock there anymore. This needs to be set on each boot currently. If you experience Bluetooth connectivity issues don't disable this. To enable it again either reboot or run the same command with a 1 instead of a 0.
13. How Do I Use MultiRom???:
To use multi ROM first you must download the MultiRom App from this location http://tasemnice.eu/bordel/MultiROMMgr-v1.180.apk the play store version doesn't work with shamu yet. Then you will need to open it, go to settings and tap the version number until you are a developer. Then click override manifest URL and for manifest URL enter http://tasemnice.eu/multirom-test/manifest.json the. Go back to the main page. You should now have MultiRom and recovery boxes checked. Click install, reboot etc. To install a ROM. Download a ROM you like, go to twrp, click advanced,MultiRom,add ROM. Select internal storage and the Your zip file. Flash it but don't reboot! After that go back and select "list ROMs" select the ROM u just flashed still and click flash zip and select your gapps,supersu etc. After that simple reboot and select your new ROM on boot use the MultiRom app to manage your ROMs.
More will be added as they come up and I think of them.
Configuration Guide:
The following can be done using your favorite kernel tweaking app. I use synapse.
Clock Speed:
To begin I prefer to leave my max clock speed at the stock 2.649ghz. Set min CPU as low as it can go. As of current release this is 35. For the adventurous you can try 2.88ghz. Often I bump the voltage 12mVolts on 2.88 to be safe.
To find your CPU binning run this command in terminal emulator OR look at the first page in synapse near the bottom:
su (enter)
cat /proc/cpu/msm_acpu_pvs (enter)
(Put a space between cat and /proc)
note that the number may be displayed at the beginning of the next line.
It will then display a number from 0-15. 15 being the best. Don't stress over it too much if you score low, its not the end of the world. It just means you need marginally more voltage to run each frequency.
GPU:
As of Alpha 1.3 the GPU can now be over clocked to 700mhz. This is completely optional. To verify your over clock change the GPU governor to performance and see if it spikes to 700 every so often. If it does it worked! If it doesn't you may need to set the frequency to something else then back to 700 again. It remains to be seen what kind of benefits the GPU over clock will give but it is there for those who want it. The recommended GPU governor is the stock msm adreno one. If you encounter lag in games you can try changing it to performance temporarily while playing that game. Simple on demand is a more performance oriented governor.
Governor:
Most people will probably want to just leave this set to interactive. Its a really good governor that is being actively devolped by CAF, Google, and Franco. It also hooks into Francos CPU Boosting interface. Its "smarter" than OnDemand and generally considered to offer better battery life. If you want even more smoothness some consider OnDemand to provide a bit better performance, however you may get slightly worse battery life. This is because OnDemand ramps up to max frequency when there's is load put on the CPU and then slowly works its way down. Interactive scales through the frequencies on the way up and down which saves battery life but prevents it from jumping to max speed as fast if it is needed. Simms22 recommends using the OnDemand governor with "upthreshold" set to 98 and the sampling rate set to 15000. That is the default setting of the Trinity Kernel. Mistertac made the great suggestion of turning the max screen off frequency down to 600mhz if using the interactiveX governor. This will prevent any misbehaving apps from keeping CPU ramped up while screen is off and give better idle drain. The actual number you would have to type in would be 652800 for the screen off frequency. The Conservative Governor is greatly modified by franco, Its no longer a super slow governor as it once was. It also hooks into his cpu boost control interface meaning you get cpu boost when using it. Conservative prefers the lower frequencies, however so if you find yourself having lag, you may want to switch to another.
PowerSuspend:
The only working options in V1.6 of the PowerSuspend driver are lcd_panel and Userspace which can be found in the miscellaneous section of FauxClock. I suggest leaving it at the default choice of LCD_PANEL. In FauxClock if you navigate to the cpu idle/stats area you will be presented with more options. You should see a list of C-states. For example C0: wfi and C1: retention. These are essentially low power states that the cpu can enter to save power. The higher the C number the deeper the sleep. Last I heard, the optimal configuration was to enable C0, C1, and C3. Paired with lowered Retention voltages, this should give you a very low idle drain.
Hotplugging:
Next go to hot plugging section and disable MPDecision(make poor decision) and enable intelliplug or, enable Mako Hotplug(Franco's) by either selecting user control as your hotplug, or disabling both mpdecision and intelliplug. Tweaking for them is split up below.
IntelliPlug:
FauxClock allows you to further configure intelliplug. If you want more battery set it to Conservative (4) mode which will hotplug the CPU more conservatively and save you battery, essentially this means it will use less cores if it can. For most people, leaving it on Balanced (4) mode will be fine. If you want further battery savings you can set it to EcoPerformance (2) or even EcoConservative (2) which will only use a max of 2 cores. IntelliPlug is able to use a single core unlike Mako Hotplug.
Mako Hotplug:
As far as I know the only way to tweak Mako Hotplug is either through the terminal app, synapse or through Francos app. In Francos app select cpu manager, then Hotplug Control. The main one you will need is load threshold. The default is 80. The higher this number, the more load the cpu needs to be under before it will plug the 3rd and 4th cores. 80 is actually pretty good value for most people and it will use the extra 2 cores when it really needs them. If you want to force all 4 cores on for whatever reason, you can achieve this by setting the load threshold to 0. This will effectively disable hotplugging. Of course you can always find a middle ground as well.
Via Terminal:
The sysfs interface for mako hotplug is...
/sys/devices/virtual/misc/mako_hotplug_control
To adjust... Use echo commands...
Ex:
echo 0 > /sys/devices/virtual/misc/mako_hotplug_control/load_threshold
The above command would set the load threshold to 0.
Thanks Rignfool!
Voltage Control:
Next go to voltage control. I'm a Bin 5 and I can use a 48mVolt undervolt without becoming unstable. Rember! Never set voltages to apply on boot until you have tested them for a few hours first! Most people can probably get away with a 36mVolt undervolt and nearly everyone should use at least a -24mVolt UV. Also remember that if you are running an over clock you may not want to undervolt that frequency. If you find yourself running into freezes or random reboots remove the undervolt!
Thermal:
This kernel comes with the latest IntelliThermal Driver from Faux123, which is a highly configurable thermal driver, as well as Franco's Thermal Driver which is the stock option. It is recommended you use IntelliThermal over Franco's if you wish to customize the values. Change this option under the Thermal Manager section of FauxClock. The optimal settings that I have found are 70 degrees for frequency throttle, and then somewhere between 70 and 80 for core throttle temp, depending on how safe you want to be. Stock is 80 degrees. Leave all cores checked for both frequency throttling and core throttling. I also leave on GPU Thermal Control, but if you encounter periodic lag in games you may wish to disable it. I also leave Core Thermal Control on as well, though I'm not entirely sure what it does lol. Also FYI, the sliders beneath those two options are showing you the current status of them, they are not sliders you can move.....trust me...I tried for like 5 minutes before I realized and felt like a moron....
I/O Settings:
For I/O scheduler select FIOPS. FIOPS is superior to the other schedulers in nearly every way. It is a scheduler designed for flash storage which is what our phones use. My testing has shown that 1536 is the best readahead buffer. Less or more is detrimental.
ZRam:
ZRam is something designed to optimize the ram of a device. What typically happens when a device runs out of space in ram is it is forced to use something called swap. Swap is normally a partition of a hard drive or ssd depending on what is available where the ram can copy some of it's contents to free up space. The problem is even the fastest SSDs are many many times slower than ram. Android by default doesn't have swap, however it does use a low memory killer which essentially goes through and clears out apps that are in ram to free space. ZRam makes a compressed partition inside the ram itself which then acts as a swap partition. Basically when ram begins to fill up. It compresses data and sticks it in a sealed off area of the ram. This let's it stuff way more stuff into ram than normal. To enable ZRam I use fauxclock. Trickster for whatever reason does not work. In FauxClock go to memory settings, then set the Zram size to 300mb and click apply disk size. Then turn it on and set on boot. You have now essentially boosted the available ram via compression!
VM Settings:
There are numerous tweaks you can do to the VM. For this I use FauxClock but IK Kernel Aduitor can do this as well. In FauxClock navigate to memory manager. The first thing to tweak is an option called swappiness. This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase agressiveness. I defaulted this to 10 however the default is 60. This will use more ram but give better performance. Next is VFS Cache Pressure. This controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects. The default used to be 200. Its now defaulted to 10 meaning more ram usage but more performance. Next up is dirty ratio and dirty background ratio. Some things pass through ram and stay there for a bit until they get flushed to the flash storage. These controls essentially dictate how long it should wait before flushing to the flash storage. The longer you can delay it the better performance and battery you achieve, at the cost of ram. Setting these higher will increase ram usage but increase performance. I recommend a background ratio of 30 and a dirty ratio of 50, however feel free to tweak them as you desire.
Color Control:
Next you may want to adjust Screen RGB, value, saturation, hue and contrast. WrinkleFree over in the Lean Kernel thread did extensive testing with a professional grade $1000 screen calibration tool. You can use this app http://downloads.codefi.re/savoca/kcal to control the screen.
For the most truly color accurate screen at D6500K:
Red - 248
Green - 246
Blue - 255
If you prefer a slightly cooler screen and the tuning the iPhone uses which is D7400K:
Red - 237
Green - 235
Blue - 255
More info can be found about color calibration here: http://forum.xda-developers.com/showpost.php?p=57265483&postcount=620
As for saturation. I like to turn it up a bit and make the colors pop a bit more so I leave it around 65. But quite honestly saturation,value,contrast,and hue are going to come down to tweaking it and finding what you like most. Have fun!
These settings are meant to be used as a starting point. Depending on your cpu binning and desires you will probably want to tweak these slightly to fit your needs. I'll add more as new features get added, I learn more, and I think of stuff to add Hope it helps someone!
Sweet! Good work man.
Thanks for sharing.
It does support the CM Theme Engine, right ?
x0nar said:
Thanks for sharing.
It does support the CM Theme Engine, right ?
Click to expand...
Click to collapse
Yessir using it as we speak
Seems buttery enough. Will let you know the battery life on Bliss 2.0
x0nar said:
Seems buttery enough. Will let you know the battery life on Bliss 2.0
Click to expand...
Click to collapse
Good to hear so far. Don't forget to lower your min frequency . Also I recommend either Conservative or Interactive governors ATM as they hook into the new CPU boost. I'll be posting a full configuration guide probably tomorrow. Hope you like it.
New kernel , SUPER
Fauert said:
New kernel , SUPER
Click to expand...
Click to collapse
Hope you like it! No doubt I'll be hearing many bug reports when I wake up tomorrow
I've been testing this kernel on a few different Roms without any issues at all really so everyone should be happy with it.
If anyone gets any reboots though do try and get logs [emoji106]
Xileforce said:
Good to hear so far. Don't forget to lower your min frequency . Also I recommend either Conservative or Interactive governors ATM as they hook into the new CPU boost. I'll be posting a full configuration guide probably tomorrow. Hope you like it.
Click to expand...
Click to collapse
Looking forward to your guide.
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Bestplayer55 said:
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Are you trying to do this for a Benchmark?
Using the Faux app you can first set it to Intelliplug , then Performance (4) Cores and that should get you there.
If not, try setting it that way and reboot. I've noticed with this phone that I've had to reboot a lot for my changes to actually take correctly.
Cpu2 and cpu3 are stuck in performance...
And does anyone know where in sysfs to adjust mako hotplug?
rignfool said:
Cpu2 and cpu3 are stuck in performance...
And does anyone know where in sysfs to adjust mako hotplug?
Click to expand...
Click to collapse
Gotcha.. Well once Mr Xile wakes up I'm sure he'll have something for you, not sure myself.
Mistertac said:
Gotcha.. Well once Mr Xile wakes up I'm sure he'll have something for you, not sure myself.
Click to expand...
Click to collapse
I found it... And I learned a new Linux command in the process...
Haven't done a full battery test yet, but I seem to be getting the best I've seen so far.
Bestplayer55 said:
Nice kernel. Jist one thing, may be is a feature i dnt know but only 2 cores online when i tried tu push all cores on, just stay with 2 or 1 core on. I changed the hotplug but still the same
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Currently if you disable all hotplugs or if you use fauxclock to set it to usercontrol that enables Franco's mako hotplug. Thats why in an app such as faux you cannot easily force two cores online. However if you use Franco's updster app you can go to CPU manager then hotplug control and if you lower the load threshold it will hotplug more frequently. Setting this to 0 will force all cores online. Additionally as mistertac said. Using b intelliplug on either performance(4) mode or balanced(4) will use all 4 cores pretty frequently as well.

Categories

Resources