RIN Kernel for D855/P/K
Close to stock with some sugar added ... delicous!
Hey guys and girls,
you may have seen my unified stock kernel thread already (or may not, but doesn't matter). This kernel is my attempt to build up on the fixed source and add some additional features for us mod lovers to thinker with and to personalize your device to your usage. For now, I'll keep it close to my stock source and just pull some additional features and fixes in, but not to much. That may change in the future (maybe even soon), but for now, I'll stick to that paradigm.
First of, DISCLAIMER, I'm not responsible for bricked devices, dead unicorns, rainbows with missing colors, world war, nose bleed, void warranty (you know that already, don't you? your warranty is void now and it's your fault ) or any other harm happening to your device, you or people around you!
What does it serve? (Features)
Built with sabermod 4.9 toolchain
IO Schedulers
BFQ
CFQ
DEADLINE
FIFO
FIOPS
NOOP
ROW (default)
SIO
TRIPNDROID
VR
ZEN
Governors
Adaptive
Conservative
DanceDance
Intelliminmax
Interactive (default)
Lagfree
Lionheart
OnDemand
Performance
Powersave
SmartassV2
Userspace
Wheatley
Smartmax
TCP Congestion Algorithms
BIC
Westwood+
Vegas
Veno
Yeah
HTCP
Cubic (default)
Reno
init.d support
root support
Voltage control
SoundControl
Intelliplug
OC to 2.7GHz and UC support
Cpu limiter
2-Way Call Recording support
Simple GPU Algorithm
Simple_ondemand GPU Governor fixed
exFat support
ntfs support (bugged)
F2FS support
Enhanced Oversharpening fix (set to 22)
DriveDroid support
KSM
android logger sysfs toggle (disabled by default)
Many under the hood fixes
Stability
More to come
How to apply it? (Installation)
IMPORTANT: Read through all the requirements, steps and warnings before you do anything, if any requirement doesn't match or you don't know what one or more of the steps below mean or do, ask before you do any of them, if you don't know how all the steps can be done, let it be, I warned you, if you don't do and something bad happens, I'll just laugh at you!!
Requirements? Yes!
D855/P/K
Custom Recovery
Stock or Stock based ROM (no AOSP)
How to flash the kernel?
Download zip
Place on internal or external SD
Reboot to recovery
Choose install zip
Search for the downloaded zip
Confirm flashing
Wipe cache
Reboot
Have fun
How to boot unbumped kernels?
Only needed for the img files prior version 1.0
Plugin your device to the PC
Open a terminal and execute
Code:
adb shell # open a shell over adb
su # change to superuser
dd if=/dev/block/platform/msm_sdcc.1/by-name/laf of=/storage/external_SD/stock-laf.img # backup the stock download mode to your external sd
exit # exit the superuser shell
exit # exit the adb shell
adb pull /storage/external_SD/stock-laf.img . # backup the download mode image from you external sd to the PC
adb shell
su
dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/laf # remove the stock download mode
BEWARE, THIS WILL REMOVE YOUR DOWNLOAD MODE!!! YOU WON'T BE ABLE TO FLASH KDZ FILES BEFORE YOU RESTORED IT!!!!
Turn off the device completely, plug in the USB-cable, if you pulled it out and start the device by holding vol up + power till you see some white text on the screen, fastboot should be written somewhere on the screen, afterwards execute the following command on the PC (while in the directory you've downloaded the kernel image to).
D855:
Code:
fastboot boot D855-rin-1.6.img # boot the kernel
F400:
Code:
fastboot boot F400-rin-1.6.img # boot the kernel
BEWARE, NEVER USE FLASH AT FASTBOOT ONLY BOOT, IT WILL TRIGGER SECURITY OF THE LOCKED BOOTLOADER AND YOU WON'T BE ABLE TO BOOT ANYMORE!!!!
You're done now and booted to the custom kernel!
How to make sure you're running the kernel?
To check if you properly booted into the kernel execute this in the command line (terminal emulater or through adb shell):
Code:
cat /proc/version
it should show
Code:
Linux version 3.4.0-rin-g58903a9-dirty ([email protected]) (gcc version 4.9.1 20140710 (prerelease) (crosstool-NG linaro-1.13.1+bzr2673 - Linaro GCC 2014.07 - Cortex-A15) ) #53 SMP PREEMPT Thu Aug 14 13:26:42 CEST 2014
Once more a warning READ IT!!:
BEWARE, when you reboot you'll boot to the stock kernel, you'll have to boot the custom kernel over fastboot every time, when you boot normally, you'll be on the stock kernel, this won't lead to issues, but you'll miss the benefits of this kernel, I know that's not optimal, but the best we can get with the locked bootloader.
How to restore Download mode?
Code:
adb shell # open a shell over adb
su # change to superuser
dd if=/storage/external_SD/stock-laf.img of=/dev/block/platform/msm_sdcc.1/by-name/laf # restore the stock download mode from the backup on your external sd
Changes? (Changelog)
12.12.2014/1.2
F400 support added
F2FS support
NTFS fixed
intellimm added
intelliplug readded
intelliactive and intellidemand removed
loads of upstream changes from V20C F400 Source
V20D ramdisk
boot partition clean up before flashing kernel in updater-script
28.11.2014/1.1
selinuxfs storage fix
Build in KSM module
26.11.2014/1.0
Initial Release
Full list of commits can be found here
Where to get it from? (Download)
google drive | AndroidFileHost | dev host
Let me test!! (Beta Testing Community)
Google+ LG G3 Beta Testing Community
Show me the so(u)rce(ry)! (Source Code)
https://github.com/tectas/android_kernel_lge_msm8974ac/tree/rin-lollipop
Donators (huge thanks, you're simply great )
@Toneman07
@Helloworld294
@shaarky
@Dreamxtreme
@guyd
@mosincredible
@tobitege
@AndroidUzer
Credits
XDA
Google
LG
@HolyAngel
@faux123
@KAsp3rd
@myfluxi
@trialsrider1
@Skin1980
@Lord Boeffla
@GuneetAtwal
@DooMLoRD
If you like my work, please show your appreciation by pressing the thanks button, if you want to do more, i've nothing against a little donation, but I'm as happy when you just thank me by pressing the button
XDA:DevDB Information
Rin Kernel, Kernel for the LG G3
Contributors
Tectas
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 1.2
Stable Release Date: 2014-12-12
Created 2014-11-26
Last Updated 2015-01-09
Any questions? (FAQ)
How can I toggle the android logger?
File Explorer Method:
Go with a root explorer to /sys/kernel/logger_mode and open the logger_mode file.
Remove everything inside that file and put the number 1 to enable and 0 to disable the logger into it and save the file.
Terminal Method:
Enable the logger
Code:
echo 1 > /sys/kernel/logger_mode/logger_mode
Disable the logger
Code:
echo 0 > /sys/kernel/logger_mode/logger_mode
My internal sd is not working, what to do?
Open adb shell or a terminal emulator and type
Code:
su
restorecon -v -R /data/media
How to boot to recovery via button combo on F400 variants?
Power off.
Press power + volume down keys.
Wait for LG logo and then release the buttons.
Immediately press volume down + volume up buttons.
Release the keys once the hard reset menu is being displayed on your LG G3.
Thanks to @Eagledig for the method and @KingOfDope for pointing me to it.
Whats the difference between this one and 1.8.5 as that works on lol as well
Dreamxtreme said:
Whats the difference between this one and 1.8.5 as that works on lol as well
Click to expand...
Click to collapse
Because there where the reboot problems, I've started from scratch and just pulled the most important stuff in for now, governors, fixes, tcp algorithms, simple gpu algorithm, schedulers, disabled logger, ntfs, exfat, OC, UC, UV, SoundControl, 2-Way call recording, Drive Droid support and some additional enhancements.
It's not as feature rich as the old 1.8.5 was, I'm adding the features step by step again to this, but it's now stable for all, that's why I also started from scratch with the version number, it won't correlate from now on with the kitkat one.
Tectas said:
Because there where the reboot problems, I've started from scratch and just pulled the most important stuff in for now, governors, fixes, tcp algorithms, simple gpu algorithm, schedulers, disabled logger, ntfs, exfat, OC, UC, UV, SoundControl, 2-Way call recording, Drive Droid support and some additional enhancements.
It's not as feature rich as the old 1.8.5 was, I'm adding the features step by step again to this, but it's now stable for all, that's why I also started from scratch with the version number, it won't correlate from now on with the kitkat one.
Click to expand...
Click to collapse
Cool. What's missing just so I know I'm about to flash loli now
@Tectas maybe you can create an aroma installer to chose undervolting(over the whole line) and to set custom hotplug, governors, frequencies as default(init.d script). when it is packed(even more) with features
Dreamxtreme said:
Cool. What's missing just so I know I'm about to flash loli now
Click to expand...
Click to collapse
The intelli thermal , intelliplug, memutil enhancements, high priority workqueue, upstream backport for workqueue, AIO optimizations, sabermod optimized flags and some small additional stuff
suljo94 said:
@ tectas maybe you can create an aroma installer to chose undervolting(over the whole line and to set custom hotplug, governors, frequencies as default(init.d script)
Click to expand...
Click to collapse
Possible at some stuff, but I think it's more convenient with doing this after boot per app and to make it stick with set on boot afterwards, that way you only have to change it after a factory reset, with aroma you would have to set it at every flash.
Tectas said:
Possible at some stuff, but I think it's more convenient with doing this after boot per app and to make it stick with set on boot afterwards, that way you only have to change it after a factory reset, with aroma you would have to set it at every flash.
Click to expand...
Click to collapse
I was just ssaying it because my trickster sometimes forgets to set it at boot/flash (1/2 of the time)
Will the logcat still be available?
Logcat is always available, the output is just disabled by default. Go to /sys/kernel/logger_mode, open the file logger_mode, remove the stuff what's in it and write and safe a 1 into it (or the fast way, echo 1 > /sys/kernel/logger_mode/logger_mode executed in a terminal or through adb shell) and logcat output will be enabled again, to disable it, do the same with a 0 instead of the 1.
Sent from my LG-D855
It was the only way to be done properly imo! Great move. Fix one thing per time. Well ntfs support seems broken in otg. I tried 2 sticks and 1 hdd.
**I am known benchmark junkie too. The Antutu score was really low. 24.000 points. Stock kernel delivers 39-40k.
nikosblade said:
It was the only way to be done properly imo! Great move. Fix one thing per time. Well ntfs support seems broken in otg. I tried 2 sticks and 1 hdd.
**I am known benchmark junkie too. The Antutu score was really low. 24.000 points. Stock kernel delivers 39-40k.
Click to expand...
Click to collapse
which setting did you use while benchmarking, because i got 40700 with the temp thing holding be back(performannce settings with overclock)
This version 1.0 is Official no test??
jojobans said:
This version 1.0 is Official no test??
Click to expand...
Click to collapse
Yes it is... =)
nikosblade said:
It was the only way to be done properly imo! Great move. Fix one thing per time. Well ntfs support seems broken in otg. I tried 2 sticks and 1 hdd.
**I am known benchmark junkie too. The Antutu score was really low. 24.000 points. Stock kernel delivers 39-40k.
Click to expand...
Click to collapse
Did you maybe run the benchmark directly after boot or some time off usage?
Probably it was throttled as you benchmarked it.
Sent from my LG-D855
nikosblade said:
It was the only way to be done properly imo! Great move. Fix one thing per time. Well ntfs support seems broken in otg. I tried 2 sticks and 1 hdd.
**I am known benchmark junkie too. The Antutu score was really low. 24.000 points. Stock kernel delivers 39-40k.
Click to expand...
Click to collapse
Tectas said:
Did you maybe run the benchmark directly after boot or some time off usage?
Probably it was throttled as you benchmarked it.
Click to expand...
Click to collapse
Probably, 'cause I got 41,585 using the kernel, smartassv2 w/o OC... =)
Sorry for the noob question... What app would you recommend for controlling sound? (as I read "soundcontrol" in features...) Thanks!
pblasi said:
Sorry for the noob question... What app would you recommend for controlling sound? (as I read "soundcontrol" in features...) Thanks!
Click to expand...
Click to collapse
Fauxsound...? =)
Sent from my LG-D855 using Tapatalk
pblasi said:
Sorry for the noob question... What app would you recommend for controlling sound? (as I read "soundcontrol" in features...) Thanks!
Click to expand...
Click to collapse
it is just to increase the volume even more.
trickstermod(donation version)
fauxsound(paid app)
Related
_motley kernel for the Prime
Disclaimer: You know the gig...I am not responsible for damaging your device or voiding your warranty. Play at your own risk!
New version released for testing on 4.2.2 ROMs I see popping up since this is likely our future unless Asus releases something. I have been dev'ing for the N4 and N7 lately, so I haven't had a lot of time to keep up with the Prime. However, I wanted to stop by to share the kernel I built over the course of the last two nights for my own device.
Features:
Forked from namidairo (thanks!)
OC to 1.7GHz
GPU OC to 600MHz - configurable from 520-650MHz (see below)
Voltage Control (use Trickster or System Tuner)
Removed system_mode from Asus - boots to 1.4GHz - control with standard apps (use Trickster or System Tuner)
FSYNC - 3 modes (see below) (use Trickster)
Linaro built with optimizations
Kernel log spam reduced - important for our crappy eMMC
optimized ARM RWSEM algorithm
Other misc tweaks (see github)
Build 24 (beta)
Initial release for 4.2.2
AnyKernel install works on 32GB Primes only
Added blob based installs for CM 10.1 and PA. Read notes carefully below when choosing an install zip.
View attachment motley_anykernel_tf201_build_24.zip - 32 GB Primes ONLY (any 4.2.2 custom ROM)
View attachment motley_b24_CM.zip.zip - CM10.1 based ROMs only (blob based install for 32/64GB Primes)
View attachment motley_b24_AOSP_PA.zip - PA/AOSP 4.2.2 ROMs only (blob based install for 32/64GB Primes) (only tested on PA thus far! Using PA ramdisk as donor.)
Git repo:
https://github.com/motley-git/android_kernel_asus_tf201
GPU OC
Examples:
Code:
echo 520 > /sys/devices/system/cpu/cpu0/cpufreq/gpu_oc
Code:
echo 650 > /sys/devices/system/cpu/cpu0/cpufreq/gpu_oc
FSYNC Control
Notes: I thought about combining these options, but many kernel apps already support these two options. So, I have them both and they can be controlled in combination to give us the 3 modes. If you set fsync_enabled = 0 it will be OFF regardless of how Dyn_fsync_active is set.
3 Modes:
Dynamic (default in b35 and higher)- fsync is asynchronous when screen is on, when screen is off it is committed synchronously
dynamic fsync ON
fsync ON
Code:
echo 1 > /sys/kernel/dyn_fsync/Dyn_fsync_active
echo 1 > /sys/class/misc/fsynccontrol/fsync_enabled
Off (best performance, less safe) - fsync is always asynchronous (b32 and prior builds)
dynamic fsync OFF
fsync OFF
Code:
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
echo 0 > /sys/class/misc/fsynccontrol/fsync_enabled
Stock (safest) - fsync is always committed synchronously
dynamic fsync OFF
fsync ON
Code:
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
echo 1 > /sys/class/misc/fsynccontrol/fsync_enabled
There is a lot of info out there on fsync, that will not be discussed here. I have run fsync off on several devices for awhile now and haven't experienced any issues. If you are using a device that is not stable and crashes alot, I recommend enabling it via init.d or script manager on boot.
See all my old tf201 kernel versions for ICS here:
Requirements (please read carefully!)
alpha version is stable for most, but changes often until we hit a good stable version. Let me know how it works!
Do a CWM backup so you can restore your boot.img and ROM if necessary!
64GB tabs please use blob based install with ramdisk. Anykernel method may not work on 64GB tablets
Recommend 1.6 or 1.7GHz. I have scored 14300+ on Antutu with 1.7GHz. 1.8 is just not necessary IMO and generates too much heat.
ICS ROMs only
You must be rooted with busybox. Busybox is used for init.d support.
You must be unlocked (Asus Unlock Tool provided on their web site)
Official CWM with latest update (see http://forum.xda-developers.com/showthread.php?t=1533697)
You should have your current full and a stock ROM including kernel on your sdcard (just in case). This is always a good idea anyhow.
Beware of third party tweaks that may conflict. If you have installed another app that will load conflicting kernel modules or provide overclocking capability for the stock kernel, please uninstall or disable this on boot before you install this kernel. For example, if you are using ATP Tweaks and are loading the CFQ or SIO schedulerd at boot, it can cause a crash as soon as the conflicting kernel module loads into memory. This kernel now includes the many features that folks were previously using kernel modules for. Since this kernel supports these features natively, you know longer need to load a kernel module manually or via a third party application unless the feature is not listed above. For example, if you use CIFS Manager, you should remove the requirement to load the CIFS kernel module in the settings as it is no longer needed with this kernel.
Stock/AOKP versions
Still using stock broadcom WiFi drivers (module built by me match stock modules)
Still use same scaling scripts from before (cpu3.sh etc.) or installed 2.6.11 first and then flash this kernel to be sure you have them right.
Same system modes apply as before (system_mode=3 for 1.6GHz, system_mode=4 for 1.7GHz, system_mode=5 for 1.8GHz etc.)
Generic kernel versions
Supports Gummy, Team EOS, and CM9 since they have the same WiFi driver implemented in their device trees.
No need to use an OC app (SetCPU, No-frills etc.) to set the clock.
WiFi driver is built-in (no kernel modules) using opensource broadcom drivers (nl80211)
KSM=y (ROM needs to enable KSM in dalvik and set scan in the init file like in CM9)
Overclock - needs init.d to be functional to run a init.d script on boot (see sample script below).
Same system modes apply as before (system_mode=3 for 1.6GHz, system_mode=4 for 1.7GHz, system_mode=5 for 1.8GHz etc.)
If you don't get deep sleep, make sure you have implemented the init.d script properly. "echo N > /sys/module/cpu_tegra3/parameters/no_lp" seems to be necessary on generic ROMs to get the proper deep sleep.
"Lite" kernel
This kernel version has been kept very close to stock form, except for OC and some basic features. The kernel won't be updated often, only when Asus releases new versions or an important fixable bug is discovered.
"Lite" Features
Based on stock Asus v9.4.2.28 base
Simple I/O scheduler as the default
OC from 1.5 to 1.7GHz (system_mode 3 = 1.5GHz, 4 = 1.6GHz, 5 = 1.7GHz)
Compiler optimizations (-o2), ARM toolchain - Code Sourcery Lite 2010.09-51
initramfs changes from stock - init.d support (your ROM must have the /system/etc/init.d folder and busybox) and the default.prop has been updated with ro.secure=0 (for "adb remount")
CIFS support (built-in, no need for kernel module)
NTFS/exFAT modules are provided in stock ramdisk - uses stock Tuxera modules. See http://www.tuxera.com/) - modules are loaded during init automatically with included initramfs.
Kernel compression mode LZMA
Input devices - PS3 (stock), XBox (CONFIG_INPUT_FF_MEMLESS and CONFIG_JOYSTICK_XPAD_FF), Other input device support (CONFIG_HID_APPLE, CONFIG_INPUT_MOUSEDEV, CONFIG_HID_LOGITECH)
Networking/VPN - in addition to stock: CONFIG_L2TP, CONFIG_IP_ADVANCED_ROUTER, CONFIG_NET_IPIP, CONFIG_NET_IPGRE, CONFIG_IP_MULTIPLE_TABLES, CONFIG_INET_AH, CONFIG_INET_IPCOMP, CONFIG_INET_XFRM_TUNNEL, CONFIG_INET_XFRM_MODE_TUNNEL, CONFIG_INET_XFRM_MODE_BEET, CONFIG_L2TP_DEBUGFS, CONFIG_L2TP_V3, CONFIG_L2TP_IP, CONFIG_L2TP_ETH, CONFIG_PPP_MULTILINK, CONFIG_PPPOE
v1.0.0
Stock ROM with ramdisk and 1.7GHz heat script (init.d added, unsecured ramdisk)
CWM flashable: View attachment motley_lite_stock_full_kernel_and_ramdisk_1.0.0_build_1.zip
(Stock and stock-based ROMs only - 32GB and 64GB primes)
Anykernel for Stock or AOKP (won't touch your ramdisk, heat, or init.d scripts)
CWM flashable: View attachment motley_lite_anykernel_stock_and_AOKP_1.0.0_build_1.zip
(32GB stock-based ROMs or AOKP primes only!)
AOKP MS 6.1 with full ramdisk and 1.7 init.d OC script
CWM flashable: View attachment motley_lite_v1.0.0b_build_1_for_AOKP_MS_6.1.zip (updated zip 7/16/2012 10:40pm - will OC to 1.7 on boot, WiFi is working for me)
(AOKP only - 32GB and 64GB primes)
Generic Anykernel for EOS, Gummy, CM9 (won't touch your ramdisk or init.d scripts)
CWM flashable: View attachment motley_lite_generic_anykernel_v1.0.0_build_2.zip
(32GB EOS, Gummy, CM9 primes only!)
Alpha 3.x kernel
A more experimental kernel, with stable versions along the way.
View attachment 986646
Features - includes alpha
Asus v9.4.2.28 base with Asus keyboard dock support
Overclocking options: 1.6, 1.7, or 1.8GHz performance mode (choice of Asus modes)
Compiler optimizations (-o2)
I/O schedulers - CFQ (default), SIO, NOOP, and deadline
ZRAM (must be enabled by a script...see example below)
MMC drivers back-ported from Nvidia 3.1 kernel
Governors - optimized Interactive (default), Performance, On Demand, Power Saver
initramfs changes from stock - init.d support (your ROM must have the /system/etc/init.d folder and busybox) and the default.prop has been updated with ro.secure=0 (for "adb remount")
CIFS support (built-in, no need for kernel module)
NTFS/exFAT modules are provided in stock ramdisk - uses stock Tuxera modules. See http://www.tuxera.com/) - modules are loaded during init automatically with included initramfs.
Kernel compression mode LZMA
Userspace voltage control/undervolting (UV)- experimental, don't set on boot until you test your settings (use SetCPU or other voltage tweaking tool) (thanks richardtrip)
Input devices - PS3 (stock), XBox (CONFIG_INPUT_FF_MEMLESS and CONFIG_JOYSTICK_XPAD_FF), Other input device support (CONFIG_HID_APPLE, CONFIG_INPUT_MOUSEDEV, CONFIG_HID_LOGITECH)
Networking/VPN - in addition to stock: CONFIG_L2TP, CONFIG_IP_ADVANCED_ROUTER, CONFIG_NET_IPIP, CONFIG_NET_IPGRE, CONFIG_IP_MULTIPLE_TABLES, CONFIG_INET_AH, CONFIG_INET_IPCOMP, CONFIG_INET_XFRM_TUNNEL, CONFIG_INET_XFRM_MODE_TUNNEL, CONFIG_INET_XFRM_MODE_BEET, CONFIG_L2TP_DEBUGFS, CONFIG_L2TP_V3, CONFIG_L2TP_IP, CONFIG_L2TP_ETH, CONFIG_PPP_MULTILINK, CONFIG_PPPOE
MMC - CONFIG_ZIMMER by HTC Studio Engineering (reference OneX kernel) - Experimental - can't find the source of this hack, so it may be an HTC original or a variant of another hack upstream. It increases vm swappiness to 100 by default to force swapping of dead RAM. The theory is to clear out the stale RAM and open up the RAM for something more useful. While this may be counter-intuitive to I/O performance since swapping equates to more disk i/o, the code changes also implement some changes to the block, fs, and mm portions of the kernel. Essentially, from what I can tell, it flags and handles disk operations (aka "bios") differently if they are involved in swap operations (going to or coming from swap). A "bio" is essentially a manifest of an ongoing I/O block device operation, what sectors and memory locations it contains etc. Once the RAM is freed up, I have also been increasing the Dalvik vm RAM settings in the build.prop (see Demandarin's build.prop post) to allow for more RAM consumption.
Turned off GENTLE_FAIR_SLEEPERS - Theoretically should improve UI performance on Android.
ARM toolchain - Code Sourcery Lite 2010.09-51
Many other performance tweaks and many Nvidia patches/bug fixes applied beyond the stock version. See the release notes or github for details.
alpha v3.0.7.0 - fix deep sleep issue
Stock ROM with ramdisk and 1.7GHz heat script (init.d added, unsecured ramdisk)
CWM flashable: View attachment motley_stock_full_kernel_and_ramdisk_3.0.7.0_b302.zip(build 302)
(Stock and stock-based ROMs only - 32GB and 64GB primes)
AOKP build 40 with full ramdisk and 1.7 init.d OC script
CWM flashable: View attachment z_motley_tfp_v3.0.7.0_b302_for_AOKP_build_40_1.7GHz.zip(build 302)
(AOKP only - 32GB and 64GB primes)
Anykernel for Stock or AOKP (won't touch your ramdisk, heat, or init.d scripts)
CWM flashable: View attachment z_motley_anykernel_stock_and_AOKP_3.0.7.0_b302.zip (build 302)
(32GB stock-based ROMs or AOKP primes only!)
Generic Anykernel for EOS, Gummy, CM9 (won't touch your ramdisk or init.d scripts)
CWM flashable: View attachment motley_tfp_anykernel_generic_3.0.7.0_b303.zip (build 303)
(32GB EOS, Gummy, CM9 primes only!)
alpha v3.0.6.10 - fixed wifi issues in 3.0.6.9
Stock ROM with ramdisk and 1.7GHz heat script (init.d added, unsecured ramdisk)
CWM flashable: View attachment motley_stock_full_kernel_and_ramdisk_3.0.6.10.zip (build 247)
(Stock and stock-based ROMs only - 32GB and 64GB primes)
AOKP build 40 with full ramdisk and 1.7 init.d OC script
CWM flashable: View attachment z_motley_tfp_v3.0.6.10_for_AOKP_build_40_1.7GHz.zip (build 247)
(AOKP only - 32GB and 64GB primes)
Anykernel for Stock or AOKP (won't touch your ramdisk, heat, or init.d scripts)
CWM flashable:View attachment z_motley_anykernel_stock_and_AOKP_3.0.6.10.zip (build 247)
(32GB stock-based ROMs or AOKP primes only!)
Generic Anykernel for EOS, Gummy, CM9 (won't touch your ramdisk or init.d scripts)
CWM flashable: View attachment motley_tfp_anykernel_generic_3.0.6.10.zip (build 250)
(32GB EOS, Gummy, CM9 primes only!)
Older alpha 3.0.x versions can be found in post 803
Many are stable on v3.0.5 if the above versions don't work for you.
v2.6.11 build 100 2012-04-22
Asus stock-based ROMs (aroma installer): View attachment motley_tfp_2.6.11_Turge_installer.zip
Flash with CWM to run the installer and pick your heat!
Other ROMs: see alpha version 3.0.x above as previous generic kernels discontinued due to wifi incompatibility other than AOKP.
Installation
1. Backup stock boot.img (just do a full backup with the latest CWM)
See http://forum.xda-developers.com/showthread.php?t=1533697
2. Flash the proper zip with CWM
--------------------------------------------------------------------------------------------------------------------------------------
If you want to set your modes and play with the scripts manually as before see this post:
http://forum.xda-developers.com/showpost.php?p=24565491&postcount=278)
Don't set your core_cap_level higher than 1400mV as it is the highest core voltage available.
system_mode numbers (3=1.6GHz, 4=1.7GHz, 5=1.8GHz)
--------------------------------------------------------------------------------------------------------------------------------------
Going back to stock:
If you want to revert to stock boot image including stock kernel from your backup
Use your CWM backup. You can do a selective restore and just restore your boot.img
If you want to revert back to your Asus scaling scripts
Flash the stock scaling script: View attachment Stock_scripts_1_to_5.zip
--------------------------------------------------------------------------------------------------------------------------------------
Github rep: https://github.com/motley-git/TF201-Kernel
--------------------------------------------------------------------------------------------------------------------------------------
Past versions
v2.5.8 build 71 (GPU Love) 2012-04-14
CWM flashable zip: v2.5.8
Aroma installer with heat scripts: View attachment motley_tfp_2.5.8_Turge_installer.zip
v2.4 build 34 (Neon glitter) 2012-04-06
CWM flashable zip: View attachment 986645
v2.3 build 25 (Need for speed)
CWM flashable zip: View attachment 978413
v2.2 build 23 (No fools, more Asus Tweaks)
CWM flashable zip: View attachment 976821
Thanks to:
Asus for the awesome machine and kernel source
viperboy, jermaine151, MasterZen88, di11igaf, Diamondback and shaky156 for sharing their knowledge and tools
raman84 (RaYmAn) and others for the blob tools that work on transformer
Turge - awesome Aroma installer base creation for us!
amarullz - Aroma Installer
Doktaphex - touch recovery thread used by Turge for the touchscreen components.
AnyKernel - Koush and TeamDRH (and Jermaine for bringing it to the Prime)
All of those that have helped with testing! Special thanks to CekMTL for his troubleshooting skills and Deathmo for really going above and beyond to help out.
Sample overclock init.d script example (needed for AOKP or generic roms). AOKP uses /system/etc/init.d/cpu_overclock, so I recommend you edit that file for AOKP since it is already working.
Code:
#!/system/bin/sh
echo 4 > /sys/module/cpu_tegra/parameters/system_mode
echo 1350 > /sys/kernel/tegra_cap/core_cap_level
echo 0 > /sys/kernel/tegra_cap/core_cap_state
echo 0 > /sys/devices/platform/tegra_grhost/enable_3d_scaling
echo 10 > /sys/module/cpu_tegra3/parameters/mp_overhead
echo 9999999 > /sys/module/cpu_tegra/parameters/pwr_cap_limit_1
echo 9999999 > /sys/module/cpu_tegra/parameters/pwr_cap_limit_2
echo 9999999 > /sys/module/cpu_tegra/parameters/pwr_cap_limit_3
echo 9999999 > /sys/module/cpu_tegra/parameters/pwr_cap_limit_4
setprop power.saving.mode 1
setprop persist.tegra.NV_FPSLIMIT 0
setprop persist.sys.NV_FPSLIMIT 0
setprop persist.sys.NV_POWERMODE 0
echo 1700000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo N > /sys/module/cpu_tegra3/parameters/no_lp
Sample ZRAM init script (thanks show-p1984) (needs to be run as "su" using script manager):
Code:
#!/system/bin/sh
# auto zram activation init script with busybox search
# by show-p1984
echo "[90ZRAM]: Firing up /system/etc/init.d/90zram";
if [ ! -e /sys/block/zram0/disksize ] ; then
echo "[90ZRAM]: ERROR unable to find /sys/block/zram0/disksize";
echo "[90ZRAM]: Is this a ZRAM kernel?";
echo "[90ZRAM]: ZRAM NOT ACTIVATED. (404)";
else
#find busybox in /system
bblocation=$(find /system/ -name 'busybox')
if [ -n "$bblocation" ] && [ -e "$bblocation" ] ; then
echo "[90ZRAM]: busybox found in:" $bblocation;
echo "[90ZRAM]: Setting ZRAM disksize.";
echo $((100*1024*1024)) > /sys/block/zram0/disksize
echo "[90ZRAM]: Starting ZRAM...";
bblocation=${bblocation%/*}
cd $bblocation
./busybox mkswap /dev/block/zram0
./busybox swapon /dev/block/zram0
echo "[90ZRAM]: ZRAM activated.";
else
echo "[90ZRAM]: ERROR! busybox not found!";
echo "[90ZRAM]: Is busybox installed? Symlinks set?";
echo "[90ZRAM]: ZRAM NOT ACTIVATED. (404)";
fi
fi
nice work man, i was getting ready to implement this myself. they made that pretty easy right.. at first i thought it was gonna be a pita until i looked a little deeper and saw most of what we need is already there.
di11igaf said:
nice work man, i was getting ready to implement this myself. they made that pretty easy right.. at first i thought it was gonna be a pita until i looked a little deeper and saw most of what we need is already there.
Click to expand...
Click to collapse
Thanks, yeah not too bad. There is a lot more "nanny" code in tegra 3 than in tegra 2. Tempted to tweak some of it, but decided it was best to take baby steps! Kind of hoping we can get a community version going once some of us do some study and get our feet wet.
Cheers
is it possible to convert this into an apk form like EZOverclock? where there is no need for unlocking and CWM. all needed is rooted device and installing the app. just curious
great work though. plus u mentioning 1.8Ghz might be the final straw needed to push me over the edge to unlock..lol cant wait to see it implemented. I'm holding back so badly with all this new developement coming out for prime. its really starting to blow up in here and temptation to unlock is eating me up
So like a retard I flashed boot.img.zip instead of extracting the boot.img out first
-_-
It is entirely my fault but any help would be appreciated
My TP hangs at he Eee Pad logo
Any hopes of holding vol down + power button sends me straight to wipe data or fastboot menu (I CANT ACCESS THE RECOVERY TRIED 99999 TIMES TO DO IT WITH VOL DOWN + POWER)
Tried doing the following:
fastboot -i 0x0b05 erase recovery
fastboot -i 0x0b05 flash recovery tfp_CWM5_androidroot.blob
fastboot -i 0x0b05 erase boot
fastboot -i 0x0b05 flash boot boot.img (original stock boot.img found here http://forum.xda-developers.com/showthread.php?t=1514088
Still it hangs at Eee Pad logo if I don't do anything. If I tried the Volume down + power goes straight back to wipe data or fastboot.
ANY thoughts?
tHANKS
tassadar898 said:
So like a retard I flashed boot.img.zip instead of extracting the boot.img out first
-_-
It is entirely my fault but any help would be appreciated
My TP hangs at he Eee Pad logo
Any hopes of holding vol down + power button sends me straight to wipe data or fastboot menu (I CANT ACCESS THE RECOVERY TRIED 99999 TIMES TO DO IT WITH VOL DOWN + POWER)
Tried doing the following:
fastboot -i 0x0b05 erase recovery
fastboot -i 0x0b05 flash recovery tfp_CWM5_androidroot.blob
fastboot -i 0x0b05 erase boot
fastboot -i 0x0b05 flash boot boot.img (original stock boot.img found here http://forum.xda-developers.com/showthread.php?t=1514088
Still it hangs at Eee Pad logo if I don't do anything. If I tried the Volume down + power goes straight back to wipe data or fastboot.
ANY thoughts?
tHANKS
Click to expand...
Click to collapse
Try using the following commands in APX mode. To access APX mode:
1. Undock transformer prime
2. Hold power+ up key.
3. Install naked drivers (http://forum.xda-developers.com/showthread.php?t=1514942)
4. Screen will be black but once connected to a pc you should see it in device manager.
Nice stuff! Flashed and all is well but 1.7ghz plus antutu. Equals sad prime. 2 reboots and one crash to homescreen (it didn't force close though)
Balanced works fine.
Edit: anything that is cpu intensive makes my prime sad reboot time lol. Meh I probably need more volts.
Sent from my Transformer Prime TF201 using Tapatalk
Good job motley!!
tassadar898 said:
So like a retard I flashed boot.img.zip instead of extracting the boot.img out first
-_-
It is entirely my fault but any help would be appreciated
My TP hangs at he Eee Pad logo
Any hopes of holding vol down + power button sends me straight to wipe data or fastboot menu (I CANT ACCESS THE RECOVERY TRIED 99999 TIMES TO DO IT WITH VOL DOWN + POWER)
Tried doing the following:
fastboot -i 0x0b05 erase recovery
fastboot -i 0x0b05 flash recovery tfp_CWM5_androidroot.blob
fastboot -i 0x0b05 erase boot
fastboot -i 0x0b05 flash boot boot.img (original stock boot.img found here http://forum.xda-developers.com/showthread.php?t=1514088
Still it hangs at Eee Pad logo if I don't do anything. If I tried the Volume down + power goes straight back to wipe data or fastboot.
ANY thoughts?
tHANKS
Click to expand...
Click to collapse
You need to repack the correct boot.img as a blob file. Fastboot doesnot work the way you use it.
Fastboot can't flash raw imgs, you need to repack them before as a blob file.
Search goolge for blobtools, there is a thread on xda with both linux and a windows version.
And now @OP
I guess the kernel itself is based on the outdated ASUS source?
And for the next build, maybe make a verion where you overclock the 1.6GHz mode instead of the Performance mode?
Most (if not all) who would use such a kernel, use some kind of tool/app/rom which can access the 1.6 Ghz mode anyway, so you are better of tweaking the 1.6Ghz mode
looks promising. will wait till for the updated version before i start playing with the kernel.
but always appreciate the work bruh thanks.
Diamondback said:
And now @OP
I guess the kernel itself is based on the outdated ASUS source?
And for the next build, maybe make a verion where you overclock the 1.6GHz mode instead of the Performance mode?
Most (if not all) who would use such a kernel, use some kind of tool/app/rom which can access the 1.6 Ghz mode anyway, so you are better of tweaking the 1.6Ghz mode
Click to expand...
Click to collapse
the2rrell said:
looks promising. will wait till for the updated version before i start playing with the kernel.
but always appreciate the work bruh thanks.
Click to expand...
Click to collapse
Correct me if I'm wrong, but the kernel versions are identical and the only things that changed were the host that the new kernel was compiled on and the appended string on the end. It sounds to me like they just built the same source with a different config.
Am I missing something???
jermaine151 said:
Guys, why does everyone think that there's a new kernel version and that they will wait for the source to drop? Correct me if I'm wrong, but the kernel versions are identical and the only things that changed were the host that the new kernel was compiled on and the appended string on the end. It sounds to me like they just built the same source with a different config.
Am I missing something???
Click to expand...
Click to collapse
First: I have no idea about kernels or building them from source
I only see that we got several kernel upgrades without getting new kernel source from ASUS.
So I guessed that they have newer source, correct me if I am wrong here
Diamondback said:
First: I have no idea about kernels or building them from source
I only see that we got several kernel upgrades without getting new kernel source from ASUS.
So I guessed that they have newer source, correct me if I am wrong here
Click to expand...
Click to collapse
I think we'll only get a new release if they use a different source version. The kernel version hasn't changed on their ICS kernels yet, so I "believe" that the source they have posted is the latest and is what they built the mercury kernel from.
jermaine151 said:
I think we'll only get a new release if they use a different source version. The kernel version hasn't changed on their ICS kernels yet, so I "believe" that the source they have posted is the latest and is what they built the mercury kernel from.
Click to expand...
Click to collapse
Oh okay, good to know
Diamondback said:
You need to repack the correct boot.img as a blob file. Fastboot doesnot work the way you use it.
Fastboot can't flash raw imgs, you need to repack them before as a blob file.
Search goolge for blobtools, there is a thread on xda with both linux and a windows version.
Click to expand...
Click to collapse
I tried my best for the past 10 hours and couldnt get the boot.img repacked. Is there a way someone can help me do it?
tassadar898 said:
I tried my best for the past 10 hours and couldnt get the boot.img repacked. Is there a way someone can help me do it?
Click to expand...
Click to collapse
I attached a pretty much stock kernel blob (Dr Wowe's kernel) to this post:
http://forum.xda-developers.com/showpost.php?p=23182705&postcount=13
You need to grab it out of the zip file. Maybe that will help you get up and running again.
This is great! Can't wait till this kernel is included in one of the stock roms
If was this kernel make it like app can i get overclock without unlockbootloader???
Sent from my HTC Desire HD A9191 using XDA
EDIT: Thanks to demandarin for testing this. It looks like this will NOT be able to be flashed on a Prime with a locked bootloader. It was worth a shot. I'll leave the attachment in case anyone needs this kernel in a signed blob format.
MiRaGe is a lean and efficient kernel for the stock Nexus 4 ROM with the optimizations and updates that are not included in Google's stock kernel. MiRaGe kernel fits squarely in the stock Nexus 4 ROM; all of the modules are integrated in the kernel just like the stock kernel and it should work with all AOSP ROMs that work with the stock kernel and boot image. However, only the current stock ROM is tested. If you decide to use MiRaGe, just flash and forget it since I have avoided adding more sysfs parameters. It is not my goal to enable all possible tweaking options and add every possible feature to the kernel such as multitude of governors, io schedulers, sweep2wake, fastcharge, etc. This kernel is not intended as a tweaker's kernel. You can, of course, tweak it as much as you want since that is your phone and kernel. But please try removing your tweaks before posting any problems. I always test the latest builds with the current stock ROM before posting here.
I am sharing exactly what I have developed for myself and posting here so that I can return at least a small part of what I have received from the open source community. I thought the amount of time I have spent for MiRaGe could be useful for others as well. In short, take it if you want it, leave it if you don't. But comments, suggestions are always welcome when they make sense.
Source Code:
Source code is based on Google's msm kernel source (currently android-msm-mako-3.4-lollipop-mr1.1) and a summary of my changes are below. You can find the full details of my changes and the complete source code in my repo.
Changes:
- synced with mainline Linux 3.4.110
- cleaned up kernel configuration and removed many unnecessary options
- removed kernel debugging options
- built with the Linaro toolchain (gcc 4.9.4 - 15.06) using standard krait and -O2 optimization
- removed AOUT and OABI support
- disabled both user-space msm_mpdecision and kernel-space msm_mpdecision
- removed msm_run_queue_stats, dcvs, and stock msm_mpdecision in the kernel
- added autosmp, a simple and efficient (by me) multi-core cpu hotplug driver
- disabled the user-space thermald and switched to kernel-based msm_thermal
- replaced CFQ with the latest BFQ as the default IO scheduler
- backported random and prandom updates from Linux 3.13 (no entropy depletion anymore)
- backported workqueue from Linux 3.8 to include many important improvements
- backported rwsem from Linux 3.11 to include lock stealing improvements
- backported mutex and rcu locking from Linux 3.10 and 3.8, respectively
- backported slub memory allocator updates from Linux 3.8
- backported cpufreq driver, ondemand, and conservative governors from Linux 3.12
- updated interactive CPU governor from AOSP and CAF
- disabled userspace CPU governor,
- enabled callback-free CPUs (RCU_NOCB_CPU)
- backported TCP Small Queues and CODEL net scheduler from Linux mainline and set as default
- updated kernel scheduler, msm-hotplug, msm-idle, msm-pm code from CAF and Linux mainline
- applied patch [v4] binfmt_elf.c: use get_random_int() to help with entropy depleting
- enabled autogroup scheduler and applied patch per-uid task group for Android
- added optimized ARM RWSEM algorithm
- added optimized ARM SHA1/AES routines
- enabled CPU-supported unaligned accesses
- disabled gentle fair sleepers in scheduler
- updated Qualcomm HW RNG driver from CAF
- enabled BPF JIT compiler for packet filters
- applied glibc patch to improve the performance of memcpy and memmove
- applied word-at-a-time ARM API patches
- enabled CPU overclocking up to 1.728 GHz with user-space vdd control
- optimized vdd curves, L2 and bus speeds for better performance and efficiency
- removed unneeded a2xx and a4xx components from kgsl driver
- modified the prima wifi driver to disable debug code
- removed PMEM completely, MiRaGe is pure ION
- add support for kernel mode NEON and NEON acceleration
- add NEON optimized SHA1, SHA256, and SHA512 crypto code
- add LoUIS API for cache maintenance ops to improve cpu hotplug latency
- added and enabled power_efficient workqueue
- added and enabled msm memutils
- added screen gamma, user space cpu voltage control, and dt2w
- backported devfreq driver from CAF and switched kgsl 3d governor to simple_ondemand
- backported many other fixes/updates/optimizations from CAF and Linux mainline, see the repo for details
- init.d supported if /etc/init.d and busybox are available
- a diff file of changes to ramdisk is here
Downloads:
Boot image for stock ROM:
LMY standard kernel Built: 10/25/15 MD5sum: a315cc446499d60cb4b3a61ea7bfa8f8
LMY overclock kernel Built: 10/25/15 MD5sum: 7c72a66830f511b025968db2bb743429
Anykernel updater for custom ROM:
Revert back to stock kernel to restore the original ramdisk and flash anykernel package of MiRaGe after that. This is not needed in the next anykernel update.
LMY standard kernel Built: 10/25/15 MD5sum: 85b4136ac0ada793da7b80763193095a
LMY overclock kernel Built: 10/25/15 MD5sum: 2924fb6a963b40087c296a7b1abfc1d3
KTU standard kernel Built: 10/31/14 MD5sum: dca7d06933eb43c8da3ba7941bb6ac88
KTU overclock kernel Built: 10/31/14 MD5sum: dca7d06933eb43c8da3ba7941bb6ac88
The only difference between the standard and overclock builds is the ~100mV undervolt in the overclock build. Both kernels have maximum CPU_freq = 1.728 GHz, default CPU_freq = 1.512 GHz, overclocking, and user space cpu voltage control enabled. Since the CPU gets hot quickly in Nexus 4, I only recommend overclocking with the overclock build that has built-in undervolt. If the phone doesn't boot with overclock kernel, it means that your CPU is not able to handle the undervolt settings. In that case, you can just reboot into recovery and flash the standard kernel. No-frills CPU Control is recommended to set the max overclock frequency. Each CPU has different overclock/undervolt ability. Don't get disappointed if the OC build doesn't work for you.
Installation:
You can do one of the followings
- Flash the zip files in recovery, there is no need to wipe cache or dalvik-cache
- Flash the boot image in the zip file using either Flash Image GUI or fastboot
- Here is the original boot image for LMY48I build, in case needed for going back to stock. Either flash in the recovery or open the zip file to extract the boot image.
Credits:
- Special thanks to Linux, Google, CAF, Linaro developers in general.
- @tvall, @bedalus, @xboxfanj, @ihancioglu, @xenyz for collaboration
- @stratosk for the screen gamma interface and dt2w
- @defconoi for collaboration (see Unleashed Kernel Series)
- @mathkid95 for the any-kernel updater package
- @joeykrim for FlashImageGUI
- @Christopher83 for the optimized Linaro toolchain builds
- Other credits are given in the repo for each commit
Recommendations:
I am frequently receiving requests to add sound patches in the kernel. I agree that the sound is not very good but there are solutions. I am using the Viper4AndroidFX as a replacement sound processor. I recommend giving it a try. You need to go to the sound options and select ViPER4AndroidFX to use this sound processor or freeze MusicFX (I use Link2SD for this). There is plenty of information at the above link. With this available, I am not planning to add any sound patches.
Another frequent question is about choosing CPU governor and IO scheduler. In the earlier builds, interactive governor had the best balance of performance and battery life among other CPU governors and it is still available. In the latest builds, ondemand governor was backported from Linux 3.12 and replaced interactive as the default. The latest patches in the mainline Linux, especially stratosk's patch that optimized the load calculations made the new ondemand governor the better option regarding both power and performance. Regarding IO scheduler, BFQ scheduler has the best overall real-use performance and it is actively maintained/improved. You can use Nofrills CPU Control to change the governor and scheduler. But I would leave the defaults as BFQ scheduler and ondemand governor.
Since all of the cpu power control functions are contained in the kernel with MiRaGe, the userspace PowerHAL library will be giving the following messages in the logcat.
Code:
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
E/PowerHAL( 511): touch_boost: failed to send: No such file or directory
These are harmless but if you want to eliminate them, just make a backup and delete/rename /system/lib/hw/power.msm8960.so and power.mako.so. The single purpose of touch_boost is to enhance the system response to the user interaction. But using a service in the user space to send a touch boost signal to the kernel via slow sysfs file system is the wrong way of trying to achieve lower latency. In addition, every touch input doesn't need a CPU frequency boost which wastes battery power. The best way of achieving the low-latency system response to user interaction is improving the efficiency of existing CPU governor which raises the CPU frequency and hotplug driver which enables off-line cpu cores when needed. In MiRaGe, CPU freq is only controlled by the CPU governor based solely on the CPU load and the latency is low since efficiency is improved by reducing such unnecessary bloat. Additionally, highly-efficient autosmp hotplug driver works in-sync with the CPU governor to enable off-line cpu cores when the the CPU frequency reaches a high threshold and still more compute power is needed. Therefore, touch boost bloat is removed.
With some of the custom ROMs, root is lost after flashing MiRaGe because of using the init scripts in the ramdisk for starting the su daemon. SuperSU is the recommended solution. I might switch to any-kernel-updater to address this problem but as written in the OP, MiRaGe is primarily for the stock ROM. Also, having the full boot image in the zip file is more reliable than expanding/processing/repacking the boot image.
MiRaGe supports init.d if it is setup. To setup init.d do the followings either within ES File Explorer or terminal .
- install busybox (I use busybox on rails)
- create /system/etc/init.d and chmod to 755 (rwxr-xr-x)
- create your init scripts in the /system/etc/init.d directory. Name them 01yourscriptname (e.g. 01mysettings) and chmod 755. Make sure they are UNIX format (not in DOS/Windows).
example:
Code:
#!/system/bin/sh
echo 1 > /sys/devices/virtual/input/lge_touch/dt_wake_enabled
- reboot
Here is how to add multiROM support
How to build:
If you are going to distribute your builds, please don't build your binaries with the same name (i.e. MiRaGe) and distribute in this thread. I would recommend you to start an alternative thread. Otherwise the problem reports will be too confusing for everyone.
First requirement is an ARM toolchain for cross compiling, i.e. using an X86 computer to generate ARM binary. I use Linaro tool chain for cross compiling like many others since Linaro specifically develops tool chains that produce optimized binary for ARM architecture.
Linaro toolchains can be downloaded from Linaro binary page. Christopher83 has built the latest Linaro-14.08 toolchain based on gcc-4.8.4 which is stable/reliable and I recommend starting the development with this toolchain.
The binary Linaro toolchain for Linux package needs to be expanded in a certain directory, probably inside the home directory. The source code for kernel is available in my Github repo, You can either download the kernel source as a compressed package or you can git-clone it with the following command (you will need git installed in your Linux computer)
Code:
git clone https://github.com/mrg666/android_kernel_mako.git
The kernel source can again be in a specific home directory.
After the source and toolchain are prepared, copy the configuration file for shooter, arch/arm/configs/mako_config, as .config to the root of the kernel source and use the following command to build the kernel
Code:
make ARCH=arm CROSS_COMPILE=~/untarred-toolchain-dir/bin/arm-linux-gnueabihf- zImage -j8
Replace j8 in the above command according to the number of cpus you have on your computer.
Also set CROSS_COMPILE based on the directory you have expanded the binary toolchain package in your home directory.
I always use the latest version of Xubuntu x64 (with custom built kernel) on my Linux workstation that has a AMD FX-8320 (overclocked to 4.2 GHz), 8 GB RAM, 500 GB HD. The compile time is about 2 minutes for me using all 8 cores. I have been using Ubuntu since version 10.04 to build Gingerbread, Jellybean, and Linux kernel and updated the OS to each and every new version, all of them worked just fine. There is no magic version of Ubuntu. The build problems arise from the package requirements not the OS version.
The flash package is easy. Just use any-kernel updater package in the OP as a template and replace zImage in /kernel directory with your build. If you want to create a boot image, see this post
Now that you have source and can build the kernel, you can add all the features you want to your own kernel
Woww greatt, thanks mirage
many thanks Mirage!
Does JSS come with caf video driver or it can be flashed on non-cm roms without problems?
Inviato dal mio Nexus 4 con Tapatalk
Good to see new kernel which goal is simplicity, not many of them are here. ill try it when clean instal comes to repertoar. just one question, you didnt mention -O3 and gcc 4.8.2, so i asume you didnt use them? Thanks.
Poslano sa mog Nexus 4 koristeći Tapatalk
I haven't updated the video driver from CAF ... yet. I will do after the 4.4 update if Google hasn't done yet.
Kernel is compiled with gcc 4.7.4 using -O2 optimization. gcc 4.8 was not giving me reliable builds yet. I will switch when 4.8 becomes stable. I have tried O3 optimization in the past and I didn't see any benefit of it. Plus, O3 optimization caused reliability issues especially with the latest gcc compilers.
MiRaGe should be compatible all AOSP-based ROMs, as long as the same user-space libraries are used with the stock 4.3 ROM. I can't claim universal compatibility since even stock JSS and JWR builds need different kernels.
Would you consider making a ZIP?
I found your kernel to be quite interesting, but I don't really like flashing via IMG file.
C.T.Richter said:
Would you consider making a ZIP?
I found your kernel to be quite interesting, but I don't really like flashing via IMG file.
Click to expand...
Click to collapse
you can download one of 1000 kernels around here and replace the kernel.img ... and wholà you have a zip version.
anarkia1976 said:
you can download one of 1000 kernels around here and replace the kernel.img ... and wholà you have a zip version.
Click to expand...
Click to collapse
Can't agree with you more but the problem with so many people on xda is that they rarely even open up a zip file to see how it operates. Guarantee most of the people will shy away simply because of the lack of a zip. Again I agree its not that hard to do but lets be honest here most have problems searching so taking a boot.img and putting it in a zip probably aint happening
I have just uploaded the alternative flashable zip files. I will remove the image files since they are in the zip files now.
Just flashed on slim and lost root... Just a heads up
Sent from my Nexus 4 using XDA Premium 4 mobile app
anarkia1976 said:
you can download one of 1000 kernels around here
Click to expand...
Click to collapse
LOL that's right!
QUIETLYloud said:
Just flashed on slim and lost root... Just a heads up
Sent from my Nexus 4 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
That can't happen due to flashing the zip files in the OP since there is nothing in the zip file that touches /system, it is not even mounted.
Gonna give it a go on Vanir. I'll report back of my root gets effected. Happened a lot with 4.3 when it first came out
Sent from my Nexus 4 using Tapatalk
DontPushButtons said:
Gonna give it a go on Vanir. I'll report back of my root gets effected. Happened a lot with 4.3 when it first came out
Sent from my Nexus 4 using Tapatalk
Click to expand...
Click to collapse
I am using CWM 6.0.4.4. It is constantly suggesting to restore my root although it is not lost. If this is what is mentioned here, just ignore it; root is not lost. SuperSU, su keep working. Actually, I am losing my patience with CWMT lately. Maybe it is time to switch to TWRP.
mrg666 said:
I am using CWM 6.0.4.4. It is constantly suggesting to restore my root although it is not lost. If this is what is mentioned here, just ignore it. Root is not lost. SuperSU, su keeps working. Actually, I am loosing my patience with CWMT lately. Maybe it is time to switch to TWRP.
Click to expand...
Click to collapse
I'd say it's long overdue to switch to twrp lol. Ever since I switched to twrp back on my rezound, I have NEVER looked back to cwm. Not to say cwm isnt/wasn't great.. But you know how it is lol.
Sent from my Nexus 4 using Tapatalk
DontPushButtons said:
I'd say it's long overdue to switch to twrp lol. Ever since I switched to twrp back on my rezound, I have NEVER looked back to cwm. Not to say cwm isnt/wasn't great.. But you know how it is lol.
Sent from my Nexus 4 using Tapatalk
Click to expand...
Click to collapse
I just don't like the "overdesigned" interface of TWRP. It is too fancy for my taste. But as long as it works when needed, it would be fine with me. I don't boot into recovery so frequently anyway since I flash the kernel in fastboot or Flash Image GUI.
Oddly enough, I lost root. I'm currently running the latest version of Paranoid Saberdroid.
C.T.Richter said:
Oddly enough, I lost root. I'm currently running the latest version of Paranoid Saberdroid.
Click to expand...
Click to collapse
Is it just what the recovery says? I use the stock JWR ROM and root is preserved when I flash although CWMT falsely complains about it.
Edit: I just tested with TWRP as well. Root is still preserved.
mrg666 said:
Is it just what the recovery says? I use the stock JWR ROM and root is preserved when I flash although CWMT falsely complains about it.
Edit: I just tested with TWRP as well. Root is still preserved.
Click to expand...
Click to collapse
Using TWRP there is no error message, it just says it was installed successfully.
I just tried it on a clean install, and the same thing happened.
This kernel extends the CM kernel with some new features:
New init.d scripts to allow some tweaking without needing any 3rd party apps
* See the next post for details.
Replaced HTC's mpdecision with a new custom hot-plug driver that I created:
* This hot-plug driver is more aggressive about bring cores on and off-line to match the load on the system.
* Bringing cores online earlier makes your phone more responsive / smooth.
* Taking cores offline earlier improves battery life.
* It ramps up very quickly on resume to avoid lag.
Replaced HTC's lightsensor table with one that is more sensible and that matches what other devices use. If you have custom auto-brightness settings, you'll probably need to tweak them after installing this kernel.
There are many additional changes to boost performance and battery life:
* Linaro -O3 compiled (Linaro 4.8).
* Overclocking
* I disable tons of HTC debugging crap left enabled and needlessly consuming battery.
* Improvements to the core locking code of the kernel.
* Patches that transform traditional locks into RCU backed data structures.
* CAF changes to power management to sleep faster and waste less CPU during suspend.
* Improved code for moving data to/from user-space and manipulating strings within the kernel.
* And tons of other patches such as scheduler improvements, I/O improvements, networking improvements, etc, etc, etc.
Other features:
* Voltage control (faux123) to allow user-space under-volting.
* BFQ I/O scheduler.
* Track upstream Linux changes
Links
A link to each version is included in the changelog entry. Scroll down to the changelog to download the latest version.
Source (GitHub):
* Kernel source
* Build tools
Installation Instructions:
If you are S-OFF you can flash the update.zip in recovery.
If you are S-ON, then after you flash the update.zip in recovery then, while still in recovery, you must run
Code:
adb pull /tmp/boot.img
<reboot into bootloader>
fastboot flash boot boot.img
Changelog:
Version 5.7.6: April 7, 2014: General Fixes, Linux 3.4.86
* Linux version 3.4.86
* Other changes, mostly have been merged into the CM kernel and I forget which changes weren't...
Version 5.7.6: April 7, 2014: General Fixes, Linux 3.4.86
* Linux version 3.4.86
* Other changes, mostly have been merged into the CM kernel and I forget which changes weren't...
Version 5.8.2: July 19, 2014: Upstream updates and security fixes
* Patched up to linux 3.4.99 (latest version of as now)
* Patched up to latest CM (fixes a couple of CVEs, not a whole lot else was missing)
* Update some video bandwidth parameters
Version 5.5.2: January 19, 2014: Linux 3.4.77, CM changes
* CM changes include a fix for the cpu-boost driver, smooth streaming and governor fixes
* Linux 3.4.77
Version 5.4.2: January 5, 2014: Linux 3.4.75, I/O Optimizations, CM changes
* CM changes may resolve lingering problems with min frequency set to max frequency.
Version 5.3.7: December 20, 2013: Linux 3.4.74, WiFi Optimizations, cpufreq gov. changes
* Linux 3.4.74
* Various WiFi optimizations including using less battery when suspended
* Removed ondemandCRP: It existed because it helped a2dp but, thanks to improvements upstream, this is no longer needed
* cpufreq config scripts set the governor before the frequencies
* ondemand: ignore io_is_busy, improves battery
Version 5.2.11: December 7, 2013: Initial KK release: Linux 3.4.72, Optimizations
* Linux 3.4.72
* Various optimizations
XDA:DevDB Information
crpalmer-droid-dna-5.x, Kernel for the HTC Droid DNA
Contributors
crpalmer
Kernel Special Features:
Version Information
Status: Stable
Created 2013-12-07
Last Updated 2014-07-19
Reserved
init.d tweaks
I created some scripts that run on boot (init.d) because I install my kernel so many times that I would go insane if I had to use an installer to configure it each time. By using these scripts and configuration files on the sdcard, I can just configure it once and keep installing away to my heart's content.
After installing this kernel, there will be:
/system/etc/init.d/99crpalmer
run at boot, even if you switch to another kernel. It is safe to leave this file there and to let it run as it only makes changes if the kernel contains "crpalmer" in the version. If run with a kernel that contains crpalmer in the version, it will rename mpdecision so it can't run. If you install another kernel it will then rename mpdecision back so that it will run in the new kernel. In addition to stopping the built-in mpdecision it will allow the following tweaks:
CPU Frequencies
* Frequencies loaded from /sdcard/crpalmer-cpufreq-min and /sdcard/crpalmer-cpufreq-max
* Governor loaded from /sdcard/crpalmer-cpufreq-governor
* If you specify either or both of these frequencies, it will lock down all of the CPU frequency controls. I had to do this because HTC overrides them in a script that is run very late in the boot process (thanks HTC!).
* E.g. adb shell su -c "echo 192000 > /sdcard/crpalmer-cpufreq-min"
* E.g. adb shell su -c "echo 1728000 > /sdcard/crpalmer-cpufreq-max"
* E.g. adb shell su -c "echo interactive > /sdcard/crpalmer-cpufreq-governor"
Undervolting
* + or - value loaded from /sdcard/crplamer-uv
* The undervolting in 2.0.23 for FAST binned CPUs would be specified as:
* E.g. adb shell su -c "echo -100 > /sdcard/crpalmer-uv"
Lightsensor
* My light sensor changes didn't sound like they worked well for everyone. If you don't like them you can disable them by:
* E.g. adb shell touch /sdcard/crpalmer-stock-lightsensor
HTC Colour "Enhancement"
* If this file is present then the HTC's colour "enhancement" will be used, otherwise it will be disabled.
* If this file contains the string "m7" then it will use one of the colour enhancement that was used in the M7 kernel for a panel most like ours.
** E.g. adb shell touch /sdcard/crpalmer-color-enhancement
Reserved
Giving it a go! Thanks for your continued support for this device man its much appreciated!!!
Sent from my HTC6435LVW using Tapatalk
Hell yes!!! Christmas comes early from crpalmer!!! Thank you sir!!!!!!
Sent from my HTC6435LVW using Tapatalk
---------- Post added at 02:01 PM ---------- Previous post was at 01:50 PM ----------
Running smooth as butter. Under clocked over clocked
Sent from my HTC6435LVW using Tapatalk
crpalmer said:
This kernel extends the CM kernel with some new features:
New init.d scripts to allow some tweaking without needing any 3rd party apps
* See the next post for details.
Replaced HTC's mpdecision with a new custom hot-plug driver that I created:
* This hot-plug driver is more aggressive about bring cores on and off-line to match the load on the system.
* Bringing cores online earlier makes your phone more responsive / smooth.
* Taking cores offline earlier improves battery life.
* It ramps up very quickly on resume to avoid lag.
Replaced HTC's lightsensor table with one that is more sensible and that matches what other devices use. If you have custom auto-brightness settings, you'll probably need to tweak them after installing this kernel.
There are many additional changes to boost performance and battery life:
* Linaro -O3 compiled (Linaro 4.8).
* Overclocking
* I disable tons of HTC debugging crap left enabled and needlessly consuming battery.
* Improvements to the core locking code of the kernel.
* Patches that transform traditional locks into RCU backed data structures.
* Different version of ondemand cpufreq governor
* CAF changes to power management to sleep faster and waste less CPU during suspend.
* Improved code for moving data to/from user-space and manipulating strings within the kernel.
* And tons of other patches such as scheduler improvements, I/O improvements, networking improvements, etc, etc, etc.
Other features:
* Voltage control (faux123) to allow user-space under-volting.
* BFQ I/O scheduler.
* Track upstream Linux changes
Links
A link to each version is included in the changelog entry. Scroll down to the changelog to download the latest version.
Source (GitHub):
* Kernel source
* Build tools
Installation Instructions:
If you are S-OFF you can flash the update.zip in recovery.
If you are S-ON, then after you flash the update.zip in recovery then, while still in recovery, you must run
Code:
adb pull /tmp/boot.img
<reboot into bootloader>
fastboot flash boot boot.img
Changelog:
Version 5.2.11: December 7, 2013:Initial KK release: Linux 3.4.72, Optimizations
* Linux 3.4.72
* Various optimizations
XDA:DevDB Information
crpalmer-droid-dna-5.x, a Kernel for the HTC Droid DNA
Contributors
crpalmer
Kernel Special Features:
Version Information
Status: Stable
Created 2013-12-07
Last Updated 2013-12-07
Click to expand...
Click to collapse
Server must be getting hammered... can't download my crack!!!!?!
Never mind it's coming...
How do i run the scripts?
I didn't like smartmax anyway...made me feel like I had a droid incredible again. Very VERY smooth. This on crdroid with halo 2.0 is gold. Thanks for sticking with us. Fast charge would be nice, but I'm content.
Do you take donations? Not trying to look haughty or anything...I truly don't know.
-DroidIsDNA- said:
I didn't like smartmax anyway...made me feel like I had a droid incredible again. Very VERY smooth. This on crdroid with halo 2.0 is gold. Thanks for sticking with us. Fast charge would be nice, but I'm content.
Do you take donations? Not trying to look haughty or anything...I truly don't know.
Click to expand...
Click to collapse
Actually smartmax is gone from anything using the CM kernel, not just my kernel. I think crdroid is using their own kernel so it may still be left in there (it's up to them whether or not they cherry-pick my removal of it...).
I don't accept donations. I do all my android work for fun and only for fun. Thanks for the thought though.
crpalmer said:
Actually smartmax is gone from anything using the CM kernel, not just my kernel. I think crdroid is using their own kernel so it may still be left in there (it's up to them whether or not they cherry-pick my removal of it...).
I don't accept donations. I do all my android work for fun and only for fun. Thanks for the thought though.
Click to expand...
Click to collapse
Sorry to bother you but how do i run the script.do i have to run them individually at first or just the crpalmer one?great job on the kernel.
Thanks CR
gillim74 said:
Sorry to bother you but how do i run the script.do i have to run them individually at first or just the crpalmer one?great job on the kernel.
Click to expand...
Click to collapse
What script do you want to run? You can push them using adb.
Sent from my ASUS Transformer Pad TF300T using xda app-developers app
Just wondering crpalmer, when you release new kernels like this, do they also contain all of the previous optimizations and such as the kernels before, like an update to work with the new android OS?
d08speed3 said:
What script do you want to run? You can push them using adb.
Sent from my ASUS Transformer Pad TF300T using xda app-developers app
Click to expand...
Click to collapse
What are the commands to push the script s because I've never used a custom kernal
Sent from my HTC6435LVW using XDA Premium 4 mobile app
d08speed3 said:
What script do you want to run? You can push them using adb.
Sent from my ASUS Transformer Pad TF300T using xda app-developers app
Click to expand...
Click to collapse
All of them but i dont know how to push them
rejectedjs said:
Just wondering crpalmer, when you release new kernels like this, do they also contain all of the previous optimizations and such as the kernels before, like an update to work with the new android OS?
Click to expand...
Click to collapse
Yes.
thayl0 said:
What are the commands to push the script s because I've never used a custom kernal
Sent from my HTC6435LVW using XDA Premium 4 mobile app
Click to expand...
Click to collapse
See post #2, it contains example adb commands.
Chris, what are your thoughts regarding the performance options in CM where you can allow purging of assets and kernel same page merging?
I used to have those enabled but I turned them off a couple weeks ago and noticed no difference.
gillim74 said:
Sorry to bother you but how do i run the script.do i have to run them individually at first or just the crpalmer one?great job on the kernel.
Click to expand...
Click to collapse
The scripts get run every time you boot the phone. Post #2 explains how you configure what the scripts do. There is nothing that you need to run yourself.
orangechoochoo said:
Chris, what are your thoughts regarding the performance options in CM where you can allow purging of assets and kernel same page merging?
I used to have those enabled but I turned them off a couple weeks ago and noticed no difference.
Click to expand...
Click to collapse
No need to use unless you have little to no AFM (absolute free memory). On phones with less than a gig of ram, KSM is pretty much a given need, as it will merge identical bytes to free up more ram. I have never had less than 600mb AFM on this phone to need to turn on KSM.
Sent from my DNA using my mind.
I am closing this thread as I no longer have valid download links available, I can't maintain this project anymore, and I'd like to make sure everyone understands that any links uploaded by other users cannot be confirmed to be unmodified. Proceed at your own risk!
This thread is for the N9005, N900A, N900P, N900V, N900R4, N900K, N900L, N900S, SC-01F, and SCL22 variants of the Galaxy Note 3.
You can find the other thread for N900W8 and N900T variants here.
idleKernel is a fork from Imoseyon's leanKernel starting at his v6.3 Touchwiz release.
It adds a few more features, escaping somewhat from the minimalist approach while still staying battery friendly.
It hopes to support many ROMs. You can request support for your ROM through private message or on this thread.
You can also find Imoseyon's leanKernel here, which still has ongoing development.
DOWNLOAD
Current version: 7.1.0 (2016-03-27)
Note that there are both SELinux Enforcing and SELinux Permissive versions.
If you are using a custom ROM or f2fs, you will need the permissive version.
All Note 5 ports are forced permissive, and have no enforcing version due to invalid SEPolicy.
TouchWiz 5.0 kernels cannot have their SELinux mode changed by any means, they are compiled as either enforcing or permissive.
idleKernel is also used in the Kali NetHunter project! For full idleKernel functionality in Kali NetHunter, flash one of the images here before flashing NetHunter.
Please be careful to download the right version for your actual phone model, not your ROM.
N9005: hlte-eur
N900A: hlte-att
N900W8: hlte-can
N900P: hlte-spr
N900R4: hlte-usc
N900T: hlte-tmo
N900V: hlte-vzw
N900K: hlte-ktt or hlte-kor
N900L: hlte-lgt or hlte-kor
N900S: hlte-skt or hlte-kor
SC-01F: hlte-dcm
SCL22: hlte-kdi
DOWNLOAD LINKS REMOVED
RAN INTO AN ISSUE OR BUG?
In order for me to help you, you have to at minimum reply with:
The link to the exact kernel zip/tar you downloaded
Your device model (N9005, etc)
A link to the XDA thread of the ROM you're having trouble with
Optional: A logcat during the duration of when the bug is happening
Optional: A `cat /proc/kmsg > /sdcard/kmsg.log` (su required) during the duration of when the bug is happening
You may be able to fix the bug by updating to the latest bootloader and modem for your device.
See: (Direct Download) Latest Bootloaders & Modems
FEATURES INCLUDED FROM LEANKERNEL
overclockable to 2.72GHz, but limited to 2.2GHz during boot
interactiveX V4 (screen_off_maxfreq), renamed back to interactive for compatibility
/sbin/lkconfig script (via terminal emulator, superuser required)
user adjustable panel temperature: -60 to 0, 0 is kernel default (via lkconfig & sysfs)
user adjustable panel colors: 0 to 4, 2 is kernel default (via lkconfig & sysfs)
fix for purple hue/push at low brightness (via panel temperature or panel colors)
cpufreq modified to play better with thermal-engine
compiled with stable Linaro GCC Cortex-A15 4.9 toolchain
built-in supersu and init.d support
DriveDroid compatibility for USB mass storage emulation
interactive governor updated to latest android source (but ondemand left default)
outdated Samsung code updated to later CodeAurora source (cpufreq, mdss, gpu, msm-bus, etc.)
cpufreq issues fixed
exFAT support
ram console enabled for /proc/last_kmsg for kernel crash debugging
FauxSound 3.0
default USB charge speed @ 1200mA
based on N900TUVUFOB6 (February 23, 2015)
IDLEKERNEL FEATURES
rebased on N900TUVUFOL1 (December 5, 2015) and SC01FOMUGOI4 (September 9, 2015)
updated to latest 3.4 Linux (currently 3.4.111)
tailored individually to support all variants of TouchWiz 5.0, CyanogenMod 12.1 & 13.0, SlimRom 5.1 & 6.0, and Note 5 Ports
ramdisk and kernel compressed with xz-crc
FauxSound updated to 3.6
CodeAurora fixes up until December 8, 2015
new IO schedulers available: sio, fiops (default)
new TCP congestion control available: westwood
cubic (default) TCP congestion algorithm updated to Linux 4.3 sources
f2fs full /system /data /cache support (except in enforcing mode TouchWiz)
f2fs updated to latest kernel.org Samsung sources
ext4 updated to latest kernel.org sources
performance governor included for benchmarking & games
adreno idler updated to latest arter97 sources (now with 27 MHz idle)
forced fast charge support by Yank555.lu
full sysfs & in rom vibration control with extended range
compiled with -O2 optimizations
some kernel errors and logging functions fixed
lkconfig rewritten and extended, renamed to ikconfig
support for KCAL advanced color control by savoca
USB mass storage toggle for external SDcard, open Terminal Emulator and type: ums on.
USB 3.0 is turned on if you add 3 to commands: mtp on 3, ptp on 3, ums on 3.
SuperSU uses system install method even on marshmallow, adjustable via ikconfig (set on first boot)
USB HID keyboard and MIDI gadget support (added in 6.7.1!)
INSTALLATION
You can flash idleKernel from Odin 3.x in AP slot using tar.md5 files.
You can also flash from TWRP 2.8.x.x using zip files.
CONFIGURATION OPTIONS
Open Android Terminal Emulator or adb shell, become superuser by typing su, press enter, and type /sbin/ikconfig (on most ROMs you can just type ik), press enter again.
Code:
[email protected]:/ $ su
[email protected]:/ # /sbin/ikconfig
idleKernel configurator (based on lkconfig by Imoseyon)
---
0) display current settings
1) panel temperature
2) panel color
3) cpu max frequency
4) cpu governor
5) gpu governor
6) tcp congestion control
7) io scheduler
8) mmc crc
9) supersu install method
10) check top 10 wake locks (ie. wakeup sources)
please enter a number (or press enter to exit): 0
current settings
----------------
1) panel temperature: 0
2) panel color: 2
3) cpu max frequency:
screen on: 2265600
screen off: 1267200
4) cpu governor: interactive
5) gpu governor: msm-adreno-tz
6) tcp congestion control: cubic
7) io scheduler:
internal memory: noop deadline row [sio] fiops
external sdcard: noop deadline row [sio] fiops
8) mmc crc: disabled
9) supersu install method: system
I recommend the app Kernel Adiutor for control over idleKernel if you are inexperienced in terminal usage, it's very well written and easy to use.
If you want to use the FauxSound controls, please consider buying FauxSound from the Play Store. It's the same developer that wrote the kernel side components to it.
If you want to use KCAL advanced color control, you will need to download the Color Control app from here.
USB 3.0 & MASS STORAGE
idleKernel 6.6.2+ comes with a terminal command called usb, with shortcuts mtp, ptp, and ums.
These commands don't work from adb as running them usually closes the adb session cancelling the command part way through.
They are meant to be run from Terminal Emulator as superuser. If it shows not found, go into Terminal Emulator options and uncheck "Verify PATH entries". There is a bug in Terminal Emulator that causes /sbin to be removed from path sometimes when using su. You could also prefix the commands with /sbin/.
Code:
[email protected]:/ # usb
Usage: usb [mtp|ptp|ums|status] [on|off]
Enables or disables MTP, PTP, and UMS USB modes.
mtp on/off turns on/off MTP mode
ptp on/off turns on/off PTP mode
ums on/off turns on/off UMS mode
default sets USB mode to default
-3, 3 activates USB 3.0, use with on
-i, info, status displays active USB mode
-h, help displays this information
-v, version displays version info
For more help & to report bugs contact <[email protected]>
[email protected]:/ # ums on 3
Disabling USB transfer protocols...
Unmounting SDcard from /storage/extSdCard...
SDcard unmounted successfully.
Activating USB 3.0 SuperSpeed mode...
Setting up dwc3 storage gadget lun...
Mounting /dev/block/mmcblk1 to lun...
Activating USB Mass Storage transfer mode...
Done. PLEASE USE EJECT MEDIA ON PC BEFORE TURNING OFF UMS!
[email protected]:/ # mtp on 3
Disabling dwc3 storage gadget lun...
Disabling USB transfer protocols...
Mount SDcard in Android? (y/n): y
Mounting SDcard to /storage/extSdCard...
Waiting for SDcard to be ready....
SDcard mounted successfully.
Activating MTP USB transfer mode...
Done.
[email protected]:/ # usb default
Disabling USB transfer protocols...
Deactivating USB 3.0 SuperSpeed mode...
Setting USB mode to default...
Done.
TEAM WIN RECOVERY PROJECT
You will probably notice that in the downloads area there is also a TWRP 2.8.7.0 download option.
It uses idleKernel instead of the kernel prebuilts from Omni.
MTP and USB Mass Storage R/W now works in recovery mode, allowing you to plug phone in and easily transfer zips and backups/restores to and from your phone and sdcard. It also fixes some file system bugs that caused ext4 broken backups that couldn't restore to f2fs partitions, and other small bugs like brightness adjustment not working.
On top of that it allows me to support TWRP for variants that aren't officially supported, such as the Japanese and Korean variants.
You can also use ikconfig in TWRP from adb, allowing you to fix settings like unstable CPU overclocks from recovery.
It also has a really cool boot splash and gold theme, that's cool too right?
GOING TO F2FS FILE SYSTEM
See step-by-step guide here:
http://forum.xda-developers.com/gal...ekernel-leankernel-fork-t3241582/post64014959
KNOWN ISSUES
Screen sometimes turns on while charging from PC. (wake event sent from PC?)
Some ROMs refuse to flash in TWRP idleKernel edition. (tell ROM maintainer to fix flash model assert or remove assert yourself)
Streaming audio may occasionally stutter when screen is off. (increase screen off max frequency using ikconfig)
exFAT and f2fs formatted SDcards don't work in CM13. (not a kernel issue, wait for CM team to fix it)
Aroma Installer doesn't work in TWRP idleKernel edition. (it's not compiled with LP driver support? flash original TWRP to use Aroma)
If you are affected by a new issue, please follow ALL of the instructions above and post in the thread or pm it to me.
ROM DEVELOPERS
You have my permission to include idleKernel in your ROM. By doing so, I recommend that you give me the permission to try to work with users on your ROM thread to fix bugs that may possibly be kernel related. On important idleKernel updates, I may visit your thread and notify users of the changes and give them a link back to this thread.
You may also recompile idleKernel with your own changes, and give it a different name if desired. Credit to me is not necessary, but you must keep a branch with the complete source code on a publicly visible site like GitHub, and link to that from your thread. I have a guide in the post underneath this on how to do that.
If you wish to change the default settings of ikconfig when distributing the kernel in your ROM, the easiest way would be to mount /data in your recovery flash script, check for existence of /data/data/idlekernel, if it doesn't exist, create it and write values to a file for every setting you wish to change. Valid files are:
Code:
/data/data/idlekernel/paneltemp - values: -60 to 0 (default 0)
/data/data/idlekernel/panelcolor - values: 0 to 4 (default 2)
/data/data/idlekernel/scaling_max_freq - values in Hz: 652800, 883200, 1267200, 1574400, 2265600 (default), 2496000, 2726400
/data/data/idlekernel/screen_off_maxfreq - values in Hz: 652800, 883200, 1267200 (default), 1574400, 2265600
/data/data/idlekernel/cpu_governor - values: ondemand, interactive (default), performance
/data/data/idlekernel/gpu_governor - values: msm-adreno-tz (default), powersave, performance, simple_ondemand
/data/data/idlekernel/tcp_congestion_control - values: cubic (default), westwood, reno
/data/data/idlekernel/io_scheduler_internal - values: noop, deadline, row, sio (default), fiops
/data/data/idlekernel/io_scheduler_external - values: noop, deadline, row, sio (default), fiops
/data/data/idlekernel/use_spi_crc - values: Y, N (default)
/data/data/idlekernel/supersu - values: SYSTEMLESS=detect/true/false (default)
XDA:DevDB Information
idleKernel, Kernel for the Samsung Galaxy Note 3
Contributors
jcadduono, Imoseyon, arter97, faux123
Source Code: https://github.com/jcadduono/idleKernel-note3
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 7.1.0
Stable Release Date: 2016-03-27
Created 2015-11-05
Last Updated 2018-07-12
Reserved
EVER WANTED TO MAKE YOUR OWN KERNEL FORK?
jcadduono's GitHub forking crash course
1. Make an account on GitHub!
2. Use the fork button @ https://github.com/jcadduono/idleKernel-note3 or any other repository
3. In your terminal emulator, cd to the location you want your repository.
4. git clone https://github.com/YOUR_USERNAME/idleKernel-note3.git
(optionally add folder name after that command to change it to something other than idleKernel-note3)
5. cd idleKernel-note3
6. git remote add jc https://github.com/jcadduono/idleKernel-note3.git
(this will allow you to send commits to me, cherry-pick commits from me, or pull new commits from me!)
7. git fetch jc
(do this whenever you want updated commits from me to be available to you for cherry-picking or merging)
8. Be sure to set your git author information too, for proper commit info!
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global push.default simple
(that last one just removes a warning message whenever you push commits to github)
9. Whenever you want to pull all the latest and greatest commits from me all at once, run:
git fetch jc
git merge jc
I don't recommend doing that though, because if our branches diverge too much our commits might become incompatible or you might not want some of my changes.
The best way to do it would be to:
git fetch jc
git log jc/X
Replace X with ik-touchwiz/ik-cm12.1/ik-slim5.1, that will show you all of my commits.
For every new commit you want, cherry-pick one at a time to make sure each goes successfully.
git cherry-pick <hash from git log jc/X>
10. Now whenever you make changes to your fork, and you are satisfied with them, you can do:
git add .
(that adds every changed file to the next git commit)
or
git add <file>
then
git diff HEAD
(this is optional, but I recommend looking over everything you changed to make sure it makes sense and you can find extra whitespace or typos!)
11. Once you are satisfied with the changes you've made, you can commit them to the branch history.
git commit -m "made some great change that you detail here"
12. To put your new commits up on GitHub, all you have to do is:
git push
13. If you want to send that commit to me as well, you can do:
git push jc
TIPS
Made a mistake and committed it already? You can time travel through git history using the rebase command!
git rebase -i HEAD~X
Replace X with how far back in commit history you want to edit, trust me time travel is a bad idea.
Just change pick to drop and Ctrl+X Y enter, git will make that commit disappear forever like it never happened.
You can also use various other words like reword to change the message of a commit, etc.
In order for GitHub to accept rebases, you have to add -f to git push, but only if you are changing history you've already pushed to GitHub.
If you've already pushed a commit to GitHub and want to undo it, you can do:
git log
git revert xxxxxx
Replace xxxxxx with the hash of the commit you want undone.
If you haven't pushed to GitHub yet, using git rebase is fine for undoing or rewording commits.
Any time you want to see all the changes from one of my commits, you can use
git show xxxxxxxx
Replace xxxxxxxx with the hash from git log jc/X or even your own git log.
It pipes a nice scrollable colored diff through `less`
If you want to stop it from asking for your GitHub username when you push, in idleKernel-note3 directory do:
nano .git/config
Find a line that looks like:
url = https://github.com/......
Add before github.com so it looks like this:
url = https://[email protected]/...
Now press Ctrl+X Y enter to save.
Tnx
Sent from my SM-N9005 using Tapatalk
Thanks....6.50 works perfectly on my OJ6 rom for the moment....congrats to you and @Imoseyon for his wonderful base......
Awesome.
Just awesome work!
Thanks boss!
Edit: I guess kernel name comes from looooong straight battery lines while phone is in deep sleep!
Please how do I patch this kernel for dual booting it has refused to patch
Sent from my SM-N920C using Tapatalk
waplegend said:
Please how do I patch this kernel for dual booting it has refused to patch
Sent from my SM-N920C using Tapatalk
Click to expand...
Click to collapse
You need to talk to maintainer of dual boot patcher, tell him that his patcher isn't working with kernel style xz compression. xz uses --check=crc32 --lzma2=dict=2MiB when compressing.
piats said:
Edit: I guess kernel name comes from looooong straight battery lines while phone is in deep sleep!
Click to expand...
Click to collapse
exactly!
jcadduono said:
You need to talk to maintainer of dual boot patcher, tell him that his patcher isn't working with kernel style xz compression. xz uses --check=crc32 --lzma2=dict=2MiB when compressing.
Click to expand...
Click to collapse
Alright thanks
Sent from my SM-N920C using Tapatalk
Can u make it compatible with note 5 port rom ?
peped94 said:
Can u make it compatible with note 5 port rom ?
Click to expand...
Click to collapse
Sure. Can you link me to the ROM?
6.5.1 is up, have at her! I'm going to get some shut eye so I will be awake tonight to take my puppy to puppy school.
PS. xda can she be the project logo?
jcadduono said:
Sure. Can you link me to the ROM?
6.5.1 is up, have at her! I'm going to get some shut eye so I will be awake tonight to take my puppy to puppy school.
PS. xda can she be the project logo?
Click to expand...
Click to collapse
Here is the link http://forum.xda-developers.com/galaxy-note-3/development/rom-darklord-s6-port-alpha-t3083087. It is based on android 5.1.1
I was waiting for lean kernel update to run it on 5.1.1 TW from darklord note5 port , I read this and I thought here is solution . Can you make it happened ? 5.1.1 support TW variant . I am using the same rom that peped94 pointed to .
budalica said:
I was waiting for lean kernel update to run it on 5.1.1 TW from darklord note5 port , I read this and I thought here is solution . Can you make it happened ? 5.1.1 support TW variant .
Click to expand...
Click to collapse
Not entirely sure, I'll have a look at the ramdisk tomorrow. I don't see kernel sources provided so I'm hoping all he's done is changed some things in the ramdisk. If I do support it, it will likely only be for N9005 and not the other variants. What happens when you try to run https://idlekernel.com/touchwiz-lol....5.1_2015_11_05/idleKernel-hlte-eur-6.5.1.zip on it?
jcadduono said:
Not entirely sure, I'll have a look at the ramdisk tomorrow. I don't see kernel sources provided so I'm hoping all he's done is changed some things in the ramdisk. If I do support it, it will likely only be for N9005 and not the other variants. What happens when you try to run https://idlekernel.com/touchwiz-lollipop/v6.5.1_2015_11_05/idleKernel-hlte-eur-6.5.1.zip on it?
Click to expand...
Click to collapse
I tried lean kernel and couple others but it does not boot anymore . I have not tried idle kernel yet . I have International n9005 snapdragon running darklord note5 port 5.1.1 touchwiz . I might try to flash it tonight after work . Now I can't I need my phone . NIce dog . Looks like fun dog .
Good job bro!
Thanks again.
I'm testing 6.5.1 work perfect with audax v31(OJ1)
It's smooth fast and supreme battery life
Inviato dal mio SM-N9005 utilizzando Tapatalk
jcadduono said:
This thread is for the N9005, N900A, N900P, N900V, and N900R4 variants of the Galaxy Note 3.
You can find the other thread for N900W8 and N900T variants here.
idleKernel is a fork from leanKernel starting at Imoseyon's v6.3 release.
It adds a few more features, escaping somewhat from the minimalist approach while still staying battery friendly.
It hopes to support many ROMs. You can request support for your ROM through private message or on this thread.
DOWNLOAD
Current version: 6.5.1
Note that there are both SELinux Enforcing and SELinux Permissive versions.
If you are using a custom ROM or f2fs, you will need the permissive version.
TouchWiz 5.0: https://idlekernel.com/touchwiz-lollipop
CyanogenMod 12.1: https://idlekernel.com/cm12.1
SlimRom 5.1: https://idlekernel.com/slim5.1
FEATURES INCLUDED FROM LEANKERNEL
overclockable to 2.72GHz, but limited to 2.2GHz during boot
updated to latest 3.4 Linux (currently 3.4.110)
interactiveX V4 (screen_off_maxfreq)
/sbin/lkconfig script (via terminal emulator, superuser required)
user adjustable panel temperature: -60 to 0, 0 is kernel default (via lkconfig & sysfs)
user adjustable panel colors: 0 to 4, 2 is kernel default (via lkconfig & sysfs)
fix for purple hue/push at low brightness (via panel temperature or panel colors)
cpufreq modified to play better with thermal-engine
latest Linaro gcc 4.9 toolchain
built-in supersu and init.d support
interactive governor updated to latest android source (but ondemand left default)
outdated Samsung code updated to later CodeAurora source (cpufreq, mdss, gpu, msm-bus, etc.)
cpufreq issues fixed
exfat support
ram console enabled for /proc/last_kmsg for kernel crash debugging
FauxSound 3.0
default USB charge speed @ 1200mA
based on N900TUVUFOB6 (February 23, 2015)
IDLEKERNEL FEATURES
rebased on N900W8VLU2DOH1 (August 26, 2015)
tailored individually to support all variants of TouchWiz 5.0, CyanogenMod 12.1, and SlimRom 5.1
ramdisk and kernel compressed with xz-crc
FauxSound updated to 3.6
CodeAurora fixes up until November 5, 2015
new IO schedulers available: sio (default), fiops
new TCP congestion control available: westwood
cubic (default) TCP congestion algorithm updated to Linux 4.3 sources
f2fs full /system /data /cache support (in permissive)
f2fs updated to latest kernel.org Samsung sources
ext4 updated to latest kernel.org sources
performance governor included for benchmarking & games
adreno idler updated to latest arter97 sources (now with 27 MHz idle)
forced fast charge support by Yank555.lu
full sysfs & in rom vibration control with extended range
compiled with -O2 optimizations
some kernel errors and logging functions fixed
lkconfig rewritten and extended, renamed to ikconfig
INSTALLATION
You can flash idleKernel from Odin 3.x in AP slot using tar.md5 files.
You can also flash from TWRP 2.8.x.x using zip files.
CONFIGURATION OPTIONS
Open Android Terminal Emulator or adb shell, become superuser by typing su, press enter, and type /sbin/ikconfig (on most ROMs you can just type ik), press enter again.
Code:
[email protected]:/ $ su
[email protected]:/ # /sbin/ikconfig
idleKernel configurator (based on lkconfig by Imoseyon)
---
0) display current settings
1) panel temperature
2) panel color
3) cpu max frequency
4) cpu governor
5) gpu governor
6) tcp congestion control
7) io scheduler
8) mmc crc
9) check top 10 wake locks (ie. wakeup sources)
please enter a number (or press enter to exit): 0
current settings
----------------
1) panel temperature: 0
2) panel color: 2
3) cpu max frequency:
screen on: 2265600
screen off: 883200
4) cpu governor: interactiveX
5) gpu governor: msm-adreno-tz
6) tcp congestion control: cubic
7) io scheduler:
internal memory: noop deadline row [sio] fiops
external sdcard: noop deadline row [sio] fiops
8) mmc crc: disabled
I recommend the app Kernel Adiutor for control over idleKernel if you are inexperienced in terminal usage, it's very well written and easy to use.
If you want to use the FauxSound controls, please consider buying FauxSound from the Play Store. It's the same developer that wrote the kernel side components to it.
KNOWN ISSUES
Some people have reported their LEDs aren't working?
Screen at 100% brightness after boot (don't report, just turn screen off/on to fix)
If you are affected by a known issue, please get a logcat and kmsg export and post in the thread or pm it to me.
I also need to know your bootloader & ROM version, and which kernel image you flashed.
XDA:DevDB Information
idleKernel, Kernel for the Samsung Galaxy Note 3
Contributors
jcadduono, Imoseyon, arter97, faux123
Source Code: https://github.com/jcadduono/idleKernel-note3
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 6.5.1
Stable Release Date: 2015-11-05
Created 2015-11-05
Last Updated 2015-11-05
Click to expand...
Click to collapse
korean -N900K N900L N900S;Can you make kernel? thanks!!!
google play store download error code 942
after installing this kernal i get the error code 942 when downloading from play store
on aryamod v7.2 rom
before installing this kernal i did clear cache/dalvik cache , kernal cleaner flashed.
then install the new kernal. then clear cache/dalvik again.
i hav already tried the following : in app settings clear cache / delete data for google play and play service store service. rebooted and clear dalvik/ cache again
problem ongoing. please help
limpme said:
google play store download error code 942
after installing this kernal i get the error code 942 when downloading from play store
on aryamod v7.2 rom
before installing this kernal i did clear cache/dalvik cache , kernal cleaner flashed.
then install the new kernal. then clear cache/dalvik again.
i hav already tried the following : in app settings clear cache / delete data for google play and play service store service. rebooted and clear dalvik/ cache again
problem ongoing. please help
Click to expand...
Click to collapse
No helpful information to go on, what kernel are you using (link to me the exact one you downloaded)? What is your bootloader version?
If you aren't using one from the selinux_permissive folder, 942 could maybe happen from sepolicy killing play store activity.
I will need a logcat of you opening play store and getting that error. You can follow these instructions here.
fbzong said:
korean -N900K N900L N900S;Can you make kernel? thanks!!!
Click to expand...
Click to collapse
I will download the firmware and take a look at it...should have a test version up later today.
Can you please also unquote the entire OP.
Edit: There are no OSRC releases for these phones...I am going in blind. I can probably only do N900S though.
I need someone with an N900S, or an N900L, or an N900K to test for me. I need you on either slim 5.1, touchwiz 5.0, or cm 12.1. cm preferred.
ALSO NEEDED:
If you have an N900L or N900K with Touchwiz, and are rooted, I can support your phones if you do the following in terminal emulator or adb:
su
dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img
Please be careful doing this command, because dd + typos are dangerous!
Upload boot.img from your sdcard and give me the link to download it, this will give me your stock ramdisk so that I can copy its necessary variant files into idleKernel's build environment, allowing me to compile idleKernel for N900L or N900K. I already have N900S, as it was available on Samsung's servers.
In the meantime, https://idlekernel.com/test/touchwiz-lollipop
If you have an N900S with Touchwiz please test and report back if it works or what happens.
any chance of adding intelliplug to this kernel?
Disclaimer
Use this kernel at your own risk.
Even though it seems pretty stable at the moment, there might still be some bugs waiting to introduce themselves.
I am in no way responsible for any harm that may come to your device during your use of this software.
Use Kernel Adiutor or EXKM to change kernel settings.
Features
Merged Android security updates up to July 2018
Governors: interactive (default, updated), ondemand (2-phase capable), userspace, performance, powersave, conservative
I/O schedulers: zen (default), sio, bfq, noop, cfq, row, deadline
Intelliplug CPU hotplug (by @faux123)
TCP congestion algorithms: westwood (default), reno, bic, cubic, highspeed, hybla, htcp, vegas, veno, scalable, lp, yeah, illinois
Tegra low power core overdrive
Undervolting support
Zram & kernel samepage merging support
S2W/S2S (swipe on capacitive buttons) & DT2W support
F2FS, NTFS read/write
Disabled GENTLE_FAIR_SLEEPERS
Included SafetyNet patch (please see this post)
Mount namespace support (e.g. for Magisk Hide)
Compiled with Linaro GCC Toolchain 7.x
Optimized and tuned for Cortex A9
Lots of under-the-hood patches and fixes
Known Issues
Occasional reboots under heavy load
Occasional Bluetooth audio stutters on device wake (LineageOS 12.1)
Download
CarbonROM 5.1.1: Link
LineageOS 12.1: Link
CM 11.0 (last official nightly): Link
Installation
Extract the downloaded kernel ZIP and run flash.bat if you're on Windows or flash.sh if you're on Linux or macOS.
OR
Manually flash boot.img using fastboot, and replace all files in /system/lib/modules with the files inside the included modules folder.
Changelogs
20190713
- Recompile with Android logging system (logcat) enabled
- Upgrade to Linaro 7.4-snapshot-2019.01
Click to expand...
Click to collapse
r24 (2018/07/17)
- Merged Android kernel security patches from October 2017 to July 2018
- Added support for the mount namespace for Magisk Hide
- Disabled doubletap2wake and sweep2wake/sweep2sleep by default
r23 (2017/09/06)
- Merged Android security kernel patches for 2017/09/05
- Revert default cpu governor to interactive
- Update intelliactive cpu governor and intelliplug cpu hotplug to latest sources
- Optimized square root algorithm
- Low Power core overdrive: maximize the power of the Tegra 3 low power core
- Over a hundred fixes from Lineage 14.1 kernel for Nexus 7 2012 (list here)
r22 (2017/08/22)
- Use performance cpu governor by default to speed up boot
- Major update to interactive cpu governor
- Remove the other cpu governors (smartass, wheatley, etc) - they weren't used that much anyway
- Updates and fixes to cpu freq handling (from @franciscofranco's Nexus 7 2012 kernel)
- Add touchboost driver
r21 (2017/08/13)
- Add zen iosched
- Merged Android kernel security patches for 2017/08/05
r20 (2017/06/13)
- Re-enable SELinux in preparation for Marshmallow
- Enable xt_qtaguid module to make cellular data work again
- Make dt2w configurable via Kernel Adiutor & co.
- Disabled tegra mpdecision hotplug
r19 (2017/06/12)
- Build with HyperToolchain UBERTCxLinaro (GCC version 6.1.1)
- Fixes for all applicable CVEs as outlined in the Android Security Bulletin (2015 - 2017/06)
r18 (2017/06/10)
- Enabled all TCP congestion algorithms: westwood (default), reno, bic, cubic, highspeed, hybla, htcp, vegas, veno, scalable, lp, yeah, illinois
- Included SafetyNet patch
- Lots of updates from @Lloir's lineage-13.0 branch
r17 (2016/12/20)
- UBERTC 6.2.1 (I finally figured out how to compile UBERTC 6.x on Mac!!!)
- Lots, and I mean lots, of fixes to the kernel from @Andy.Lavr (Linux 3.1.12)
- add governors: badass, smartassH3, wheatley
r16 (2016/11/27)
- Just UBERTC 4.8.5 this time
- Remove fast charging code, it never worked anyway
- Patch for Dirty CoW vulnerability
- Disable SELinux by default
- Allow SELinux mode changing
r15 (2016/04/30)
- tried compiling with SaberMod 4.9 and UBERTC 6.0
- make dt2w work on the entire screen, for real
- Graphite!
r14 (2016/04/18)
- re-enable tegra_mpdecision
r13 (2016/04/10)
- enable support for FiiO DAC
- f2fs: enable security labels and consistency checking
- don't turn off flashlight on screen off
r12 (2016/04/02)
- add support for FiiO DAC (Cyanogen, Inc.)
- add 2A fastcharge
r11 (2016/03/28)
- add lulzactive, pegasusq, and touchdemand governors
r10 (2016/03/26)
- now dt2w works on the entire screen
- changes to default values for smartmax(_eps)
- re-add smartassv2 and lagfree
r9 (2016/03/24)
- successfully compile with UBER Toolchain 4.8.5
r8 (2016/03/19)
- patches to android/binder
- patches to baseband code
- add 'extra free kbytes' tunable to sysctl
- increase max volume (unknown if placebo)
r7 (2016/03/13)
- arm: make return_address available for ARM_UNWIND
- remove all traces of nVidia hotplug
- reduced dmesg log spam
- more compiler flags
r6 (2016/03/12)
- removed cpuquiet
- disabled mpdecision and nvidia hotplug
- added @faux123's intelliplug, set it as default
- added smartmax_eps governor
- enabled cgroups
- disabled gentle fair sleepers
r5 (2016/03/10)
- patches to low memory killer
- add tegra mpdecision
- remove smartassv2 and lagfree
r4 (2016/03/09)
- patches to s2w/dt2w
- add smartassv2 and lagfree (untested)
r3 (2016/03/08)
- added intelliactive governor
- patches to BFQ scheduler
r2 (2016/03/07)
- integrated a few modules into kernel
- use performance as default governor
r1 (2016/03/06)
- initial release
Click to expand...
Click to collapse
Credits
@Lloir
@XtheOne
@faux123
@show-p1984
@maxwen
CyanogenMod
everyone who tested! :fingers-crossed:
Kernel Information
Source: GitHub
Compiler: GitHub
Branch: master
Linux kernel version: 3.1.10
Defconfig: enrc2b_defconfig
Screenshots
Sample kernel settings
{
"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"
}
Benchmarks
I know benchmarks mean nothing, but I ran five benchmarks on this phone using Pulsar. You know, for posterity
Kernel settings etc. used during benchmarking
Governor: smartmax (with intelliplug enabled)
Min/Max Freq: 51/1700 MHz
I/O Sched: sio (with 1280KB readahead)
Memory: KSM enabled, Aggressive LMK settings
Undervolt: (in order from 475-1700MHz) 700, 750, 825, 875, 925, 975, 1000, 1050, 1100, 1150 mV
Click to expand...
Click to collapse
Screenshots of scores
AnTuTu
3DMark
Geekbench 3
Vellamo
Note: The WebView Library installed on the device during benchmarking is NOT the one included in CM (old); rather, it's Google's version (new).
Quadrant
Frequently Asked Questions (FAQ)
My device won't boot after flashing this kernel / I have no reception.
Make sure you flashed boot.img via fastboot AND copied the .ko files inside the zip onto the "/system/lib/modules" folder inside your device.
Remember, this kernel only works on the ROMs outlined in the downloads section.
My SIM card disconnects at random.
http://forum.xda-developers.com/showpost.php?p=35224237&postcount=6
SetCPU/No-frills/etc won't work!
Use Kernel Adiutor. (It's free.)
How to build on Linux?
There are already lots of tutorials on this, just use Google.
How to build on Mac OS X?
Setting up a working build environment on Mac proved difficult as there aren't that many tutorials available on the internet, and the ones that did exist didn't help me solve the weird errors I got when building. This stumped me for a good two weeks, but finally figured it out.
So here goes:
Get the XCode commandline tools.
If you already have XCode installed, good for you. You can skip this step.
If you don't have XCode, there's no need to waste hours of your time on downloading this 6GB app when all you need is 200MB of it. Open Terminal and enter
Code:
xcode-select --install
If that takes too long, you can also try downloading the XCode Command Line Developer Tools from here (log in with your Apple ID first).
Once you have that installed, proceed to the next step.
Install build dependencies using Homebrew
Homebrew is a very important tool for developers on Mac. If you don't have it yet, install it by entering this in Terminal.
Code:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
When that's done, enter this:
Code:
brew update
brew install findutils gnu-sed gnupg xz ccache android-platform-tools libmpc
brew install homebrew/dupes/ncurses
Once it's done, proceed.
Make a disk image
The default filesystem in OS X isn't case-sensitive, and the Linux kernel source doesn't like that. Enter this in Terminal:
Code:
hdiutil create -type SPARSE -fs "Case-sensitive Journaled HFS+" -size 15g -volname "enrc2b" -attach ~/Desktop/Android
You can change "15g" to any size you want, but at least 20 GB is recommended.
You can also change "enrc2b" to any volume name you want. Just make sure you remember it!
Download the kernel source and toolchain
Replace "enrc2b" below with your chosen name if you used something else.
Code:
cd /Volumes/enrc2b
git clone https://github.com/jareddantis/pulsar-kernel_enrc2b -b master kernel
git clone https://android.googlesource.com/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8 toolchain
git clone https://github.com/CyanogenMod/android_external_elfutils.git elfutils
If that takes too long, hit Ctrl+C to stop the Git processes as needed. Repeat this step, but use "git clone --depth 1" instead of "git clone".
Use ccache
ccache greatly speeds up subsequent compilations by caching compiled code files in a specified directory. Make that directory by
Code:
cd /Volumes/enrc2b
mkdir ccache
To enable ccache, go to the next step.
Prepare environment
Edit your Bash variables by
Code:
nano ~/.bash_profile
Insert these lines at the end of the file:
Code:
export LANG=C
export LC_CTYPE=C
export ARCH=arm
export SUBARCH=arm
export KBUILD_BUILD_USER="YourNameHere"
export KBUILD_BUILD_HOST="YourComputerCodenameHere"
export CROSS_COMPILE="ccache /Volumes/enrc2b/toolchain/bin/arm-eabi-"
export USE_CCACHE=1
export CCACHE_DIR=/Volumes/enrc2b/ccache
KBUILD_BUILD_USER and KBUILD_BUILD_HOST can be anything you want. Just don't forget the quotes.
Enable ccache by
Code:
source ~/.bash_profile
ccache -M 10G
Cache sizes of at least 5 GB are recommended, but don't forget to leave space for the kernel compilation itself!
Compile
Code:
cd /Volumes/enrc2b/kernel
make clean && make mrproper
make cm_enrc2b_defconfig
make menuconfig # Optional - only if you're changing kernel settings
make -j4 HOSTCFLAGS="-I/Volumes/enrc2b/elfutils/libelf"
Replace the "4" in "make -j4" with the number of CPU cores (physical and logical) that your Mac has.
Your kernel should now be compiling. It took about 8 minutes to finish on my 2014 base-model MacBook Air.
Prepare for flashing
Code:
cd /Volumes/enrc2b
mkdir flashing
cd flashing
Download mkbootimg and unmkbootimg from here. Unzip inside the "flashing" folder we just created.
Your just-compiled kernel will be located at kernel/arch/arm/boot/zImage, copy that here by
Code:
cp /Volumes/enrc2b/kernel/arch/arm/boot/zImage ./
Now you'll need a copy of the boot.img in the Lollipop ROM you're currently using. Either extract that from the ROM zip or get "boot.emmc.win" from your TWRP backup.
My boot image is called "boot.img". Assuming I've already copied boot.img inside the "flashing" folder, I do
Code:
unmkbootimg -i boot.img
Two new files, ramdisk.cpio.gz and kernel, will be created. Delete ramdisk.cpio.gz and do this to put together your freshly-built kernel:
Code:
mkbootimg --base 0 --pagesize 2048 --kernel_offset 0x10008000 --ramdisk_offset 0x11000000 --second_offset 0x10f00000 --tags_offset 0x10000100 [B]--kernel zImage[/B] --ramdisk ramdisk.cpio.gz [B]-o boot.img.new[/B]
Reboot your phone into fastboot, connect it via USB, and do this to test your kernel.
Code:
fastboot flash boot boot.img.new
fastboot reboot
If everything goes right, you should now be booting your very own kernel. :highfive: :good:
If not, you can just reboot back into fastboot and flash back the original boot.img...
Code:
fastboot flash boot boot.img
fastboot reboot
...and try to see where the kernel went wrong.
How to report bugs?
If it's just the usual lag, don't report it here. The HOX+ is an old device running new software, we have to live with these quirks. Try using apps like Greenify and changing your kernel settings to keep your hardware resources in check. Regularly running fstrim on your partitions also helps.
If it's kernel-specific, like random reboots, make sure you can reproduce the problem.
Once you have reproduced the problem, immediately reboot into recovery and adb pull /proc/last_kmsg. Attach that here and I'll try to take a look at it when I have time.
I can't promise a fix, though - I'm only a high school student, not an expert C developer. :laugh:
Not sure why your using that kernel...
https://github.com/Lloir/htc_kernel_oxp/commits/cm-12.1
That's the one that was being used in 12.1
Lloir said:
Not sure why your using that kernel...
https://github.com/Lloir/htc_kernel_oxp/commits/cm-12.1
That's the one that was being used in 12.1
Click to expand...
Click to collapse
Cool! I must have missed that somehow. Will try compiling from that tonight. Thanks! ?
Sent from my One X+ using Tapatalk
Hello,
Great to hear somebody is working on a custom 5.1 kernel.
Are you open to suggestion?
Do you need beta testers?
I'm here.
I would like to have kernel frequency scaling enabled, in manner I can use SetCPU app to save battery.
I will wait for the new compilation, and then I can help you with the tests.
I've currently installed CarbonROM 5.1.1, so I'm ready to test!
Ciao,
Giovanni
croccodillo said:
Hello,
Great to hear somebody is working on a custom 5.1 kernel.
Are you open to suggestion?
Do you need beta testers?
I'm here.
I would like to have kernel frequency scaling enabled, in manner I can use SetCPU app to save battery.
I will wait for the new compilation, and then I can help you with the tests.
I've currently installed CarbonROM 5.1.1, so I'm ready to test!
Ciao,
Giovanni
Click to expand...
Click to collapse
Suggestions are always welcome, but as I know very little about C/C++, perhaps it'll take a while for suggestions to be completed and included in the kernel.
Anyway, yes, alpha/beta testers are also welcome
If by "kernel frequency scaling" you mean being able to set min/max cpu freq, it's already working in 0.2-a, just use Kernel Adiutor for changing settings. I'm not sure if SetCPU will work.
If you /do/ plan to test, however, could you please send me a copy of the boot.img in Carbon 5.1.1? My internet's quite slow and I'm not sure if the ramdisk in CM (which is what this kernel is using) is the same as the ramdisk in Carbon. Thanks!
Well,
Here is the Carbon boot.img:
Cabon ROM boot.img
Hope this is what you need.
Ciao,
Giovanni
croccodillo said:
Well,
Here is the Carbon boot.img:
Cabon ROM boot.img
Hope this is what you need.
Ciao,
Giovanni
Click to expand...
Click to collapse
Thanks! That was what I needed.
Can you try this kernel? pulsar-enrc2b-0.3beta-CARBONROM-TEST-20160308.zip
Just replace all the .ko files in /system/lib/modules with the .ko files inside the "modules" folder in the ZIP, then flash boot.img with fastboot. Remember to take a nandroid of /system and boot first :fingers-crossed:
Tell me if it boots up. :laugh:
OK, here we are.
With your 0.31 version, the phone boots up, seem fine, S2W works, but there's no SIM!
I cannot access the SIM, so no phone calls are possible.
Please find attache last_kmsg.txt file (no last_boot.txtx because the source file is always empty).
I also attached a screenshot, you can see in the status bar a strange icon on the left of battery one; what does it means?
However, all the rest seems to work, the phone seems fast and responsive, no lags, and S2W works like a charm.
Great job!
Just to let you know: even the boot.img shipped with the Carbon ROM I have problems with the sim, I have to insert the pin twice, and sometime, during the day, I have to reinsert the pin again, one or twice a day.
As far as I remember, there was a problem with SeLinux rights. But probably I'm worng.
By the way, WiFi works great.
Now, back to original ROM kernel (this is my daily driver).
Ciao,
Giovanni
croccodillo said:
OK, here we are.
With your 0.31 version, the phone boots up, seem fine, S2W works, but there's no SIM!
I cannot access the SIM, so no phone calls are possible.
Please find attache last_kmsg.txt file (no last_boot.txtx because the source file is always empty).
I also attached a screenshot, you can see in the status bar a strange icon on the left of battery one; what does it means?
However, all the rest seems to work, the phone seems fast and responsive, no lags, and S2W works like a charm.
Great job!
Just to let you know: even the boot.img shipped with the Carbon ROM I have problems with the sim, I have to insert the pin twice, and sometime, during the day, I have to reinsert the pin again, one or twice a day.
As far as I remember, there was a problem with SeLinux rights. But probably I'm worng.
By the way, WiFi works great.
Now, back to original ROM kernel (this is my daily driver).
Ciao,
Giovanni
Click to expand...
Click to collapse
Did you use "pulsar-enrc2b-0.3beta-CARBONROM-TEST-20160308.zip" or "pulsar-enrc2b-0.3.1beta-20160309.zip"? Because the two have different ramdisks (and therefore different SELinux contexts).
The last_kmsg you attached was from a previous boot, meaning it was from the time when you were using the original kernel (Linux version 3.1.10-gb1789b5 [email protected]). You have to reboot twice before the correct logs appear (Linux version 3.1.10-pulsar+ [email protected]), sorry
If you can, try the zip I linked to in post #9 OR this newer zip.
P.S. Yeah, I also have the issue where I have to reinsert the SIM, it's quite annoying. But recently the issue hasn't occurred, so I'm happy
Ops, my fault, I tried "pulsar-enrc2b-0.3.1beta-20160309.zip", completely forgotten about Carbon ROM different ramdisks...
I will try the right one, last version, tonight.
However, even the wrong one boots up and works quite fine!
Ciao,
Giovanni
Hello Devs I was stuck on Jeallybean rom Viper for a loooooong time, and i relog into xda and boom you are aworking on a new kernel for CM 12 but wich Rom are u using? im willing to try another rom cause im a lil upset with my slow single task phone now... dunno why but it seems to be hard to get more than a 3 apps running. cause everything goes slooow as hell.. Thanks in advance and keep up teh good work
Installed the new and right kernel (pulsar-enrc2b-CARBONROM_TEST-0.3.2beta-20160309.zip), the S2W is quite buggy, the rest seems to work.
I still have the problem with the SIM, I can't use it; I still have the "No sim" icon on the status bar, and if I try to make a call the dialer tells me to exit the "flight mode".
Attached the right last_kmsg.
Ciao,
Giovanni
+ Que PPC said:
Hello Devs I was stuck on Jeallybean rom Viper for a loooooong time, and i relog into xda and boom you are aworking on a new kernel for CM 12 but wich Rom are u using? im willing to try another rom cause im a lil upset with my slow single task phone now... dunno why but it seems to be hard to get more than a 3 apps running. cause everything goes slooow as hell.. Thanks in advance and keep up teh good work
Click to expand...
Click to collapse
Hi, I'm using the latest CM 12.1 (2015/11/27) for One X+ international.
I can get lots of apps running and switch between just fine (with a little lag every now and then, what can we expect from a 4-year-old device?).
Greenify and custom LMK settings help a lot here, too.
croccodillo said:
Installed the new and right kernel (pulsar-enrc2b-CARBONROM_TEST-0.3.2beta-20160309.zip), the S2W is quite buggy, the rest seems to work.
I still have the problem with the SIM, I can't use it; I still have the "No sim" icon on the status bar, and if I try to make a call the dialer tells me to exit the "flight mode".
Attached the right last_kmsg.
Ciao,
Giovanni
Click to expand...
Click to collapse
Thanks for the log, much appreciated.
Does the SIM issue occur on stock kernel? This is weird, SIM works perfectly fine on mine. Maybe I need to use the kernel source CarbonROM is using.
aureljared said:
Hi, I'm using the latest CM 12.1 (2015/11/27) for One X+ international.
I can get lots of apps running and switch between just fine (with a little lag every now and then, what can we expect from a 4-year-old device?).
Greenify and custom LMK settings help a lot here, too.
Click to expand...
Click to collapse
Thanks a lot man, will try first the solution using greenify... even tho reading and writing on XDA seeing news, and participating makes me back to the Flash hunger adiction jejeje
Keep it up bud you are doing right, and yes, what can we spect for such an old device? at least a good old custom rom newer... its just for fun
I'm proud to announce that a release candidate is now available.
v0.3.3 rc1 (2016/03/12)
Changelog
- removed cpuquiet
- disabled mpdecision and nvidia hotplug
- added @faux123's intelliplug, set it as default
- added smartmax_eps governor
- enabled cgroups
- disabled gentle fair sleepers
Click to expand...
Click to collapse
This is the first major release, and the device runs a little bit smoother (and cooler!) with it.
Hope you guys enjoy :good:
P.S. See benchmark scores in post #2
Hello,
Still here.
As you know, I'm not able to use my sim with your Kernel and CarbonROM, so I tried a different route: installed Cyanogenmod 12.1 as you, installed your kernel over it and guess what? I still have NO SIM!!!!
With the stock Cyanogenmod 12.1 kernel, instead, the sim works fine (I'm using it right now).
What's the matter?
It seems the problem is not related to CarbonROM, but there's something going on with your kernel and my mobile...
Any idea?
I don't think so, but could it be I have the wrong radio?
Bootloader screen:
*** UNLOCKED ***
ENRC2B_U PVT SHIP S-ON RL
HBOOT 1.72.0000
CPLD-None
MICROP-None
RADIO-3.1204.171.33
eMMC-bootmode: disabled
CPU-bootmode: disabled
HW Secure boot: enabled
MODEM PATH: OFF
Jun 21 2013, 17:36:36
Attached last_kmsg from my mobile, running Cyanogenmod 12.1 and your 3.3 kernel.
Ciao,
Giovanni
Hello,
Still here.
As you know, I'm not able to use my sim with your Kernel and CarbonROM, so I tried a different route: installed Cyanogenmod 12.1 as you, installed your kernel over it and guess what? I have NO SIM again!!!!
With the stock Cyanogenmod 12.1 kernel, instead, the sim works fine (I'm using it right now).
What's the matter?
It seems the problem is not related to CarbonROM, but there's something going on with your kernel and my mobile...
Any idea?
I don't think so, but could it be I have the wrong radio?
Bootloader screen:
*** UNLOCKED ***
ENRC2B_U PVT SHIP S-ON RL
HBOOT 1.72.0000
CPLD-None
MICROP-None
RADIO-3.1204.171.33
eMMC-bootmode: disabled
CPU-bootmode: disabled
HW Secure boot: enabled
MODEM PATH: OFF
Jun 21 2013, 17:36:36
Attached last_kmsg from my mobile, running Cyanogenmod 12.1 and your 3.3 kernel.
Ciao,
Giovanni
also no sim
hi aureljared,
first thx for your work. as like as croccodillo i also have no sim. im running cm12.1 from lloir of course. i've tried selinux in permissive and enforcing mode but with no luck. see logs...
:cyclops: