[KERNEL][Mar 10][b49] _motley kernel for the N4 (add faux sound control) - Nexus 4 Original Android Development

_motley kernel for the Nexus 4
Disclaimer: You know the gig...I am not responsible for damaging your device or voiding your warranty. Play at your own risk!
ROM devs/cooks: If you want to use this kernel in your ROM, I am fine with that, but please include a "thanks" AND a link back to this thread. Thanks!
Features
Highly customizable with scripts. See post #2 for all the tuning options.
Google 3.4 base. All stock features are of course supported (camera, NFC etc.)
Compiler optimizations (-O2 + others) - using 2012.12 Linaro toolchain
Full ramdisk install with init.d support for stock/AOSP (CM already has support, for stock you must install busybox!)
CPU Overclock steps 1.56, 1.62, and 1.67GHz (default freq is still stock on boot, OC is optional)
304MHz lowest CPU freq step added with lower voltage than stock, since the device spends a lot of time at this frequency.
Safe UV by default for nominal, fast, and faster binned chips.
Voltage control - be careful to not save the setting on boot until you are 100% sure it is stable! (thanks faux123! + my tweaks)
In-kernel auto_hotplug (thanks to thalamus). I have added and exposed all the tuning parameters and a debug mode to userspace.
Customized in-kernel thermal solution smart scaling, dynamic polling, and configurable throttle temp.
Custom PowerHAL module (spam-free Android log from PowerHAL events)
Controllable touchboost frequency and duration
Gamma and Sound control (thanks faux123!)
Fsync control (3 modes)
USB Force Fast Charge
I/O schedulers - SIO(optimized), deadline (optimized), row, cfq, noop, and fiops
TCP Congestion Control (several choices available) - veno is the default
Governors - Interactive (default), OnDemand, PowerSave, Conservative
CIFS, NFS, NTFS r/w, TUN - built-in, no need for any kernel modules
Other misc patches and tweaks (see github link at the bottom of this post)
GPL compliant - source is kept up to date at github.com and released at the time the kernel is released to the public via this post. Demand that other devs do the same!
Requirements (please read carefully and visit the other dev threads as necessary)
Boot-loader must be unlocked and you must have a custom recovery installed (CWM or TWRP).
Have your ROM zip on your /sdcard so you can restore your whole ROM if necessary.
Do a complete backup using custom recovery so you can restore your boot.img and ROM if necessary!
System Tuner is recommended for monitoring/tuning the CPU, especially for voltage control. Other kernel apps like faux123's will likely work as well, but they have not been tested.
AOSP ROMs including stock - for init.d support, you must have a working busybox install in /system/xbin.
Installation
Check the requirements above and read release notes below for the build # you are installing for any extra instructions!
If coming from another kernel, read the instructions in red below and follow them before flashing.
Flash the the kernel zip using your custom recovery.
Optional: if you want to revert back to what you had, restore your backup of your boot.img in recovery. Another option for reset back to stock is to flash the stock reset zip above. For other custom ROMs, dirty flash your custom ROM in recovery to get your default kernel and ramdisk back.
If you have issues and are coming from another custom kernel or ROM, follow these instructions first before the install. Many custom kernels are changing the ramdisk or other binaries that require a reset before moving back to stock or another kernel.
Reset for Stock ROM - flash this reset package that includes the stock kernel, ramdisk, thermald, mpdecision, and PowerHAL binary. This can also be used if you are using the stock ROM and want to go back to stock.
4.2.1 View attachment N4_421_stock_kernel_and_components.zip
4.2.2 View attachment N4_422_stock_kernel_and_components.zip
Reset for any non-stock ROMs like CM, AOKP etc - dirty flash your current ROM or nightly zip then your gapps in recovery (just flash, no wiping). This will give you back your original ramdisk, kernel, and other binaries that other kernel devs may have tweaked, renamed, replaced etc.
Builds
Build 49 - 2013-03-10 (stable) - Android 4.2.2
Added faux123's "Sound Control: Sound control for WCD93xx codec" for testing (thanks!)
AnyKernel UPDATE ONLY - must already be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_49.zip
Build 48 - 2013-03-09 (stable) - Android 4.2.2
Turned off touchscreen accuracy filter by default and allow users to turn them on via the same interface (see git for all the details). In the commit comments on github, I also document how the stock kernel already allows these adjustments, but now we have easier control of them individually. Let me know if this fixes issues for those having them.
Reverted back the changes for notification delays. They didn't fix anything. If you swapped out your prime WiFi INI file, I recommend changing back to stock for now.
AnyKernel UPDATE ONLY - must already be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_48.zip
Build 44 - 2013-03-04 (beta) - Android 4.2.2
Updated touchscreen Accuracy Filter Control with franco's cleanup patch. Reverting back to a single threaded workqueue should hopefully help fix the touchscreen issues some reported.
Per Google's kernel devs, we should not have CONFIG_NF_CONNTRACK_SIP/CONFIG_NF_NAT_SIP turned on in the config. Testing is under way (introduced in b43 posted in the thread).
AnyKernel UPDATE ONLY - must already be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_44.zip
Build 42 - 2013-03-02 (beta) - Android 4.2.2
Added faux123 Speaker Amp Control by request for testing (thx!)
Added franciscofranco touchscreen Accuracy Filter Control by request for testing (thx!)
Reverted "Mako Gamma: allow values greater than 31 for array positions 5 and 6". Brought to faux's attention and his app is now fixed, so this is no longer needed. Values should be capped at 31 like we have always known.
AnyKernel UPDATE ONLY - must already be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_42.zip
Build 40 - 2013-02-25 (stable) - Android 4.2.2
Added upstream smp patches from 4.2.1 back into 4.2.2 build
Added optimized ARM RWSEM algorithm backin into 4.2.2 build
AnyKernel UPDATE ONLY - must be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_40.zip
Build 39 - 2013-02-20 (stable) - Android 4.2.2
Added usb/hsic patches into 4.2.2 build
Turned off prima debugging in 4.2.2 build
AnyKernel UPDATE ONLY - must be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_39.zip
Build 38 - 2013-02-17 (stable) - Android 4.2.2
Loosen up validation for gamma interface to allow values greater than 31 for array positions 5 and 6.
AnyKernel UPDATE ONLY - must be on b37 or higher first! Anykernel is the same for both Stock/AOSP and CM 10.1
View attachment motley_anykernel_422_nexus_4_build_38.zip
Build 37 - 2013-02-17 (stable) - First build with 4.2.2 support added
4.2.2 - rebased upon android-msm-mako-3.4-jb-mr1.1, ramdisk updated etc.
All major features added back in, but I have left a few patches out (hsic etc.) so we can evaluate before adding them back in.
Back to b32 colors, from here out you are on your own using the gamma interface of choice.
Fixed issue where fsync was still on like in previous builds. Dynamic fsync is now the default (see post 2)
Added franco gamma interface, so the kernel can support all popular interfaces until/if a standard interface is adopted.
Added refresh_screen sysfs (see post 2). This should only be called by apps or scripts while adjusting colors "live" with the motley or faux interface and NOT implemented on startup via init.d or apps since it will compete with the normal power on process and the colors will be set twice.
Use a 4.2.2 ROM and binaries. I will not troubleshoot any issues if you use this on 4.2.1 ROMs and binaries
Stock/AOSP with init.d support: View attachment motley_422_n4_exp_build_37_initd.zip
-or-
CM 10.1: View attachment motley_422_build_37_CM.zip
Previous builds and release notes:
Exp build 35 - 2013-02-11 (stable) - Last build for 4.2.1 for now
New default gamma values (this is an experiment, so let's see how everyone likes it)
cifs support for 4.2 (no modules required) - make sure you pass unc=\\\\server_name\\share_name as a mount option, or it will not work. It is a problem in the mainline kernel for 3.4 where they seem to have accidentally made the unc option mandatory. Also, no promises that the mount will be solid after the device sleeps. For now, I suggest you unmount after you are done using the file system unless we find a workaround. I have tested with cifsmanager from the app store. Other apps may or may not work.
Vibrator default is now 80 in init.mako.rc. This thing was anemic and it was about time.
FIOPS io scheduler added for testing by request
Applied several kernel\sched patches
auto_hotplug tweaks, nothing major.
Added dynamic fsync (thanks faux123) - I will update post 2 with the 3 different FSYNC options. Both toggles were left in the kernel since they are both available in different apps. If someone liked it the way it was, I didn't want to take that away.
Stock/AOSP with init.d support: View attachment motley_n4_exp_build_35_initd.zip
-or-
CM 10.1: View attachment motley_exp_build_35_CM.zip
Exp build 32 - 2013-02-03 (stable)
Merged Google's latest kernel patches for off-mode charging (from android-msm-mako-3.4-jb-mr1)
Interactive governor default tweaks - seems to give better user experience in testing thus far.
One other patch from Google's common 3.4 repo (sync: Fix race condition between merge and signal)
AnyKernel UPDATE ONLY - You must already be on exp b31. If not flash that first, then flash this. This works for both Stock/AOSP and CM
View attachment motley_anykernel_nexus_4_EXP_build_32.zip
Exp build 31 - 2013-01-28 (stable)
Added support for generic gamma control via sysfs with scripts (will update post #2 with details and examples). Again, thanks to faux123 for sharing his code.
Back on Linaro toolchain. Touch Control (PGM) support is still working fine.
TCP Congestion Control default changed to "veno" to see if it helps achieve faster speeds for some. Also added cubic, bic, illinois, and yeah for testing. Westwood+, reno, and vegas still available.
Stock/AOSP with init.d support: View attachment motley_n4_exp_build_31_initd.zip
-or-
CM 10.1: View attachment motley_exp_build_31_CM.zip
-or-
AnyKernel UPDATE ONLY - If you already on this kernel exp b17 or higher. For both Stock/AOSP and CM (keep this around for those who may want it for some reason)
View attachment motley_anykernel_nexus_4_EXP_build_31.zip
Exp build 28 update - 2013-01-24 (alpha 3)
Added support for gamma control (thanks to faux123, the faux123 app is required). Will likely provide something more generic in the future for tuning via sysfs without a 3rd party app.
Added some modest CPU OC steps of 1.56, 1.62, and 1.67GHz (voltages are scaled by bin but might not yet be optimal as the defaults). It still boots to the stock 1.5GHz, so it won't affect those that don't want to OC.
Giving the Google 4.7 toolchain a try. This base will give Touch Control a chance to work when the dev has a change to take a look. I am also inquiring to see if he thinks we can give Linaro a try. Google has made a lot of strides in this latest version, but I don't think it is yet on par with Linaro. I may do another alpha build with Linaro so we can compare. Perhaps I don't have the proper optimizations in place. we will see where this goes.
Thermal throttling improvements (new tuneable "min_freq_index" - what freq does it throttle down to before returning to max?)(default = 7 = 1.13GHz). This is the index in the frequency table as seen in Trickster MOD, System Tuner etc. It is zero based (i.e. 304MHz is zero). Several other changes, see my git commits for details.
Touch Control (PGM) support now available (thanks to bponury for his support!)
AnyKernel UPDATE ONLY - If you are not on b17 or higher already, flash build 17 first (Stock/AOSP or CM), then flash the AnyKernel zip for both Stock/AOSP and CM
Exp build 22 update - 2013-01-19 (stable)
Added hsic/usb patches (thanks to code aurora, harsh, thracemerin, and all the other kernel devs that helped with testing and troubleshooting)
See this post for some more info and why it was first released. It is now considered beta and not alpha.
AnyKernel UPDATE ONLY - If you are not on it already, flash build 17 first (Stock/AOSP or CM), then flash the AnyKernel zip for both Stock/AOSP and CM
motley_anykernel_nexus_4_EXP_build_22.zip
Exp build 21 update - 2013-01-19 (stable)
I am hoping this has us back to the b12 smoothness and we have settled in on some good defaults for moving forward.
Upgraded prima WLAN driver to 3.2.1.13 (connected to 3 different WiFi networks yesterday and it is working flawless for me)
Interactive gov tweaks based upon testing and feedback (boostpulse freq is now stock)
Default throttle temp now 67C
Other minor patches: auto_hotplug kick start on resume, update L2 voltage table, etc. (see github)
AnyKernel UPDATE ONLY - If you are not on it already, flash build 17 first (Stock/AOSP or CM), then flash the AnyKernel zip for both Stock/AOSP and CM
View attachment motley_anykernel_nexus_4_EXP_build_21.zip
Exp build 17 - 2013-01-16 (stable)
Back to new 3.4 Google interactive governor base like in b12
PowerHAL and boostpulse setup from b12 is also back. Touchboost default settings have been tweaked based on user feedback (how long does it boost? boostpulse_duration, what freq to boost to? hispeed_freq). If you want to use OnDemand, or don't want any touchboost, then you can flash the "inert" PowerHAL at the bottom of this post.
auto_hotplug enhancements rev 3 (see github) - I will update post #2 as soon as I can. We now have control over how many cpu cores you want online (for battery or performance). Thanks to mathkid for the min_online_cpus commit. It gave me the idea for max_online_cpus.
Back to the partial mako display partial revert by popular demand. My RBG tweak was reverted back to stock (255,255,255). Remember, the RGB can be changed in this kernel and it will persist after screen off/on without an app (see post #2). Trickster MOD can be used to tweak RGB.
OnDemand gov - latest patches from Code Aurora.
Note: Make sure you test with out of the box voltages, especially in the mid-range! There is already a healthy amount of under-volting in this kernel for all binned chips except "slow".
Stock/AOSP with init.d support: View attachment 1651464
-or-
CM 10.1: View attachment 1651468
Exp build 14 - 2013-01-14 (beta)
Reverted back to stock interactive governor base.
Added touchboost changes into stock interactive gov base and tweaked touchboost default settings based on user feedback.
Reverted back to b10 inert PowerHAL (same a separate flash I provided for b12 for those having issues)
Reverted one other scheduler patch that I thought could be playing a role in the reboot. I also didn't think it showed benefits after testing.
Notes: you can control touchboost using the interactive gov (turn off/on touchboost: input_boost, length of boost pulse: above_hispeed_delay, freq to boost to: hispeed_freq)
Stock/AOSP with init.d support: View attachment 1645970
-or-
CM 10.1: View attachment 1645993
Exp build 12 - 2013-01-13 (beta)
Touchboost control - connected custom Android PowerHAL module with interactive touchboost. Then, I married interactive touchboost with autoplug touchboost. If you want to tune tune interactive governor touchboost differently, you can use sysfs scripts, Trickster MOD or other capable apps (how long does it boost? boostpulse_duration, what freq to boost to? hispeed_freq)
Added touchscreen patch (thanks faux123) - seems to make the touchscreen more usable and responsive in my testing.
autoplug enhancements rev 2 - added ability to change # of sampling_periods on the fly using a module parameter (whilst preserving past history). Added get/set methods for all module parameters to make them safe. See github for all the details.
Added "row io scheduler by request - SIO is still the default for now.
Some other misc patches
Stock/AOSP with init.d support: View attachment 1641515
-or-
CM 10.1: View attachment 1641518
Exp build 10 - 2012-12-30 (stable)
Important: Since freqs have been added at the high end below 1.5GHz for smoother scaling, if you use voltage control make sure voltage data is not applied on start-up since you won't have the values for the new freqs.
Userspace tuning for thermal and hotplug (see post 2 for details shortly)
Enhanced thermal throttling and frequency scaling (see github commits for details, too many changes to list here)
Merged Code Aurora HSIC patches that hopefully will reduce duration of the infamous wakelock (and revert of prior trial workaround)
Added optimized ARM RWSEM algorithm
SMP patches from 3.5 that address hotplug efficiency and lay the foundation for other future patches I am studying.
Some other minor patches and changes (see github)
Stock/AOSP with init.d support: View attachment 1604553
-or-
CM 10.1: View attachment 1604557
Exp build 8 - initial release
Same base features as build 57 mainline
ARM auto hotplug v0.220 by _thalamus
Custom PowerHAL (chatter-free Android log)
Interactive (default) - with input boost
MSM-thermal in-kernel solution
thermald and mpdecision are disabled (services are not started in the ramdisk)
Inert PowerHAL library
This is a shell PowerHAL library that allows Android to function and stops the input boostpulse requests
(same as included in b8 and b10 Exp kernels).It was originally released for testing b12, but can be used in other builds. Personally, I would only flash the "inert PowerHAL" if you are using OnDemand full-time and no longer using interactive (set on boot), OR if you are using interactive and want to completely remove the boostpulse requests coming from Android. In the later case, UI performance may be sacrificed a bit for better battery.
View attachment motley_inert_powerhal.zip
Mirror site - thanks tlongren! - will typically be updated within a day after I post
http://www.longren.org/nexus4/motley
Git repo:
https://github.com/motley-git/kernel-Nexus4
{
"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"
}
(http://www.gnu.org/copyleft/gpl.html)

Setting custom RGB color settings via sysfs
This can be done from the adb shell on your PC, or any terminal app. If you change them, they will not persist after a reboot. However, you can set them in an init.d script if you found another color combination that you like better than the one I have used.
Code:
echo "255 255 255" > /sys/devices/platform/kcal_ctrl.0/kcal
echo 1 > /sys/devices/platform/kcal_ctrl.0/kcal_ctrl
Command 1 sets the color and Command 2 commits them. Stock is 255 255 255.
Setting custom Gamma settings via sysfs - Exp kernel build 31+ only - thanks to faux for sharing his code
Warning: changing these values can be potentially be dangerous to your display if you make a mistake. For those that feel comfortable with what they are doing and want to experiment, please report back and share your findings.
Important, please read!
There are ten digits in the string separated by one space
First digit is a checksum and is never stored. The checksum is simply the sum of the other 9 numbers. This is to make it harder to so the interface is respected and you are forced to think about what you are doing.
There are 3 sysfs interfaces for gamma, one for each color:
Code:
#!/system/bin/sh
# Show the current configuration and the checksum
cat /sys/devices/platform/mipi_lgit.1537/kgamma_red
cat /sys/devices/platform/mipi_lgit.1537/kgamma_green
cat /sys/devices/platform/mipi_lgit.1537/kgamma_blue
Update:
Recently molesarecoming started opening this up and showing us what the values can be used to adjust. Franco then suggested that the white and grays should be swapped in moles original work. So, for init.d values using this interface, we have the following "banks" if values if we agree with Franco on the swap of the whites and grays.
Code:
R: checksum, g_white, g_mids, g_black, 0, g_contrast, g_brightness, g_saturation, g_grey, 2
G: checksum, g_white, g_mids, g_black, 0, g_contrast, g_brightness, g_saturation, g_grey, 2
B: checksum, g_white, g_mids, g_black, 0, g_contrast, g_brightness, g_saturation, g_grey, 2
(the zero in position 5's and the 2's in position 10 are recommended to be left alone since they are currently unknowns)
Minus the checksum, the 27 values mirror the 3 color arrays (3 x 9 = 27) in the actual LG LCD driver. Minus the unknowns, we are left with 21 values. Note that every one of the variables can have their value tweaked by color (saturation for red, saturation for green etc.), however, it is recommended that you start with all the values of one type being the same and then tweak from there if you really want to fine tune.
You have a lot of power in your hands even without fine tuning. Many will argue that fine tuning isn't required. If you look at the stock settings by Google in post 2, they took advantage of fine tuning for whatever reason. Even though many don't like these settings by Google, it shows how flexible the interface can be.
Instructions:
1) Start with a preset config (LG or Google) as shown further below. This is a set of 3 lines, 10 numbers for each line.
2) Tweak columns for their values as above. For example, we tweak contrast and brightness as in faux's original app. We could also do the same for saturation, blacks, whites, grays etc.
Example: start with LG presets with numbers to adjust:
383 114 21 118 0 10 4 80 48 2
383 114 21 118 0 7 4 80 48 2
383 114 21 118 0 5 1 80 48 2
3) Now update the checksum in column 1 (first digit = sum of last 9 digits)
397 114 21 118 0 10 4 80 48 2
394 114 21 118 0 7 4 80 48 2
389 114 21 118 0 5 1 80 48 2
4) Create a script inside a text file - my recommendation for your first test
Code:
#!/system/bin/sh
# Set data color pro presets from shared Google spreadsheet (thanks user acer73!)
# Use LG presents as your starting values and then adjust columns 6 & 7 from the spreadsheet
echo "397 114 21 118 0 10 4 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_red
echo "394 114 21 118 0 7 4 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_green
echo "389 114 21 118 0 5 1 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_blue
#Set the complimentary RGB values for this calibration
echo "248 248 248" > /sys/devices/platform/kcal_ctrl.0/kcal
echo 1 > /sys/devices/platform/kcal_ctrl.0/kcal_ctrl
5) Run the script (or you can echo each line manually to test from adb if you prefer).
6) Turn the screen off and on for the gamma change to take effect.
7) Check the dmesg output for any clues and to see the output of the result.
8) Place the script into your /system/etc/init.d/ folder (or equivalent) for a permanent color change!
Screen refresh (added in b37) - this should only be called by apps or scripts while adjusting and testing colors "live" with the motley or faux sysfs interface. It should NOT be implemented on startup via init.d or by apps since it will compete with the normal power on process.
Code:
echo 1 > /sys/devices/platform/mipi_lgit.1537/refresh_screen
Presets:
Code:
#!/system/bin/sh
# Set LG presets (motley stock) - i.e. popular partial revert of Google's tweaks just before release
echo "383 114 21 118 0 0 0 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_red
echo "383 114 21 118 0 0 0 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_green
echo "383 114 21 118 0 0 0 80 48 2" > /sys/devices/platform/mipi_lgit.1537/kgamma_blue
Code:
#!/system/bin/sh
# Set stock Google presets (from kernel source code)
echo "332 64 68 118 1 0 0 48 32 1" > /sys/devices/platform/mipi_lgit.1537/kgamma_red
echo "332 64 68 118 1 0 0 48 32 1" > /sys/devices/platform/mipi_lgit.1537/kgamma_green
echo "364 32 35 116 0 31 16 80 51 3" > /sys/devices/platform/mipi_lgit.1537/kgamma_blue
Code:
#!/system/bin/sh
# Set faux Google presets (not sure why his numbers differ)
echo "460 64 68 118 1 32 96 48 32 1" > /sys/devices/platform/mipi_lgit.1537/kgamma_red
echo "461 64 68 118 1 33 96 48 32 1" > /sys/devices/platform/mipi_lgit.1537/kgamma_green
echo "445 32 35 116 0 32 96 80 51 3" > /sys/devices/platform/mipi_lgit.1537/kgamma_blue
Spreadsheet with shared settings
https://docs.google.com/spreadsheet/ccc?key=0AoDp2qRui0u0dGE4T2gtSDBTRHVFSldPS2RrX1Rya0E#gid=0
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. Hopefully your N4 is as stable as is mine.
USB Force Fast Charge
You can turn it on with popular apps (like Trickster MOD) that support the common sysfs toggle as shown below.
If you don't like it or don't want to use it, it is off by default.
Turn ON:
Code:
echo 1 > /sys/kernel/fast_charge/force_fast_charge
Turn OFF:
Code:
echo 0 > /sys/kernel/fast_charge/force_fast_charge
Notes:
When it is ON, you will not be able to connect your phone to your PC (adb, mtp etc.). This is expected behavior.
To start charging: turn fast charge ON, plug the USB cable into your PC, and charge up.
To stop charging: unplug the USB cable and turn fast charge OFF. Now you can plug back into your PC for normal trickle charging, adb/mtp etc.
Tip: if you see it connect to your PC (media device or adb), it isn't working. Unplug the cable, wait a couple seconds and plug it in again.
Boostpulse control - Experimental build only
Trickster MOD works great to play with these.
How long does it boost when Android senses touch? (in b10 and b14 it is above_hispeed_delay)
Code:
/sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
What freq does it boost to?
Code:
/sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
Turn touchboost OFF/ON (in b10 and b14 only)
Code:
/sys/devices/system/cpu/cpufreq/interactive/input_boost
Thermal Throttling and Hotplug Control - Experimental build only
Warning: these do not have to be changed from the defaults and could potentially be dangerous if you make a mistake. For those that know what they are doing and want to experiment with settings, scripts etc. please report back your findings.
msm_thermal:
Throttle temp in C. Default is 70, valid range is 45 to 80 (recommend to not go over 75):
Code:
/sys/module/msm_thermal/parameters/throttle_temp
Minimum freq used in throttle down before returning to max, default is 7 = 1.13GHz. Range is 4 to 8 (810Mhz to 1.24GHz)
This is the index in the frequency table as seen in Trickster MOD, System Tuner etc. It is zero based (i.e. 304MHz is zero).
Code:
/sys/module/msm_thermal/parameters/min_freq_index
Turn on thermal debugging so you can see what is happening in the kernel log:
Code:
/sys/module/msm_thermal/parameters/thermal_debug
auto_hotplug:
Load based hotplugging parameters. I have taken _thalamus' base (thanks!) and have exposed most of the tuning parameters to userspace.
Turn off/on hot_plug debugging Y/N, default N, this spams the kernel log like crazy, turn on only when troubleshooting/testing
Code:
/sys/module/auto_hotplug/parameters/debug
Load at which a CPU is taken offline, 40-125, default 80:
Code:
/sys/module/auto_hotplug/parameters/disable_load_threshold
Load at which an extra CPU is put online, 130-250, default 200:
Code:
/sys/module/auto_hotplug/parameters/enable_load_threshold
Load at which all CPU's are enabled, 270-550, default is 400 (or 100 x number of cores):
Code:
/sys/module/auto_hotplug/parameters/enable_all_load_threshold
Sample rate in milliseconds, converted to jiffies at runtime, 10-50ms, default 20:
Code:
/sys/module/auto_hotplug/parameters/min_sampling_rate
Number of samples in the circular buffer, 5-50, default 10 (more samples = less aggressive; less samples = more aggressive):
Code:
/sys/module/auto_hotplug/parameters/sampling_periods
Maximum number of cores online (regardless of load) when screen is on, 1-4, default 4 (tune down for battery savings):
Code:
/sys/module/auto_hotplug/parameters/max_online_cpus
Minimum number of cores online (regardless of load) when screen is on, 1-4, default 1 (tune up for performance/bench-marking):
Code:
/sys/module/auto_hotplug/parameters/min_online_cpus
Vibration Intensity
You can also use Trickster MOD to set this.
Example increase intensity:
Code:
echo "90" > /sys/class/timed_output/vibrator/amp
To go back to stock:
Code:
echo "70" > /sys/class/timed_output/vibrator/amp
Why are the base voltage tables different on some phones
What CPU do you have? Nominal, Fast, Faster ...or Slow
The phones with the lower default voltage values use the "fast" or "faster" frequency table, consider yourself lucky. This explains why some can't UV as much as others since they are starting with lower mV's to start. These are built in factory tolerances that depend upon the binning of your chip. I am familiar with the same thing in the tegra3 world where I have had more experience. So, don't worry as this is commonly done in this industry. Hopefully folks don't go freaking out because they have a nominal chip like I do. It's probably good for a dev to have a nominal chip so we can better honor the limits.
http://en.wikipedia.org/wiki/Product_binning
How do I tell what I have?
If you boot up your phone fresh and look at the dmesg output (kernel log) while the messages are still there, you will find one of the following output messages where it selects it's frequency plan depending on the binning of the chip.
Code:
adb shell dmesg | grep PVS
acpuclk-8064 acpuclk-8064: ACPU PVS: Nominal
-or-
acpuclk-8064 acpuclk-8064: ACPU PVS: Fast
-or-
acpuclk-8064 acpuclk-8064: ACPU PVS: Faster
-or-
acpuclk-8064 acpuclk-8064: ACPU PVS: Slow
I have tweaked all the frequency tables nominal, fast, and faster (as well as slow to compensate for the lower freq) to keep them similarly scaled relative to stock. If you don't like the safe defaults (already UV'ed), then use voltage control and come up with your own preferred values.

SWEET!

Sweetness! New kernel!
Sent from my Galaxy Nexus using Tapatalk 2

I definitely giving this s try out.
Thanks for your work.
Sent from my Nexus 4 using xda premium

On my phone the zip is showing duplicate files inside?
Sent from my Nexus 4 using Tapatalk 2

stormtroopercs said:
On my phone the zip is showing duplicate files inside?
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
File looks fine on a computer.

stormtroopercs said:
On my phone the zip is showing duplicate files inside?
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
hol17 said:
File looks fine on a computer.
Click to expand...
Click to collapse
That is odd. I just looked at it on my phone with ES zip viewer and it looks fine. Also looks good in Linux and flashes fine using CWM touch. Does Root Explorer officially support JB4.2?

I've just added this kernel to the Nexus 4 Complete Index
Sent from my GT-I9100 using xda premium

KidCarter93 said:
I've just added this kernel to the Nexus 4 Complete Index
Sent from my GT-I9100 using xda premium
Click to expand...
Click to collapse
Thx, appreciate it!

Nice work motley. I'm not an overclocker so I'll probably be running this often. Can you look at tweaking the voltage table a bit, 800 mV is not low enough. I think the lower steps will be able to go as low as 600 stable. Just a thought. Thanks for your work.
Sent from my Nexus 4 using xda premium

_motley said:
That is odd. I just looked at it on my phone with ES zip viewer and it looks fine. Also looks good in Linux and flashes fine using CWM touch. Does Root Explorer officially support JB4.2?
Click to expand...
Click to collapse
No idea but it flashed correctly! Good job!
Sent from my Nexus 4 using Tapatalk 2

Running great on the latest Xylon build .. Thanks
Sent from my Nexus 7 using Tapatalk 2

mikeyinid said:
Nice work motley. I'm not an overclocker so I'll probably be running this often. Can you look at tweaking the voltage table a bit, 800 mV is not low enough. I think the lower steps will be able to go as low as 600 stable. Just a thought. Thanks for your work.
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
Thx, definitely will try to push it down for us so we can test it out what works best. Heading to bed now, but should be able to do some tweaks tomorrow and over the weekend.
stormtroopercs said:
No idea but it flashed correctly! Good job!
Click to expand...
Click to collapse
joshnichols189 said:
Running great on the latest Xylon build .. Thanks
Click to expand...
Click to collapse
Awesome, thanks for the quick feedback guys!

Wooow linaro!!! Amazing!!!!
Enviado desde mi Nexus 4 usando Tapatalk 2

mikeyinid said:
Nice work motley. I'm not an overclocker so I'll probably be running this often. Can you look at tweaking the voltage table a bit, 800 mV is not low enough. I think the lower steps will be able to go as low as 600 stable. Just a thought. Thanks for your work.
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
I noticed that Faux kernel's minimum is also 800mv. I wonder if this is some hard coded limit or something
Sent from my Nexus 4 using xda app-developers app

Glad to see you here motley! Your N7 kernel is legendary.... Can't wait to use this!
Sent from my Nexus 4 using Tapatalk 2

Logi_Ca1 said:
I noticed that Faux kernel's minimum is also 800mv. I wonder if this is some hard coded limit or something
Sent from my Nexus 4 using xda app-developers app
Click to expand...
Click to collapse
I don't think it's a limit, as such, I think that's the lower they know is definitely stable at the moment.
As motley said, he'll do some more testing when he's got time, so he'll be able to know for sure if lower would still be stable.
Sent from my GT-I9100 using xda premium

Usb otg work with this kernel?
Sent from my MyTouch 4G using Tapatalk 2

pnut22r said:
Usb otg work with this kernel?
Sent from my MyTouch 4G using Tapatalk 2
Click to expand...
Click to collapse
Features
304MHz lowest CPU freq step added with lower voltage than stock, since the device spends a lot of time at this frequency. 432 MHz removed since it doesn't seem to use it much.
Google 3.4 base. All stock features are of course supported (camera, OTG, NFC etc.)
Fsync disabled by default for performance and battery saving - enable/disable switch is available if you want to turn back on (see below).
Voltage control (thanks faux123!) - be careful to not save the setting on boot until you are 100% sure!
Compiler optimizations (-O2) - using 2012.10.22 Linaro 4.7.1 ARM toolchain
I/O schedulers - SIO(default), deadline (optimized), cfq, noop
Governors - OnDemand (stock ramdisk will set on boot), Interactive (my favorite, responsive + good standby battery usage), PowerSave, Conservative
CIFS, NFS, NTFS r/w, TUN - built-in, no need for any kernel modules
Increased mm read-ahead buffer to 1024
XZ compression
GPL compliant - source is kept up to date at github.com and released at the time the kernel is released to the public via this post. See github link at the bottom of this post.
Other misc patches and tweaks (see github)

Related

Kernel][ICS] Devil3_1.1.0 [02/08/12] - Fascinate

This kernel is based on teamhacksung's kernel, with updated Linux base to 3.0.38
This kernel is working with every ICS based Rom
Features:
- 378, 391 and 403 Mb Ram available (selectable in kernel, no need for a patch (403 mb breaks 720p) only reboot required)
- 2 different recoveries included (cmw touch recovery + twrp recovery (to use TWRP, just create a file named "twrp" at /cache))
- SIO scheduler (default)
- V(R) scheduler (maybe even faster than SIO, can be set as default by using NSTools for example)
- init.d
- Voodoo Sound and CM9 Color Adjusment / Voodoo Color (VC version)
- Devil Idle
- BLN V9 (thx to mialwe)
- USB Host mode driver (for more information about this, and for saying thanks to the guy, who ported this for our phone, please visit this thread: http://forum.xda-developers.com/showthread.php?t=1450298 )
-Ezekeel's Live_Oc
- Ezekeel's Deep Idle V2
- Touchwake
- vibrator intensity control (by mialwe)
- BLX (Batterie Life Extender, I don't think we need it, but maybe one feels better by using it )
- backports from Linux 3.2 and 3.3
- Swap/Zram support
- Zcache, Cleancache and Frontswap
- Uksm
- Fiops io scheduler
- Smooth_ui included to ondemand, conservative, smartass, lulzactive, lagfree and lazy governor (only one setting for activating/deactivating it in general)
- 3 cpu governor presets (smooth, normal, powersave) for ondemand, conservative, smartass, lulzactive, lagfree (only one setting for switching the mode in general)
- many other small features and improvements
Donwload and Changelog post 2
FAQ and known issues in post 3
Click to expand...
Click to collapse
Many of the features (like Live_OC) require NSTools, which can be found at market for free.
NEW:
Devil kernel Config: http://forum.xda-developers.com/showthread.php?t=1715383
Devil Kernel Manager: http://forum.xda-developers.com/showthread.php?t=1723222
Both Apps are really great. Please try on your own, which one you like more.
you still can use the previous methods of setting up the kernel:
Please also try this app http://forum.xda-developers.com/showthread.php?p=22430406, for setting many of the options which are only available with my kernel.
a pre configured file for use with command center can be found here: http://forum.xda-developers.com/showpost.php?p=27353078&postcount=240 (you have to remove .zip extension)
a good explination/example of how to use it, can be found here: http://forum.xda-developers.com/showpost.php?p=26301176&postcount=4842
if you don't like additional apps (or are having problems with command center), i recommend using this init.d script: http://forum.xda-developers.com/showpost.php?p=26683004&postcount=5346
Click to expand...
Click to collapse
Kernels with VC in the name are coming with Voodoo Color
oliva94 said:
IF the kernel zip name contains _JB_, THEN and only then you can use it IF you do NOT have datadata partition
ELSE if you HAVE datadata, then use one WITHOUT _JB_ in the name
if you use it otherwise, it will boot but system is eventually going to crash/not load due to partition table (thus blockdevice naming) mismach
Click to expand...
Click to collapse
Many Thanks to:
Teamhacksung
Zacharias.maladroit
Onecosmic
ytt3r
TK Glitch
Ezekeel
Eugene373
franciscofranco
Sunra
scheichuwe
perka
sztupy, for his great work, to get usb host mode driver
mialwe
stratosk
F4k for the idea to flash bigmem libs
...
sources:
https://github.com/DerTeufel
Click to expand...
Click to collapse
This kernel is also available for:
Captivate, Fascinate and Vibrant
Click to expand...
Click to collapse
Working on this kernel is taking many hours almost every day. With a small donation, you show me, that my work is appreciated by you.
If you like this kernel, please donate to me
Changelog:
changelog 02.08.2012:
- bug fix to bln, to prevent kernel panic in some situations (thx to thalamus)
- switched from deep_idle 2 to idle2 (also thx to thalamus)
- updated kernel to linux 3.0.38
- dockaudio sysfs for captivate and fascinate
- automated symlinking from data to system: if one wants to free up some space at /system, without removing an app completely, just copy it from /system/app to /data/sys-parts/app (create the folder if not there), and reboot. during reboot, the app from system gets deleted, and the app from /data/sys-parts/app gets symlinked to system. this is working for almost every app, but i don't recommend doing this with apps, needed for android to work (framework, media provider, settings,...)
IDLE2 can be enabled with the following command:
echo 0 > /sys/module/cpuidle/parameters/idle2_disabled
IDLE2 can be disabled with the following command:
echo 1 > /sys/module/cpuidle/parameters/idle2_disabled
Stats can be obtained from the standard cpuidle interface, which, for
IDLE2 is located at:
/sys/devices/system/cpu/cpu0/cpuidle/state*/time
where * = 1, 2, 3
changelog 25.07.2012:
- updated recovery (no "sdcard format"-bug anymore, external sd card is named correctly)
- vibrant: hopefully fixed froyo ril
- jellybean: galaxy s settings working now
changelog 22.07.2012:
This kernel is for use with ICS only, if you are looking for a kernel, running on teamhacksung cm10 build, visit my jellybean kernel thread[/url]
- updated kernal base to linux 3.0.36
- updated "block" to linux 3.3
- readded fiops io scheduler (kept cfq this time)
- updated cwm recovery to 6.0.1.0 (please create a new nandroid, because of possible incompatibilities between old/new recovery)
- compiled with linaro toolchain (gcc 4.7.1) and O3 compiler flags
- made uksm scan less often (save cpu time and power)
- at first boot: only delte init.d scripts created by other kernels
- increased usb write performance
- lowered ram and display voltages a little bit
- fixed some bugs related to devil settings (they should stick now after reboot, if set by one of the devil apps)
- support for scripts in /system/etc/shutdown.d (thx to Efpophis)
all scripts placed at /data/local/shutdown.d or /system/etc/shutdown.d get executed at shutdown/reboot
you can use this, to play a shutdown sound for example.
by default 00shutdown gets created, which plays a music file, when it is placed at one of these folders/places
/system/media/audio/ui/shutdown.ogg
/data/media/audio/ui/shutdown.ogg
Click to expand...
Click to collapse
- disabled some debugging options
- audio (and for fascinate: camera fixes) by Efpophis+
- patch for improving batterie life by CML
- nfts read/write driver built in (for use with usb host mode)
- reverted refreshrate_mod and gpu_oc mod, as both weren't working
changelog 18.06.2012:
- some changes to load balancing
- added ultra ksm (metioned by zach thx for this my friend)
- readded fiops io scheduler (still experimental and could cause instablilities)
- using snappy compression for zram now (2 times faster, but only 2% less compression)
- added the possibility to change zram size (at /data/local/devil/zram_size, with valid values: 50, 75, 100 and 150 (all in mb))
- fixed the applying of user_min/max freq after reboot
- vibrant: fixed gps
- fascinate: fixed nandroid in cwm recovery
what is ksm? http://en.wikipedia.org/wiki/Kernel_SamePage_Merging_(KSM)
uksm is more optimized and also working for single core systems. using this should give much better ram usage, but at the cost of more cpu usage
############# most probably not working (yet)##############
i have added seperate gpu oc from jt1134's galaxy_tab (to switch between 200 and 250 mhz), but i did not get any improvements in antutu...further tests needed
echo 1 > /sys/kernel/pvr_oc/pvr_oc (for 250 mhz)
echo 0 > /sys/kernel/pvr_oc/pvr_oc (for 200 mhz), no reboot needed
and also have changend default screen refreshrate from 60 to 56, with the possibility to change it:
echo 1 > /sys/kernel/refreshrate/enable (60 hz)
echo 0 > /sys/kernel/refreshrate/enable (56 hz)
######################################################
changelog 10.06.2012:
cwm recovery:
- fixed mounting of external sd card to pc
kernel:
- picked two commits from linux 3.0.32 (avoid a possible memory leak, small fix to ext4 driver)
fascinate:
- fixed wrong mount points
changelog 09.06.2012:
- updated Zram and Zcache from linux 3.3
- updated android binder driver from linux 3.3
- fixed restoring of backups within TWRP recovery
- added virtual buttons to cwm recovery (Attention: they still don't work!)
- call vol hack from tk glitch (take a look at init.d folder and edit the script to make changes to call vol hack)
- bigmem values get applied at first boot after power on (if there is a value at /data/local/devil/bigmem, 1 for 391 mb and 2 for 403 mb (the last one breaks 720p)
- prevent phantom key presses (from tk glitch)
changelog 24.05.2012:
- Smooth_ui included to ondemand, conservative, smartass, lulzactive, lagfree and lazy governor (only one setting for activating/deactivating it in general)
- 3 cpu governor presets (smooth, normal, powersave) for ondemand, conservative, smartass, lulzactive, lagfree (only one setting for switching the mode in general)
- no need for activating/deactivating of selective live_oc anymore --> just change target low and target high
- BLX back in
- fixes to devil idle to be more stable while in call
- 1,5 mb more ram (thanks to mialwe)
- added aroma filemanager to cwm recovery
- added fully working TWRP recovery optional to cwm recovery (to use TWRP, just create a file named "twrp" at /cache)
- added option to select ram config in kernel --> no need for flashing an other kernel to get more ram (thanks to stratosk)
- switched to new initramfs from stratosk and mialwe ( now there will be cmw zip and odin tar file of every kernel version)
- added possibility to use Zram instead of Swap
- no need for flashing/using special scripts to make swap/zram working anymore
- added zcache
- added frontpage
- added cleancache
- added fudgeswap (thanks to ezterry and faux123)
changelog 01.05.2012:
- all changes from cm9 stock kernel (including mount points option)
- some fine tuning to deadline and sio
- Devil Idle: limiting bus/ram/gpu speed to 100 mhz for 100-800 mhz cpu freq, while screen off (automatic mode) or always (permanet), both modes automatically reduce the int voltages of the affected freq by 50 mV
- compiled with swap support
- added stratosk's smooth_ui to lulzactive governor (activated by default)
- rest oc_value to 100 while screen off, and back when screen turns on (combined with devil idle automatic, can't be turn on/off without devil idle)
- added posibility for different voltages while screen off (also bundled with devil_idle, with default settings, stock arm voltages are applied, because of live_oc set to 100)
- added the possibility to set freq limits while screen off (min and max freq)
19.04.2012
- even better fix to selective live_oc (last one (in test kernel) generated some overhead)
- fixed sampling rate of ondemand and conservative (have ported mialwe's/stratosk's sleep multipliers)
- new tunables for ondemand and conservativ
sleep multiplier and tunables:
mialwe and stratosk had the great idea, to change the sampling rate of conservative and ondemand governor while display of. for this, he introduced the sleepmultiplier (in his case factor 3). this means, if you set sampling rate to 20000, it changes to 60000 while screen off, and back, when screen on.
for ondemand and conservative:
i have made this multipliers tunable. proper values are between 1 and 5, because one could want a higher multiplier while screen off, if sampling rate is very low while screen on (higher sampling rate means, less checking for work load --> better batterie, worse performance). with this tunables you get better batterie, without making the performance worse while screen on.
two other tunables: up_threshold_min_freq and responsiveness_freq
the first one is a very low threshold while on low freq (by default 40), to make the governor scale up faster, until the responsiveness_freq is reached.
the responsiveness_freq is set to 400000 (400 mhz) by default. while the freq is below this value, up_threshold is the same as up_threshold_min_freq, and freq jumps to responsiveness_freq, with skipping the freq between the actual one and the responsiveness_freq. (conservative governor does not jump up to this step)
responsiveness_freq can be set to values between 100000 and 1400000
up_threshold_min_freq can be set to the same values as the normal up_threshold.
not tunable: while screen off, up_threshold is set to 95, no matter your other settings, to save more batterie.
up_threshold_min_freq is disbaled by default for conservative governor
for lulzactive:
for this governor, i did similar things, but they are not tunable till now.
when screen off:
- inc_cpu_load is set to 90, and back to the original value, when screen turns on
- up_sample_time is set to 50000, and back to the original value, when screen turns on
- down_sample_time is set to 40000, and back to the original value, when screen turns on
other changes:
- fix to touchwake from ezekeel, and another fix from stratosk
- upstream fix to compass
- building for i9000B now, too (big thanks to F4k for the hints by pn )
- removed some typos from recovery
- removed some annoying "no's" and "yes" from recovery in misc menu
- fixed wifi mode switch (pm_fast is the one with better signal)
14.04.2012:
- new b versions (only stock ram) changend to 377 mb, VC version needs the 720p fix from my ftp server. cmc version already patched
13.04.2012:
- updated wifi driver
- added the possibility to switch between wifi PM_Fast and PM_Max mode (Pm_Fast = better signal, PM_Max = better batterie, default is PM_Max)
- user interface to disable fsync (this gives more performace, at the risk of data loss on a crash, taken from ezekeel, so it should be ok ), default is off, to be safe
- fixed voodoo color kernels (these have the VC in their names)
10.04.2012:
- added vibrator intensity control (by mialwe), presets can be changend in recovery
- stock ram version now available (348 mb ram), XL (390 mb), XL_bm (402 mb)
- removed 1080 mhz freq for now
- small correction to touchwake
- small correction to selective live_oc (now the low freq really are not live_oc'ed)
05.04.2012:
- fixed bug in selective live_oc, which caused the target high not taking affect to the highest freq, if highest freq equals target high
- fixed another bug in selective live_oc, which could lead to gpu crashes due to overclocking the ram, but not the cpu freq (for low steps)
- added a switch to change between "normal" and selective live_oc
by changing the live_oc mode while using it, live_oc value is set back to 100, to prevent strange things
- added possibility to set max. freq for boot (in recovery). This freq is set until init.d is executeted (it is automatically set to 1000 at this point, to make sure there are no conflicts with other cpu settings from users)
#Already in the last version, but i forgot about it:
- deep idle fixes from stratosk (many thanks)
- added possibility to underclock by using live_oc (limit is 90 now, which means lowering all freq and bus speed by 10%, to save more batterie when really needed)
03.04.2012:
For now there are three different RAM versions:
- stock mem kernel has 379 mb ram, everything working
- "slim ics" (XL) kernel comes with 390 mb, this is breaking playback of some high resolution videos
- XL_BM is coming with 402 mb ram, but breaking 720p
(while flashing the kernel, the modded rom files are also flashed, so you don't need to flash a new rom to get 379 or 390 mb)
-added new frequency: 1080 mhz (1100 does not like live_oc)
- fixed SmartassV2 for live_oc (after changing live_oc value, you have to change the smartass values, too, but then they automatically apply to the live_oc value (although you can only select 800 mhz in nstools (for example))
- touch recovery with custom devil menu (for some reason it takes a few seconds to load the first time, missing virtual keys is a warning, because there are no virtual keys yet)
-fast charge (thx to chad0989 for this), disabled by default.
you also can use the widget from chad (to place on homescreen) to toggle the fast_charge mode
https://play.google.com/store/apps/d...stchargewidget
Click to expand...
Click to collapse
while fast charge is activated you cannot connect as usb device
- added datafix script to init.d (this script is deactivated by deafult. to make it work, you have to creat a file named datafix and placed in /data/local/)
- reworking and cleaning many parts to get more ram, speed, and stability
05.03.2012:
- updated sio i/o scheduler to latest version
- small updates to ondemand and conservative governor from linux 3.2
- bettter performance for CFS kernel due to tuning and patches
- tuning to deadline scheduler
- better i/o performance
- changed bootlogo (probably not the last time )
28.02.2012
- finally working bln V9 (no need for LED2 anymore)
- fixed lockscreen freezes
- reverted memory tweaks, which could be the reason for lagging after using a day
- again wlan fixes from tk-glitch
- tweaked conservative and ondemand governor (conservative still is not too aggressive)
- added dm-cache again (who has removed this from my github? )
- improve usb signal quality
- xcaliburinhand's dock audio support (untested, do not have a dock)
- less debugging
- fixed kernel version not displayed under "about phone"
12.02.2012
- Added newest Fiops scheduler (tuned for more performance)
- When Gpu is active, min CPU freq is set to second lowest step
- fixes to live_oc and custom voltage
- default mount parameter NOATIME and NODIRATIME (faster)
- updated Wifi drivers (thanks to tk-glitch)
- tuned intellidemand for better performance
- removed some stuff (zram, swap, tweaks to cpufreq untill I know what was causing the instabilities of last build)
05.02.2012
- added Touchwake
- added BLX
- upgraded BLN from V8 to V9 (working for missed calls, blinking or static light, configurabel by using NSTools or BLN Pro App)
- added Intellidemand governor
- added mdnie settings to voodoo color version
- readded deep idle v2 again (I think it is the best/only working one, although
- version with CFS (instead of BFS) now also available (maybe better multitasking and batterie life, but slower)
- removed BFQ I/O Scheduler
- tons of smaller fixes and improvements
30.01.2012
-revert: Voodoo Sound now to be set with DSP Manager
29.01.2012
- Linux kernel 3.1.10
- Deep Idle from Eugene373 (always enabled, no stats)
- added BFQ v 3.1 I/O Scheduler
- Voodoo Sound now to be set with DSP Manager
- Zram (can be disabled by removing Zram file from init.d)
- Zcache and Cleancache (not working yet?)
- optimized rwsem algorithm
- USB Host V5
24.01.2012
- init.d support (the folder is not created by the kernel. You have to do it for yourself)
- Deep Idle V2 back in
- new Cpu governors: MinMax, Lagfree, Lulzactiv
- LED V2 (you can set blinking by using nstools, also working for missed calls in most cases (sometimes it is not working for missed calls, don't know why at the moment))
- Backlight Dimmer (only LED version): used to turn led backlight of, while screen is on, after defined period of time. Deactivating it, makes your backlight stay on all the time
- I/O-less dirty throttling completely backported from kernel 3.2
- Ext4 with 3.2 patches
- Proportional Rate Reduction for TCP - by Google
- USB Host V 4
19.01.2012
- Usb Host drivers integrated
- Cm9 Color adjustment
- Removed Deep Idle because of Bluetooth problems (hopefully it will come back, still testing)
16.01.2012:
- Updated Kernel basis to Linux 3.1.9
15.01.2012:
- fixed bug in cpu spy, caused by live_oc
- still using voodoo color for now, maybe two additional kernel versions tomorrow
Click to expand...
Click to collapse
files with .zip have to be flashed within recovery (twrp or cwm)
files with .tar can be flashed by using odin or heimdall (they are placed at the end of post 3)
ICS:
http://rootaxbox.no-ip.org/divers/ICS/ many thanks to Rootax
JellyBean (with default cm10 partition layout for use with teamhacksung's rom):
http://rootaxbox.no-ip.org/divers/jellybean/
http://devil.haxer.org/ many thanks to SysTem-X (not updatet yet)
Known issues:
- virtual buttons in cwm recovery not working
fascinate specific:
nothing
Click to expand...
Click to collapse
How to:
you can change ram setting by doing the following ( to make these settings even stick after power off, you also have to echo the same value to to /data/local/devil/bigmem):
echo 1 > /sys/kernel/bigmem/enable (this gives you xl mem of 391 mb)
echo 2 > /sys/kernel/bigmem/enable (this gives you bm mem of 403 mb (this is breaking 720p))
echo 0 > /sys/kernel/bigmem/enable (this gives you cm9 default mem of 378 mb)
you have to reboot to make changes work
Click to expand...
Click to collapse
With setting this, your desired swap mode gets automatically applied at boot time. For swap, you have to create a swap partition at your external sd card before
echo 1 > /data/local/swap_use (for using swap partition on external sd card, you have to create this partition before)
echo 2 > /data/local/swap_use (for using Zram, no other modifications required)
you have to reboot to make changes active. You can't use swap and Zram at the same time
Click to expand...
Click to collapse
These are the settings for devil idle:
activate automatic:
echo 1 > /sys/devices/virtual/misc/devil_idle/bus_limit
permanent on:
echo 2 > /sys/devices/virtual/misc/devil_idle/bus_limit
deactivate
echo 0 > /sys/devices/virtual/misc/devil_idle/bus_limit_automatic
Click to expand...
Click to collapse
to set different voltages while screen off (this only is working, if devil idle automatic mode is activated)
this is an example, how to apply screen_off arm voltages:
echo 1450 1400 1350 1275 1075 975 875 800 > /sys/class/misc/customvoltage/arm_volt_screenoff
this way, it is possible to undervolt while screen off, but overvolt and overclock while screen on
for now, the int voltages can not be changend
Click to expand...
Click to collapse
set freq limits while screen off (min and max freq)
enable the limits:
echo 1 > /sys/devices/virtual/misc/devil_idle/user_min_max_enable
disable:
echo 0 > /sys/devices/virtual/misc/devil_idle/user_min_max_enable
set values to be applied if activated:
echo 100000 > /sys/devices/virtual/misc/devil_idle/user_min
echo 800000 > /sys/devices/virtual/misc/devil_idle/user_max
both are independent from devil_idle, and get applied when screen turns off
by default 100 and 1000 mhz are set.
values which can be put here are all "stock" freq (without live_oc level) multiplied with 1000. live_oc values get applied automatically.
Click to expand...
Click to collapse
to set responsiveness_freq, up_threshold_min_freq or sleep_multiplier for ondemand and/or conservative governor, you have to do it like this:
echo VALUE > /sys/devices/system/cpu/cpufreq/ondemand/VARIABLE_NAME
and
echo VALUE > /sys/devices/system/cpu/cpufreq/conservative/VARIABLE_NAME
example:
echo 400000 > /sys/devices/system/cpu/cpufreq/ondemand/responsiveness_freq
echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_min_freq
echo 5 > /sys/devices/system/cpu/cpufreq/ondemand/sleep_multiplier
up_threshold_min_freq is disbaled by default for conservative governor
(to disable it for ondemand you have to set up_threshold_min_freq to 100.
Click to expand...
Click to collapse
switch between wifi PM_Fast and PM_Max mode (Pm_Fast = better signal, PM_Max = better batterie, default is PM_Max)
echo 1 > sys/module/bcmdhd/parameters/uiFastWifi (pm_fast)
echo 0 > sys/module/bcmdhd/parameters/uiFastWifi (pm_max)
Click to expand...
Click to collapse
user interface to disable fsync (this gives more performace, at the risk of data loss on a crash, taken from ezekeel), default is on, to be safe
echo 1 > /sys/devices/virtual/misc/fsynccontrol/fsync_enabled (fsync enabled)
echo 0 > /sys/devices/virtual/misc/fsynccontrol/fsync_enabled (fsync disabled)
Click to expand...
Click to collapse
to set the values for vibrator intensity:
echo value > /sys/class/timed_output/vibrator/duty (where value is between 20000 and 43640)
if you want the changes to be applied at boot, you have to use one of the presets from recovery, use an init.d script, or:
echo value > /etc/devil/vibrator (where value is between 20000 and 43640)
Click to expand...
Click to collapse
activate fast charge: echo 1 > /sys/kernel/fast_charge/force_fast_charge
Click to expand...
Click to collapse
deactivate fast charge
echo 0 > /sys/kernel/fast_charge/force_fast_charge
you also can use the widget from chad (to place on homescreen) to toggle the fast_charge mode
https://play.google.com/store/apps/d...stchargewidget
Click to expand...
Click to collapse
while fast charge is activated you cannot connect as usb device
Click to expand...
Click to collapse
Questions and Answers:
Q: What the hell are all these governors?
A: here you should find the answer: http://forum.xda-developers.com/showthread.php?p=19846297
Q: What's a good setup for live_oc??
A: No one knows. Every phone is different. It seems like the folling setup is running well for some (many?) users. If you get reboots with it, you have to find the setup for yourself.
if you are satisfied with this configuration, please hit the thanks button of Crack: http://forum.xda-developers.com/showpost.php?p=22194160&postcount=1246
.:Crack:. said:
OK, these are mine. Rock stable
LiveOC 117% -> 1200 MHz -> 1404 MHz
Freq/ARM/Init
1200/1400/1150
1000/1325/1125
800/1250/1125
400/1025/1100
200/900/1100
100/875/1000
low freqs could possibly be tweaked harder but stability was my fist goal
Click to expand...
Click to collapse
Q: How can I set up swap?
A: Take a look at this thread: http://forum.xda-developers.com/showthread.php?t=1610835, and especially at this post:
http://forum.xda-developers.com/showpost.php?p=25578231&postcount=83
Q: What is Touchwake? Can you explain it?
A: With Touchwake, the touchscreen still recognices your fingers, after turning off (for a predefined time (NSTools)). For a detailed explenation, take a look at Ezekeel's thread: http://forum.xda-developers.com/showthread.php?t=1239240
Q: How can I make Voodo Color settings been saved after reboot?
A: You have to use Voodoo Pro App, because of changes between Gingerbread and ICS, and only the Pro app is updated till now.
Q: Which is the best IO Scheduler?
A: I think SIO and V(R) are the fastest.
Q: How can I enable DeepIdle/Live_Oc?
A: You have to use NSTools. You find it on market. It's free.
Deep Idle Questions:
Q: How can I activate the deep idle stats?
echo 1 > /sys/class/misc/deepidle/stats_enabled
Q: What's the meaning of TOP=Off and TOP=On when I look at the Deep Idle status?
A: When TOP=Off is used, the best powersaving state is used. TOP=ON will be shown, when bluetooth or gps are running.
Q: In Idle status I only see TOP=On. What's wrong here? I don't use Bluetooth or Gps.
A: You have to flash the modded framework-res.apk, because ICS does not fully deactivate bluetooth by default. Even if you never use it.
Q: Idle Stats only are showing Idle, but no Deep Idle. Why?
A: An App is preventing the use of Deep Idle. At first, you should try closing the cam, running in the background. Also rebooting should solve this problem.
Q: What is fudgeswap?
A:
Setting this to a very large positive number will indicate swap ought
to be fully used as free (and will slow the system down)
smaller numbers will allow you to put some pressure on SWAP without
slowing the system down as much.
small negitive numbers will allow the system to be faster at the same
minfree level.
default is 512 to give a very little bit of pressure to use some swap
but this can be modified at runtime via:
/sys/module/lowmemorykiller/parameters/fudgeswap
Up and running just fine on AOKP B38.
Sent from my SCH-I500 using Tapatalk 2
Just read your pm. I'll flash it to my test phone and play with it for a bit.
Sent from my Glitched AOKP Unicorn.
my apologies on not getting back sooner...after the first attempt and getting a bad download, i got busy and have not had time. flashing now and will report back!
Stephen.k.spear said:
Just read your pm. I'll flash it to my test phone and play with it for a bit.
Sent from my Glitched AOKP Unicorn.
Click to expand...
Click to collapse
please falsh the version from this thread. it's newer than the one i sent you via pn
droidstyle said:
my apologies on not getting back sooner...after the first attempt and getting a bad download, i got busy and have not had time. flashing now and will report back!
Click to expand...
Click to collapse
np. finally there is my kernel now.
please also take the one from this thread
Flashed without issue. Nice boot splash btw. All the big stuff works camera, wifi. Looks like about 378 usable ram to start. Feels pretty smooth. I'm gonna flash to my primary phone so I can use it all day. Just wanted to let peeps know they can flash it boots. I'll play with it today and get back to you.
Sent from my Glitched AOKP Unicorn.
Stephen.k.spear said:
Flashed without issue. Nice boot splash btw. All the big stuff works camera, wifi. Looks like about 378 usable ram to start. Feels pretty smooth. I'm gonna flash to my primary phone so I can use it all day. Just wanted to let peeps know they can flash it boots. I'll play with it today and get back to you.
Sent from my Glitched AOKP Unicorn.
Click to expand...
Click to collapse
all seems to work here aswell. one thing, im wondering if i need a kernel cleaning script since i can not change my i/o & scheduler settings in nstools?
droidstyle said:
all seems to work here aswell. one thing, im wondering if i need a kernel cleaning script since i can not change my i/o & scheduler settings in nstools?
Click to expand...
Click to collapse
no, i never use this script...weird, that you can't change it...
I can change it. I'm getting weird artifact on the NSTools side. Prolly not kernel related. So far pretty impressed. I'll be in touch with you soon about a few things. I like what I see though.
Sent from my Glitched AOKP Unicorn.
Thanks for this. Testing right now and no issues so far. Seems snappy. Glad to see more options coming back to the fascinate these days. Keep up the work!
Sent from my SCH-I500 using Tapatalk 2
just uploaded a new version...i believe the first one was having the twrp recovery twice, but missing the cwm one
Just waiting for someone to ask "what's the difference between this and glitch...." (slap hand to face)
Sent from my SCH-I500 using Tapatalk 2
Thanks for this...
DerTeufel1980 said:
just uploaded a new version...i believe the first one was having the twrp recovery twice, but missing the cwm one
Click to expand...
Click to collapse
This looks like pretty solid work, thanks man! Would you mind if I look into .. leveraging (pronounced: kang) .. some of your stuff for the Glitch kernel? With proper credit, of course. I'm thinking some of the schedulers / governors to start with... I miss having a CFQ that compiles, lol.
Thanks again.
Looks great. You might want to update the OP to say "fascinate" rather than "vibrant" however
Sent from my SCH-I500 using xda premium
ssewk2x said:
This looks like pretty solid work, thanks man! Would you mind if I look into .. leveraging (pronounced: kang) .. some of your stuff for the Glitch kernel? With proper credit, of course. I'm thinking some of the schedulers / governors to start with... I miss having a CFQ that compiles, lol.
Thanks again.
Click to expand...
Click to collapse
Cfq is not compiling because of fiops. If you disable it, cfq should compile again.
Of course you can take some stuff. I also do this, for example it took his/yours initramfs for this kernel.
I just had not enough time to change the OP. I just copied it from my other threads. ;-)
Gesendet von meinem GT-I9000 mit Tapatalk 2
DerTeufel1980 said:
Cfq is not compiling because of fiops. If you disable it, cfq should compile again.
Of course you can take some stuff. I also do this, for example it took his/yours initramfs for this kernel.
I just had not enough time to change the OP. I just copied it from my other threads. ;-)
Gesendet von meinem GT-I9000 mit Tapatalk 2
Click to expand...
Click to collapse
Oh! I will try that, thank you.
Also, I just posted a new skunkworks kernel which has an updated initramfs. If you're interested, check out the thread and kang at will

[KERNEL][International] 2013/07/27 - BLADE - AOKP/AOSP - 4.2.x

Kernel for AOKP/AOSP 4.2.x and compatible roms and CM10.1
github:
https://github.com/maxwen/enrc2b-kernel-BLADE
download:
http://goo.im/devs/maxwen/BLADE
mirror:
http://www.mediafire.com/?68fgg63iebpba
Build 201307272344
Changelog:
-added S2W pocket protection - based on proximity sensor and light sensor
-fixed ondemand1 governor crash
Build 201307220013
Changelog:
-after rework load_stats is again the default cpuquiet governor
-input boost mediator - make sure cpu hotplugging is boosted before cpu freq
-fixes from upstream
Build 201307080025
Changelog:
-new cpuquiet governor load_stats - compared to rq_stats this uses CPU load instead of threads number - load_stats is the default governor
-added input boost to cpuquiet - cores will be brought up faster on touch events
-smartmax updates
Build 201306091244-3
this includes only 2 bugfixes no other changes
-broken wired HS button support
-failure to sync kernel modules when used together with AOKP 4.2.2
this is causing not working mobile data
Build 201306091244
Changelog:
-disable zcache
-use lowmemorykiller from grouper
-update to BFQ v6r1
-cleanup
Build 201305280126
Changelog:
-smartmax updates
-enable zcache - http://lwn.net/Articles/396467/ - thanks to bedalus for providing help
-cpuquiet hotplugging tweaks - faster core activation and faster LP mode switch
-touchscreen driver cleanup
-backlight handling cleanup
-GPU OC interface including "quick oc" switch
USE THIS AT YOUR OWN RISK!
using to high values can freeze the device! maximum value is 600MHz
by default there is NO GPU OC anymore - stock values are used
Get current GPU frequencies (in MHz)
Code:
cat cat /sys/kernel/tegra3_dvfs/gpu_oc
200 267 304 361 408 446 484 520 600
Set GPU frequencies - 9 values MUST be provided
Code:
echo "200 267 380 492 528 564 600 600 600" > /sys/kernel/tegra3_dvfs/gpu_oc
"quick oc" switch
Code:
echo 1 > /sys/kernel/tegra3_dvfs/gpu_quick_oc
will set the values to 200 267 380 492 528 564 600 600 600
Code:
echo 0 > /sys/kernel/tegra3_dvfs/gpu_quick_oc
will reset to the default 200 267 304 361 408 446 484 520 600
Build 201305062233
Changelog:
-S2W fixes
-switched from JRCU back to stock RCU to see if its the reason for some problems
Build 201305041517
Changelog:
-correct reset of RIL boost on incoming calls - BIG derp
-changing fast_charge is correctly reported to user-space
-correct cpufreq policy locking
-added "double tap to wake"
allows waking up the device by double tapping on the lower part of the screen - disabled by default
sysfs interface:
Code:
/sys/android_touch/s2w_allow_double_tap
enable/disable
Code:
/sys/android_touch/s2w_double_tap_barrier_y
default 1300 - y-barrier below that taps will be recognized
Code:
/sys/android_touch/s2w_double_tap_duration
default 150 - time in ms for minimal duration between the two taps
Code:
/sys/android_touch/s2w_double_tap_threshold
default 150 - threshold how much longer the duration can be then duration
For CM10.1 and AOKP you should be able to use this
updated version of "device options" - will be included in next ROM builds
http://cyano-rob.tuennerhoff-edv.de/Maxwen/EndeavoruParts.apk
Build 201304191544
Changelog:
-added 620LP - to enable use
Code:
echo 1 > /sys/module/cpu_tegra/parameters/enable_lp_oc
-smartmax:
-separated suspend_ideal_freq and awake_ideal_freq
-reduced sampling rate to 40ms
-cpuquiet improvements
-BFQ v6
-reverted arm spinlock changes - maybe solves the network stack crashes
-suspend delay disabled by default - to enable use
Code:
echo 1 > /sys/module/cpu_tegra/parameters/use_suspend_delay
-touchscreen calibration control enabled again by default
to fix the issue of somtimes "frozen" touch screen
if you experience muti touch issues disable it be using
Code:
echo 0 > /sys/android_touch/calibration_control
Build 201304100118
Changelog:
-reverted BFQ to v5.1 - v6 causes issues
-fixed screen not turning on on incoming calls
-cpuquiet governor rq_stats is now default
Build 201304060107
Changelog:
-faster response to touch events when in LP mode
-smartmax update - allow up ramps during boost
-delayed suspend boost - fixes most of the possible audio stuttering during
screen on/off sequence for players without own audio buffer handling
-new cpuquiet governor rq_stats
-fixed cpu num restriction handling
Build 201303280100
Changelog:
-added sysfs interface for button backlight brightness
e.g.
Code:
echo 30 > /sys/class/leds/button-backlight/button_brightness
default value is 63 possible values 1-255
-smartmax_eps finetuning
-suspend/resume tuning
-added max cpu 2 limit if using off-screen freq > 475
Build 201303220148
Changelog:
-added sysfs interface for A2DP min freq
Code:
echo 340000 > /sys/devices/platform/tegra_uart_brcm.2/a2dp_tuning_freq
-added support for AOA 2.0 (usb audio) - still WIP since this requires also a ROM part
-faster resume on screen on
-switched back to BFQ as default scheduler
Build 201303170221
Changelog:
-smartmax_eps finetuning
-added CPU UV interface - so you can now use apps like Trickster mod
to change CPU voltages
-use variant 4 CPU voltages by default also for variant 3
Build 201303131612
Changelog:
-added smartmax_eps governor
eps stands for "extreme power saving"
so this is a smartmax tuned for even less battery usage
-disabled blocking ramdom access (always use non-blocking urandom)
-arm spinlock tweaks taken from 3.8.2
-rwsem tweaks
Build 201303052312
Changelog:
-use ROW I/O scheduler as default - better performance
-switched to cpuquiet CPU hotplugging with - tweaked to get more LP time
-added uhid - required for BT HID devices (gamepads)
-fast_charge no need to replug cable after changed
-configurable screen of frequency limit if you have problems with default 475Mhz
Code:
echo "640000" > /sys/module/cpu_tegra/parameters/suspend_cap_freq
Attention: this will disable "automatic" LP lock during screen off
so think if you really need it
-configurable min audio frequency limit if you have problems with default 102Mhz
Code:
echo 204000 > /sys/module/snd_soc_tlv320aic3008/parameters/audio_min_freq
-fixed kernel for HDMI support - now works again on sense
AOSP issues are caused by the ROM currently
Build 201302241749
Changelog:
-smartmax: minor fixes
-added nvidia smartdimmer - based on grouper kernel
https://android.googlesource.com/ke...d75/arch/arm/mach-tegra/board-grouper-panel.c
more info on smartdimmer here
http://nvidia.custhelp.com/app/answers/detail/a_id/2271/~/what-is-nvidia-smartdimmer?
Disable smartdimmer:
Code:
echo "0" > /sys/devices/tegradc.0/smartdimmer/enable
-added T3 variant sysfs
To get your variant:
Code:
cat /sys/kernel/debug/t3_variant
-added JRCU
-added row and sio I/O scheduler
-some tegra3 tweaks from TripNRaVeR - big credits to him
-google and nvidia bug-fixes
Build 201302202247
Changelog:
-updated interactive governor
-updated smartmax governor
-fixed button backlight lags - thanks to Thömy
-"good" nvidia fixes are back
-core voltage UV disabled to see if cause the random freezes
-some tegra3 tweaks from TripNRaVeR - big credits to him
smartmax is now the default governor!
Build 201302161307
Changelog:
-smartmax fixes
-reverted nvidia video fixes cause they seem to cause random freezes
-added support of cpufreq scaling_max_freq API
so you can now use apps to set scaling_max_freq and it will stick
----------------------------------------------------------------------------------------------
"fast charger" support (allows "overruling" of automatic charger detection)
to enable:
Code:
echo "1" > /sys/devices/platform/htc_battery/fast_charge
4x1.7Ghz mode
To enable
Code:
echo "1" > /sys/module/cpu_tegra/parameters/enable_oc
S2W Configs:
Turn off:
Code:
echo "0" > /sys/android_touch/sweep2wake
Button panel locks to s2w after this distance:
Code:
/sys/android_touch/s2w_register_threshold
Screen turns on/off after this distance:
Code:
/sys/android_touch/s2w_min_distance
Direction independent(1 - Yes, 0 - No):
Code:
/sys/android_touch/s2w_allow_stroke
How to get your CPU variant (3 or 4)
Code:
cat /sys/kernel/debug/t3_variant
and look for the line
Code:
cpu_process_id => 3
Excellent news.
Not had a chance to flash this or Lloir's rom yet, but I will later on.
Thanks maxwen :good:
maxwen said:
There will be no sense version since I will never touch sense
again as soon as CM10 gets stable enough to be used as daily
Therefore there is also no focus to keep this kernel sense "compatible"
Click to expand...
Click to collapse
Amen to that brother, can't wait to fork this when I see CM10 is good as DD
thanks for share.
Thanks, I'll try now and report back
i flashed them with CM10 build but gives me a unknown baseband...
Same here. It kills my radio. I get unknown baseband and loose all network access.
because the updated one i gave you both hasn't been released you both use an updated blade kernel + ramdisk
At the moment ONLY use the kernel that comes WITH the ROM
since this is a tested "combination"
I removed the download link for that reason
maxwen said:
At the moment ONLY use the kernel that comes WITH the ROM
since this is a tested "combination"
I removed the download link for that reason
Click to expand...
Click to collapse
deleted
OP updated
Latest kernel builds are available here
http://goo.im/devs/maxwen/CM10-enrc2b
Please notice that all kernels that are "newer" then the ones
included in CM10 release builds are considered to be "experimental"
so you use those "at your own risk"
Is there any changelog for these new versions?
OP updated for new version
Wlk said:
Is there any changelog for these new versions?
Click to expand...
Click to collapse
If you want to see whats new/changed open the github link from the op and open commits. Its some kind of advanced version of changelog
Sent from my HTC One X+ using XDA Premium HD app
is it based on 1.14.xxx OTA kernel sources?
I am eagerly awaiting OTA-update 1.17.401.1 (in UK, still on 1.14, not even 1.16 here) but I'm unsure whether HTC updates the kernel sources together with (probably) 4.2 Android OTA in the future.
3.1.10 is now EOL so would welcome HTC switched (in Android 4.2) to some mainstream kernel - 3.1.10 is not very common among devices to 'steal' code from
cowgaR said:
is it based on 1.14.xxx OTA kernel sources?
I am eagerly awaiting OTA-update 1.17.401.1 (in UK, still on 1.14, not even 1.16 here) but I'm unsure whether HTC updates the kernel sources together with (probably) 4.2 Android OTA in the future.
3.1.10 is now EOL so would welcome HTC switched (in Android 4.2) to some mainstream kernel - 3.1.10 is not very common among devices to 'steal' code from
Click to expand...
Click to collapse
From my experiences HTC NEVER upgrades kernel versions in OTA updates
only bug fixes
You should never rely on HTC for giving us a "good" kernel
If newer kernel sources are available from HTC
kernel will be of course rebased or at least all bug fixes
will be merged
Just stumbled upon something: Max CPU frequency is set to 1300, according to settings (lloirs fine cm10) and system tuner as well, yet the actual frequencies go beyond... is that setting ignored/overruled by your kernel (121212)? Or am I missing something here? Governor is ondemand.
It doesn't really bother me, just wanted to try out on limiting speed to see if it brings anything SUBSTANTIAL on battery life (which I honestly doubt). Thus just asking out of curiosity.
Taking advantage of posting: Heaps of thanks for your great kernel!
Sent from my HTC One X+ using Tapatalk 2
pb1379 said:
Just stumbled upon something: Max CPU frequency is set to 1300, according to settings (lloirs fine cm10) and system tuner as well, yet the actual frequencies go beyond... is that setting ignored/overruled by your kernel (121212)? Or am I missing something here? Governor is ondemand.
It doesn't really bother me, just wanted to try out on limiting speed to see if it brings anything SUBSTANTIAL on battery life (which I honestly doubt). Thus just asking out of curiosity.
Click to expand...
Click to collapse
Please read the AOKP thread starting here http://forum.xda-developers.com/showthread.php?t=2044584&page=2
since your question will be answered there
Thanks
Sent from my HTC One X+ using Tapatalk 2
OP updated for new build
Starting with this there is also BT headset support
BUT!!!
This requires also a changed ROM
So please wait for CM10, AOKP and AOSP releases to support this

[ZEN-KERNEL] 3.10-zen21 "Cheap and Easy" (May 20)

Pushbullet: https://www.pushbullet.com/channel?tag=zen
{
"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"
}
But you say I'm just a friend
Project Background
First of all. I like the nexus 6. Actually, I really really like the nexus 6. I think the device from factory performs quite marvelously, especially since the 5.1 update. Because of this, I am actually pretty content with running the stock kernel. "But BB...What about INTelligentSuperBOOSTXX5MillionPOINT5MegaBlast?!?!?!? Can you add this!?". While I appreciate all the great and free work that several great individuals do for the community. I personally don't see the need to alter any of these MSM/Board drivers a whole lot - not on these latest generation of devices. Things run pretty well I think.
"Why don't you just run the stock kernel then you sick low-life waste of space?"
Because, I still think improvements can be made.
I think there's a lot of good intentions out there to make improvements in the kernel-space, BUT:
I've observed a variety of things that were prevalent a couple of years ago and that are still prevalent today. (1) A lot of small things are changed - and advertised as a huge improvement, (2) some tunables are adjusted and advertised as a huge change/improvement but end up being a regression because they were never tested, or (3) some code is merged that causes regressions and it turns out that self-inflicted bugs are being chased around.
Zen is an attempt at improving the stock kernel. That's it.
Project Summary
The Zen kernel has always been oriented at improving the experience for desktop mobile users as much as possible. This iteration of the series is no different. The goal is simple: Improve the experience.
BFS CPU Scheduler
BFS is an alternative CPU scheduler to the stock kernel's CFS. BFS features a simple single-runqueue O earliest virtual deadline first design. There is no need for excessive balancing to achieve fariness on multiple runqueues - fairness is ensured by deadlines.
The goal of the Brain **** Scheduler, referred to as BFS from here on, is to completely do away with the complex designs of the past for the cpu process scheduler and instead implement one that is very simple in basic design. The main focus of BFS is to achieve excellent desktop interactivity and responsiveness without heuristics and tuning knobs that are difficult to understand, impossible to model and predict the effect of, and when tuned to one workload cause massive detriment to another.
Click to expand...
Click to collapse
BFS is tweaked towards human perception. It is not a real-time scheduler (like the SCHED_DEADLINE policy/scheduling in 3.14+) nor does it use runtimes+red/black trees to figure out fairness. It uses deadlines with the 6ms rr_interval based on the fact that humans cannot detect jitters until >= 7ms.
Anyway, not going to get into it much but you may find more information in post 2, or throughout this thread (I explained a bit more details about it around page 4).
Also, check these out:
BFS FAQ
BFS Wikia
Android/MSM 3.10 BFS Port
What is different about this and the 3.10-ck1 bfs v440 patch available on ck.kolivas.org
Backport fixes and features (not SMT NICE) from up to bfs v460ish
Some of Alfred Chen's upstream synchronization and refactoring of BFS methods (linux-3.18/19-gc branch)
My own syncing with mainline as well as backporting
What does this mean
Suspend/Wake issues that were killer on bfs v440 for 3.10 are not present in this port - these issues have been resolved.
You should NEVER report any issue related to this kernel upstream. Not android, linux, or BFS related. Do not report any issues anywhere but here.
"How about the performance?"
This kernel is all about interactivity by default.
The default rr_interval is set to 6. The logic is the human eye cannot detect jitter until about 7ms. Try lowering it if you want to increase interactivity. Try increasing it to achieve higher thoroughput.
-------------------------
Zen/Shamu Features
BFS CPU Scheduler
@flar2 Wake Gestures
@savoca KCAL Screen Color Control
@imoseyon Vibration SysFS interface
USB Fastcharge Support
Fsync SysFS Interface
Overclocking support
Flar2 userspace CPU voltage control
f2fs support and latest f2fs: f2fs/dev (even with ZenyKernel zip)
FIOPS + BFQ + SIO in addition to the stock ROW, CFQ, Deadline, No-op I/O schedulers
Several misc. CAF/msm + upstream updates/fixes.
Forced encryption disabled. (Even With ZenyKernel zip)
Added init.d support (ZenyKernel is up to your existing ROM/kernel)
selinux adjustments for viper4android and other things (ZenyKernel is up to your existing ROM/kernel)
Compatible with most ROMs, use ZenyKernel zip if there's compatibility issues.
Added zRam support
MPDecision disabled by default, replaced by touchboost listener + ZenDecision 2.0
ZenyKernel based on @osm0sis AnyKernel2 to use for roms who break compatibility with stock ramdisk
I work based on real results from user experience, not numbers. I don't claim anything as a big deal if it isn't one. Zen is a no-nonsense, well-tested kernel making real improvements to interactivity in the kernel space.
---------
Releases
All of these builds are for android 5.1 and above, unless otherwise noted
Wipe /cache before flashing for best results
Versions
- Recovery Zip: Kernel+Ramdisk: Use this on a stock/stock-like rom, or on a rom without support for things like viper4android or init.d support. Flash in recovery.
- Boot.IMG: Kernel+Ramdisk: Same as recovery zip, except in the raw boot.img form. Can be flashed in fastboot, flashify, etc.
- ZenyKernel Zip: Kernel Only (+ no force encryption +f2fs support +zen settings): Will use the exact same ramdisk you already have. If you have issues with the other full versions, then dirty flash your rom and this on top of it.
3.10-zen21 "Cheap and Easy"
Changes:
Compile with GCC 5.1
Several bcmdhd/wifi driver updates
Misc. CAF updates
Fix come cores sticking to performance governor
3.10-zen21 Recovery Zip Download
3.10-zen21 boot.img (install via fastboot/twrp IMG) Download
3.10-zen21 ZenyKernel Zip (Use on top of ROM dirty flash if issues with the above two)
Legacy Releases
3.10-zen20_rev2 "Grad Party"
Changes:
Disable MPDecision by default
ZenDecision 2 - Driver to ensure all cores are online when they are supposed to be online (tunables in /sys/kernel/zen_decision)
TouchBoost generic interface from franco, but modified for globalization
CPU-BOOST: Strip all existing input_boost functionality, use the existing parameters for the new touchboost interface
Slub: Update to newer upstream version of the mem. allocator ported by @XileForce
OC: Add 3.09GHz support (requires v2 of zen_max_freq zip)
msm_hsic wakelock slider...
f2fs: numerous upstream updates
conservative: add franco's twostep counter functionality
conservative: adjust default settings
interactive: adjust default settings
ondemand: Update frequency decision making from upstream
ondemand: Adjust defaults to be less aggressive
BFQ default I/O scheduler - based on significant interactivity improvement benchmarks on solid state and emmc memory.
rev1 fixes issue setting bat_threshold_ignore in ZenDecision
rev2 fixes issues with f2fs
3.10-zen20 Recovery Zip Download
3.10-zen20 boot.img (install via fastboot/twrp IMG) Download
3.10-zen20 ZenyKernel Zip (Use on top of ROM dirty flash if issues with the above two)
3.10-zen19 "Show Stopper"
Changes:
Revert to MPDecision by default. I don't have the time to fully implement a replacement ATM
BFS: Sync try_to_wakeup_* and ttwu_*
BFS: Replace resched_task with resched_curr
BFS: add soft_affined flag
BFS: sync context_switch and finish_task_switch
F2FS: Numerous upstream updates
MSM/KGSL: CAF Fixes/Updates
MSM/MDSS: CAF Fixes/Updates
MSM/mmc: CAF Fixes/Updates
MSM/vidc: CAF Fixes/Updates
MSM/QoS: CAF Fixes/Updates
Misc general upstream updates
Wake Gestures: Disable haptic by default
3.10-zen19 Recovery Zip Download
3.10-zen19 boot.img (install via fastboot/twrp IMG) Download
3.10-zen19 ZenyKernel Zip (Use on top of ROM dirty flash if issues with the above two)
3.10-zen18 "Think Twice"
Changes:
Disable MPDecision by default
Delegate MPDecision's input boosting (raising min_freq) to cpu-boost
Default cpu-boost touch boost set to 2s @ 1.497GHz, configurable in user space
ARM Updates
Some BFS updates
Fair Queue packet scheduler (Queue discipline)
Heavy-Hitter Filter Qdisc
PIE AQM Qdisc
I/O Scheduler: Change default deadline scheduler settings
I/O Scheduler: Add simple I/O scheduler v0.3 (user request - default remains CFQ)
ARM/Crypto: optimized SHA-256/224 (faster encryption performance)
Kcal updates
F2FS updates from upstream
Standard ramdisk support for CM12.1 and friends
The net schedulers are probably useless to the average user, but harmless. A couple people who like to play with network stuff may want to play around with them by using the "tc" command. If you aren't sure you don't need to do anything :silly:
3.10-zen18 Recovery Zip Download
3.10-zen18 boot.img (install via fastboot/twrp IMG) Download
3.10-zen18 ZenyKernel Zip (Use on top of ROM dirty flash if issues with the above two)
3.10-zen17 "Epidemic"
Changes:
Fix GPU frequency displaying low power modes
MDSS/Panel: misc. updates
MM: Misc upstream updates
CPUFreq: General CPUFreq driver updates/fixes
CPUFreq/Interactive: Numerous updates
BCMDHD: Reduce packet timeout, supposed to reduce wlan_rx wakelock
MSM/Power: quickwakeup driver from motorola + implementation
MSM/PM: Replace BUG_ON usage with correct solutions
AnyKernel: Remove device check, some devices that identified as something besides "shamu" had issues flashing.
3.10-zen17 Recovery Zip Download
3.10-zen17 boot.img (install via fastboot/twrp IMG) Download
3.10-zen17 AnyKernel Zip (Use for CM 12.1 or other roms that change ramdisk/sepolicy things)
3.10-zen16 "Yippee Ki-Yay"
Changes:
Revert ext4/3.18 backport which caused periodic lockups.
Merge up ext4 from v3.10.74 in lieu of the above
Add faux sound support
Adaptive LMK default
msm: vid coder possible null pointer fix from CAF
msm: mdss/panel fixes from CAF
kmemleak reporting improvements from upstream
3.10-zen16 Recovery Zip Download
3.10-zen16 boot.img (install via fastboot/twrp IMG) Download
3.10-zen16 AnyKernel Zip (Use for CM 12.1 or other roms that change ramdisk/sepolicy things)
3.10-zen15 "Unbroken"
Changes:
All the great changes of zen14 except without the BFS LLC cpumask selection - was an issue causer
Updated kcal (I forgot to merge into 14)
3.10-zen15 Recovery Zip Download
3.10-zen15 boot.img (install via fastboot/twrp IMG) Download
3.10-zen14 "Flight School"
Changes:
BFS: Full cpumask LLC cpu selection from -gc
BFS: Some trivial cleanups and fixes
Sched/BFS: Brought in the scheduler attr stuff from v3.14
rtmutex: deadlock detect fixes from upstream, prio. boost support for __setscheduler
Everything: Dozens and dozens of relevant i2c/usb/pinctrl/others race condition fixes, memory leak, deadlock fixes, etc. from upstream v3.10.y (without pulling it all I cherry picked relevant stuff)
VMA cache from upstream
ARM fixes from v3.10.y
Asynchronous I/O updates and unnecessary plug I/O removed for SSDs
Just dumped all my KGSL changes and sync'd with newest stuff from leankernel because i was too lazy to bisect and determine what was causing random page faults (they may still be there, they are on stock kernel too)
MSM: Updated sound soc
CM12.1 and friends AnyKernel zip added
3.10-zen14 Recovery Zip Download
3.10-zen14 boot.img (install via fastboot/twrp IMG) Download
3.10-zen14 AnyKernel Zip (Use for CM 12.1 or other roms that change ramdisk/sepolicy things)
3.10-zen12 "On top of the World"
Changes:
BFS: Sync up some tick accounting from upstream
LEDS: Merge in 13 or so patches. Fixes bugs such as concurrency issues as well as adds some features
MDSS: Merge in over a dozen patches, refactorizations, and bug fixes
Crypto: Update NEON/AES module
3.10-zen12 Recovery Zip Download
3.10-zen12 boot.img (install via fastboot/twrp IMG) Download
3.10-zen11 "Too Fast, Too Furious"
Changes:
Fix a bug in modem that I created
BFS: Add grq lock for priodl (alfred chen -gc)
BFS: Fix a potential bug but probably not in __schedule
Proc/MMU: Merged a bug fix and cleanup patchset.
3.10-zen11 Recovery Zip Download
3.10-zen11 boot.img (install via fastboot/twrp IMG) Download
3.10-zen10 "Interstellar"
Changes:
Reverted the red/black tree change to LowMemKiller. I observed some issues with it, perhaps I was missing fixes for it. Certainly the RBTree selection is much faster than the previous iterative method. But how much do we really care about the performance of LMK with 3GB ram?
Upstream CFQ bug fixes
(1) SMP: Added wake_up_all_idle_cpus function
(2) BFS: Added wake_up_if_idle function
(3) CPUIdle: Use wake_up_all_idle_cpus instead of old kick_all method. Should result in reduced cpuidle latency/better performance
Adreno: revert to stock wake-up latency of 490, from 101.
3.10-zen10 Recovery Zip Download
3.10-zen10 boot.img (install via fastboot/twrp IMG) Download
3.10-zen9 "Sunshine and Whiskey"
Changes:
Completely rebased my entire tree. Based on stock/msm tree again.
Pulled in all VM/MM updates from linux-3.10.y
Updated f2fs to latest f2fs/dev.git (Up to "f2fs: do not recover wrong data index")
Fix a KGSL bug that would result in page faults
Updated MSM V4L2 video driver (msm: vidc)
Misc. updates throughout the kernel and MSM to resolve potential memory leaks
Built a new compiler from latest linaro, building with that now instead of my antique one.
3.10-zen9 Recovery Zip Download
3.10-zen9 boot.img (install via fastboot/twrp IMG) Download
3.10-zen8 "Notorious Z"
Changes:
Repair self-inflicted wounds
KGSL+Adreno fixes
Buy food for phil the cat
Buy coffee
Pick up jacket from dry cleaner
3.10-zen8 Recovery Zip Download
3.10-zen8 boot.img (install via fastboot) Download
3.10-zen7 "Space Bound"
Changes:
BFS: fix hotplug bug related to affinity set/get
block: Add FIOPS I/O scheduler
ARM: numerous upstream updates/fixes
MSM: usb/bam numerous fixes
MSM: mdss numerous fixes
MSM: kgsl numerous fixes
MSM: camera numerous fixes
3.10-zen7 Recovery Zip Download
3.10-zen7 boot.img (install via fastboot) Download
3.10-zen6 "Morning After"
Changes:
qcom-cpufreq allow a boot parameter to specify max_freq, which determines how to populate the frequency table. By default it is the stock 2.6GHz. If you use the aroma zip at the end of this post you can choose up to 3.03GHz. This kernel code/method is from @flar2 I only made minor/trivial changes to it and hacked up the aroma so people can change the boot parameter easily..
Changed f2fs mount options again, for more stability
3.10-zen6 Recovery Zip Download
3.10-zen6 boot.img (install via fastboot) Download
3.10-zen5_rev1 "Day Drinking Sunday = Rough Monday"
Changes:
Added kexec-hardboot support for multirom
Adjusted f2fs default mount options (nobarrier on /data) (inline_dentry, extent_cache on /data and /cache). Zen4 f2fs was acting really slow, this fixes it
Build f2fs with security labels for selinux
Added BFQ v7r7
Added 2.95GHz and 3.03GHz overclock steps
BFS: refactor sched_init_smp
BFS: cleanup/remove unused above_background_load function
3.10-zen5 Recovery Zip Download
3.10-zen5 boot.img (install via fastboot) Download
3.10-zen4 "Bottoms Up"
Changes:
Merged v3.10.73 from linux-stable/linux-3.10.y
Overclock to 2.9GHz
Userspace voltage control from flar2
f2fs support and latest f2fs/linux-3.10 merged
ext4 3.18 backport, from ext4/backport-for-3.10
BFS rr_interval set back to default of 6
Several CAF KGSL/MDSS Fixes/Improvements
I/O Deadline some tweaks
3.10-zen4 Recovery Zip Download
3.10-zen4 boot.img (install via fastboot) Download
3.10-zen4 boot.img (use for f2fs, has security labels for selinux - Zen4 forgot to include it)
3.10-zen3 "Walking Tall"
Changes:
Fixed issue with KCAL app caused by zen2 ramdisk changes
Reverted culprits of random OOPs' and PANIC issues
Added vibration sysfs interface (same one as leanKernel)
Support for frequency mitigation (from imoseyon). If you just want to change the battery throttling I suggest you see post #2 instead though
1 misc. change
Internal changes that make me feel good inside
3.10-zen3 Recovery Zip Download
3.10-zen3 boot.img (install via fastboot) Download
3.10-zen2 "Where is the love?"
Changes:
Synced up some ramdisk stuff from imoseyon for other rom/CM compatibility
Added a fix from v3.10.51 to fix random oops' caused by my compiler
3.10-zen2 Recovery Zip Download
3.10-zen2 boot.img (install via fastboot) Download
3.10-zen1 "Dollar Drink Night"
3.10-zen1 Recovery Zip Download
3.10-zen1 boot.img (install via fastboot) Download
ZenDecision (zen20+)
You can still turn on MPDecision without any ill effects if desired
As of 5.1+ MPDecision is somehow responsible for at least the following:
Raise MIN_FREQ to 1497MHz for 3 seconds on touch events
Ensure CPUs come online after certain events, like thermal events (due to low battery for example)
User configurability is sacrificed when it is enabled. For example: changing minimum CPU frequency is not possible, nor is changing the touchboost frequency or duration possible. Simply disabling MPDecision results in the permanent disabling of CPUs in certain situations (until the user either reboots, or manually turns them on again).
ZenDecision is a simple "handler" for to keep CPUs online by the following logic:
When screen comes on, make sure all CPUs are online if current battery level is above bat_threshold_ignore
Simple, not a complete replacement for MPDecision. Just a handler for the event of cores never coming back online. Touchboosting is now configurable through the standard cpu-boost module parameters.
ZenDecision tunables (/sys/kernel/zen_decision/):
enabled (0=disabled, 1=enabled): Enable/Disable the driver from doing any work
wake_wait_time (0-60000 ms, 1000 by default): How long to wait to execute CPU_UP work after screen comes online.
bat_threshold_ignore(1-100, 0=disabled, 15 by default): The battery percentage to ignore CPU_UP operations. If current battery level is below this level, then the driver is essentially disabled.
How to enable overclocking (zen6+)
If your device is unstable at the overclocked frequencies, it is a hardware limitation with your device. Do not report it as a bug
To enable overclocking on zen6 or newer, you will need to use the recovery zip/aroma below.
You choose the max frequency you want, it pulls the boot.img from the device, adds a boot parameter specifying the OC frequency.
If you are not on zen6 or newer it will have no affect.
This does not install a kernel, you still have to install the kernel from one of the links above
Zen Overclock Enable v2
3.09GHz step only supported on zen20+
Thanks guys, and enjoy. Feedback is always appreciated.
XDA:DevDB Information
Zen Kernel, Kernel for the Nexus 6
Contributors
bbedward, purian23
Source Code: https://github.com/bbedward/ZenKernel_Shamu/
Kernel Special Features: Android/MSM BFS Port, kcal, gestures, cool stuff
Version Information
Status: Stable
Current Stable Version: 21
Stable Release Date: 2015-05-20
Created 2015-03-24
Last Updated 2015-05-20
FAQs:
Based on 5.1 Stock Kernel - It should work on all AOSP & CM ROMS
Disabled forced encryption - Meaning if your encrypted you'll stay that way, if you aren't, you'll stay that way
CPU Interactive Governor - Conservative/OnDemand/Userspace/Powersave/Performance Available
CFQ I/O - Deadline/Noop/Bfq/Row/FIOPS Available
Overclocking now available up to 3GHz - Must use Aroma OC Zip above.
F2FS Support - Find out how to enable this here!
KCal Colors by Savoca
Full Wake Gestures by flar2
Double Tap to Wake / Sweep to Sleep / Sweep to Wake
New stock setting - 5.1 throttles at 40% and again at 20% battery life - See the dev's details below on how to change this
@bbedward Regarding 40-20% Battery Throttle
Typically in the old days (which is the last time I was around) this type of thing would be in a cpufreq kernel driver using methods from the battery driver, and possibly allowing configurability through a basic sysfs interface. However, this is not the old days.
I inquired to my good friend imoseyon (I say good friend, he'd probably say "friend? you mean that crazy guy who i talked to once and now he keeps asking if I want to hang out?")
It appears that this battery change goes through the msm_thermal driver through a userspace process. The sad news is that there isn't a way to differentiate between thermal-related calls and these battery-related calls at the kernel level.
BUT,
this specific behavior can be disabled in the userspace (just not in the kernel space) - You will need root access (or you could make this change through twrp)
I will point you to this file (Which you should make a backup of before making any changes to it):
Code:
/system/etc/thermal-engine-shamu.conf
You can either edit it in something like root explorer, or pull it down through adb like this:
Code:
# adb pull /system/etc/thermal-engine-shamu.conf
Open it in your editor of choice (on windows I suggest you use something that supports unix line endings, like notepad++)
Point yourself to BAT-SOC-CPUFREQ near the top of the file
Code:
[BAT-SOC-CPUFREQ]
algo_type monitor
sensor soc
sampling 5000
thresholds 60 80
thresholds_clr 59 79
actions cpu cpu
action_info 2265600 1728000
Interpreting this is pretty straight forward:
- sampling 5000 : I guess how often (probably in ms) that it compares battery % to thresholds and thresholds_clr
- thresholds 60 80: defines two thresholds in which to take actions
- thresholds_clr 59 79: defines two thresholds in which to clear actions
- actions cpu cpu: the action to take (like a method) when thresholds are met
- action_info 2265600 1728000: action parameters that are apparently used to change scaling_max_freq
Read from thresholds down like a column
The bit that tells it to reduce frequency to 2.26Ghz at 40% and back to 2.6 at 41% is this:
Code:
thresholds 60
thresholds_clr 59
actions cpu
action_info 2265600
Where thresholds 60 refers to 40% battery by apparently % discharged (100-60 = 40%). Similarly thresholds_clr 59 (100 - 59 = 41%)
Anyway lets you say you want to throttle to 2.26GHz at 20% and at 21%+ you want to be back to normal scaling_max_freq (2.6Ghz stock) You should change it to look like this:
Code:
[BAT-SOC-CPUFREQ]
algo_type monitor
sensor soc
sampling 5000
thresholds 80
thresholds_clr 79
actions cpu
action_info 2265600
Save the file thermal-engine-shamu.conf and push back to device (or in root explorer you are already there)
Code:
# adb remount rw /system
# adb push thermal-engine-shamu.conf /system/etc/
# adb remount ro /system
Changes will probably take effect after you restart the thermal-engine service (if not, then do a reboot).
Code:
# adb shell stop thermal-engine
# adb shell start thermal-engine
Also notice the exact same applies for GPU frequency throttling and HOTPLUGGING due to battery
On stock 5.1 - Here is everything that happens and can be understood from the default thermal-engine-shamu.conf (related to battery):
CPU is throttled to scaling_max_freq 2.26GHz @ 40% battery
CPU is throttled to scaling_max_freq 1.7GHz @ 20% battery
GPU is throttled to 500MHz @ 45% battery
GPU is throttled to 389MHz @ 10% battery
GPU is throttled to 300MHz @ 5% battery
CPU3 (core #4) is removed (hot-unplugged) @ 15% Battery
CPU2 (Core #3) is removed (hot-unplugged) @ 8% Battery
Hotplug and GPU throttle behavior can be changed in the same thermal-engine-shamu.conf on the subsequent lines. (Exact same logic as described above, but actions/methods are different OFC)
Code:
[BAT-SOC-HOTPLUG]
algo_type monitor
sensor soc
sampling 5000
thresholds 85 92
thresholds_clr 84 91
actions hotplug_3 hotplug_2
action_info 1 1
[BAT-SOC-GPU]
algo_type monitor
sensor soc
sampling 5000
thresholds 55 90 95
thresholds_clr 54 89 94
actions gpu gpu gpu
action_info 500000000 389000000 300000000
So this is actually quite an easy thing to adjust. I know that franco/imoseyon have taken further actions to (and are currently working on):
Prevent this sort of userspace changes from going through msm_thermal driver, by rewriting the driver to only deal with thermal stuff (basically - and probably as it should do to begin with). Apparently this is a little problematic because QC/Moto/Goog have used this driver and its ioctl to funnel other important stuff through (that isn't thermal-related but is still important)
To lock specific msm_thermal userspace processes from making changes to cpufreq
But there are other factors in play there that complicate things.
Disabling the specific behavior of throttling CPU+GPU and disabling hotplugging at certain battery percentages is extremely easy through that configuration file.
Edit: More Knowledge Added - 4/7/15
Each row represents an array essentially, but if you specify something like 3 values for thresholds you need to specify 3 threshold_clr and 3 actions and 3 action parameters.
It's hard for me to say how the thermal engine behaves if you specify something wrong. Ideally you would assume that the parser is smart enough to handle things done incorrectly - and that the service itself is smart enough to have fallback for critical things if they are missing (I don't trust QC enough to assume that's the case), but it's impossible to say without guessing unless we saw the thermal-engine source (this is the service that's in the userspace - not in the kernel). Remember this is a qualcomm piece of software, and because /system is always mounted read-only in android (unless you access it with root access or through a custom recovery) they possibly didn't spend a lot of time working out error handling with respect to user error - because it's not something a user would ordinarily change.
Other Stuff:
Moto is cheap: (and so is everyone else). When it comes to a power supply there's more to it than just a battery - there's regulators, surge-protecting capacitors, protecting diodes, current sensors, etc. Each component in the device doesn't care about these things - they just draw a certain current. The cheapness comes in to play in that Motorola or any manufacturer is not going to bother building a power supply that's more than needed. In the case of the nexus 6 it appears that what they have is "just enough"
Battery efficiency degrades as it discharges. This certainly varies from battery to battery, but the faster the battery is discharging - the less ability it has to provide the required charge to power the device
Recall that there was a huge slurry of random reboot issues reported after the Nexus 6 launch. Something that occured apparently entirely at random, that didn't result from any sort of kernel panic - apparently simply the battery couldn't supply current demanded, so some current-limiting protection or a diode went into reverse bias and just cut the power (I can't say exactly because I didn't design the device).
The issue of unexplained random-rebooting seems to be almost entirely resolved in 5.1. The likely reason: the addition to the thermal-config-shamu file that restricts the maximum frequency, at 40% battery, to ~2.2GHz.
In short, it doesn't matter where you change this behavior. Changing the configuration file that directly communicates to the kernel ioctl is just as good as any kernel solution. The problem with a kernel solution is it goes through the same userspace process as thermal-related throttling. There are ways to block it in the kernel, but it is not configurable and not adjustable. It's more of an on/off type of thing.
Every device is different (different manufacturing tolerances). The majority of users probably had no issues with reboots or supply issues when they didn't have any throttling (until ~20%) on 5.0. But for the ones that did the only thing they could be told was to RMA their device.
I personally think google did the throttle at 40% to make up for a crummy power supply, rather than to gain an extra few minutes of battery life.
Also, there is no active hotplugging on 5.1 (Except for at something like 15% battery and while the device is sleeping - but not ACTIVE hotplugging). This could also be part of the reason why they added the 40% throttle, because when the cores are online all the time there's going to be more active draw from the power supply.
Interested in building ZenKernel?
Using GIT Differently
You don't need permission to fork, build, modify zen. Nor do you need permission to bundle it in your rom.
BUT, there has been some confusion in the way I handle my git tree I thought I would help explain here.
I handle all of my kernel-related GIT affairs very differently from anybody else you've seen, probably:
Everything is based off of stock msm/android-msm-shamu-3.10-lollipop-mr1 (Or newer revs as they come available)
When there is a major revision update to the base (android-msm-shamu-3.10-lollipop-mr2 or something), I will avoid rebasing the branch and create a new branch each (so there will be a BFS and a BFS_mr2 or something)
Every change from the stock kernel lives on it's own,independent branch. There's BFS, kcal, fsync, f2fs/ext4_upstream, kexec-hardboot, usb_fastcharge, etc, etc.)
I merge all these independent branches into the master branch, which is how I come up with the "Zen-Kernel" that includes all of them (git merge BFS; git merge kcal; git merge wake_gestures_ex, etc, etc.)
This means forking zen is not traditional, but it's a good thing!
What do I do if I want to pull something from Zen kernel into my tree?:
Add the ZenKernel_Shamu remote to your local tree (git remote add zen https://github.com/bbedward/ZenKernel_Shamu.git)
Fetch the newest zen changes (git fetch zen)
Pull the change you want, for example to pull BFS into your local tree: git pull zen BFS
Whenever you want to pull an update, git fetch zen; git pull zen BFS
These branches are all based on the STOCK msm/android-msm-shamu tree. So if you pull in BFS or kcal you will not get anything new except BFS or kcal. No other unwanted things will be pulled. Some branches depend on each other (ext4_upstream depends on mm_upstream for example), so if you pull in ext4_upstream you will also get the contents of mm_upstream, and so forth.
What do I do if I want to fork the entire zen kernel exactly as it is?
Well you can do it the old way as you always have. But I change some other stuff for internal purposes you may want to change (in the zen branch), such as the ZEN_INFO_SYSFS_INTERFACE is probably irrelevant to you and ZEN_INFO_VERSION_CODE only represents an integer value with the extra version "-zen" statically defined in the Makefile. You may want to change these things or revert them and just append something in the CONFIG_LOCALVERSION such as "-MyKernel_5.1" or something.
Oh my goodness gracious..... Zen Kernel. Oh boy, oh boy......
And we're back!!!
I have an untested bfs port for the msm/3.4 tree as well. It is in process of getting tested on the nexus 5. Anybody interested I will send it to you.
This looks tasty, cant wait to see how it performs!
Sounds like a plan send it much alohas
if @purian23 is contributing, then i have to try out this kernel
simms22 said:
if @purian23 is contributing, then i have to try out this kernel
Click to expand...
Click to collapse
Haha thanks dude, all the credit goes to @bbedward! We've been buddy's since our GNex adventures! I'm doing a little bit of testing here and kept bugging him until he caved to build again lol
Zen Kernel was my favorite kernel on the GNEX. Ah.. The good old days
Ahhh.. BFS.. Reminds me of early kernel flashin days
whojabacod said:
Ahhh.. BFS.. Reminds me of early kernel flashin days
Click to expand...
Click to collapse
Give it a try, interactivity feels very good especially doing things like browsing content heavy desktop websites.
In the old days, and present day with 3.10-ck there seemed to be suspend/wake issues that kept everybody away - probably rightfully so. I'm quite happy with the way this version is working though.
Running g good so far.
bbedward said:
Give it a try, interactivity feels very good especially doing things like browsing content heavy desktop websites.
In the old days, and present day with 3.10-ck there seemed to be suspend/wake issues that kept everybody away - probably rightfully so. I'm quite happy with the way this version is working though.
Click to expand...
Click to collapse
Thanks for bringing this kernel to the Nexus 6, do I need to wipe anything before flashing your kernel? I am on a custom kernel. Thanks
Damon13 said:
Thanks for bringing this kernel to the Nexus 6, do I need to wipe anything before flashing your kernel? I am on a custom kernel. Thanks
Click to expand...
Click to collapse
I flashed without wiping anything. But the dev recommends wiping cache.
pantmunu said:
I flashed without wiping anything. But the dev recommends wiping cache.
Click to expand...
Click to collapse
Thanks i completely missed that, by the way is the kernel running 4 cores like stock. Thanks in advanced
Damon13 said:
Thanks i completely missed that, by the way is the kernel running 4 cores like stock. Thanks in advanced
Click to expand...
Click to collapse
Yes it is.
Gland to see you here I flashed your kernel over benzo rom and got system fc keep popping up any ideas tied to get a log but could not
jaythenut said:
Gland to see you here I flashed your kernel over benzo rom and got system fc keep popping up any ideas tied to get a log but could not
Click to expand...
Click to collapse
Flashed this on terminus. No problem here. Try dirty flashing benzo ..let it reboot and flash the kernel. Might help.
jaythenut said:
Gland to see you here I flashed your kernel over benzo rom and got system fc keep popping up any ideas tied to get a log but could not
Click to expand...
Click to collapse
Stock kernel might not work on cyanogen mod? Maybe it relies on some ramdisk changes I'll have to look into it.

[KERNEL] [ROOT] [SM-N920* Exynos 7420] [19 Feb] SkyHigh TW 5.1.1 Kernel [v4.5]

[KERNEL] [ROOT] [SM-N920* Exynos 7420] [19 February] SkyHigh TW 5.1.1 Kernel [ v4.5 ] [Synapse ++]
*** DEVELOPMENT & SUPPORT CEASED FOR 5.1.1 ***
WARNING
Code:
[COLOR="Red"]PLEASE SHOW RESPECT TO ACTUALLY [COLOR="PURPLE"][B]READ POSTS #1-3[/B][/COLOR]
[URL="http://forum.xda-developers.com/announcement.php?a=81"][B]XDA RULE #1 "SEARCH BEFORE POSTING"[/B][/URL] (GOOGLE, XDA & THREAD),
IF YOU DON'T LIKE A UP-FRONT "MATTER OF FACT" APPROACH,
[B]THEN DON'T BOTHER POSTING[/B]. [/COLOR]
FEATURES
Code:
* Based on official Samsung source: [URL="http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=F&searchValue=n920"]Samsung OSRC[/URL]
* ramdisk source:
[INDENT][COLOR="red"]N920C/CD/I/G[/COLOR] XXU2APA2
[COLOR="red"]N9200[/COLOR] ZCU2AOL2
[COLOR="red"]N9208[/COLOR] XXU2AOL1[/INDENT]
* Compiled with Linaro gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu
* Linux 3.10.96
* [COLOR="red"]AUTO-ROOT binary v2.52[/COLOR] & Install busybox v1.24.1-Dorimanx
* [COLOR="Red"]KNOX WARRANTY VOID: 1[/COLOR]
* [COLOR="red"]SELinux PERMISSIVE[/COLOR] (for Titanium Backup and other apps to work correctly)
* adb insecure
* stock dt.img
* init.d script support (drop in script & set permissions to 755 or 777 and reboot)
* [COLOR="red"]DEEP SLEEP FIX[/COLOR]
* [COLOR="red"]IN-CALL REBOOT BUG "FIX"[/COLOR]
* Possible Screen Mirroring / AllShare Cast fix
* Secure storage = false (should prevent WIFI settings & passwords wiping on reboots)
* RAM management tweaks
* GearVR [U]reported[/U] working (depends on ROM/firmware version installed)
* [B]Synapse app support[/B] for many kernel configurations + more !!
* Many descriptions are in the app ! If you require more info, don't be lazy, please [B]SEARCH[/B] like I did ;)
SYNAPSE FEATURES
ABOUT
PayPal Donation link
SkyHigh kernel thread link
Up time
Total
Sleep
Awake​
A57 CPU
A57 big Cores Frequency Scaling
live frequency
MAX: 2400 MHz (stock 2100 MHz is default)
MIN: 500 MHz (stock 800 MHz is default)​
A57 VOLT
HPM voltage control
A57 big Cores voltage control
A53 CPU
A53 LITTLE Cores Frequency Scaling
live frequency
MAX: 1600 MHz (stock 1500 MHz is default)
MIN: 200 MHz (stock 400 MHz is default)​
A53 VOLT
HPM voltage control
A53 LITTLE Cores voltage control
CPU GOV
CPU governors
interactive (default)
on-demand
conservative
ktoonservative (hotplug)
userspace
performance​
Interactive governor live load at current frequency (A57+A53)
Interactive governor tuning (profiles)
Default
Battery
Performance​Turbo Mode​
A57 GOV
A57 governor tunables
A53 GOV
A53 CPU governor tunables
MULTICORE
HMP threshold tuning profiles
Default
Performance
Battery​
HMP threshold controls for up/down migration
Power Aware Scheduling control
HMP LITTLE Packing
PEWQ (Power-efficient Workqueues) control
Exynos Core Control Interface (choose 5 > 8 cores online)
CPU STATS
CPU0 time in state
CPU4 time in state
BOOST
Input-Booster profiles
key
touchkey​
GPU
GPU stats
Current clock freq
Live Frequency Utilization (load)
Time in state​
GPU power policy control
coarse_demand (default)
demand
always_on​
GPU frequency scaling
Max freq control to 852 MHz (700 MHz is default)
Min freq control to 100 MHz (stock 266 MHz is default)​
GPU Governor
Default
Interactive (default)
Static
Booster (more graphic and benchmark performance)​
GPU Interactive Governor tunables
highspeed clock
highspeed load
highspeed delay​
GPU VOLT
HPM voltage control
GPU voltage control
THERMAL
Sensor temperatures
A57
A53
GPU
ISP​
CPU thermal control
normal temp
critical temp​
GPU thermal control
On/Off thermal manager
temp levels 1 > 5
throttling freq levels​
Memory thermal control
normal temp
critical temp​
ISP (Image Signal Processor) thermal control
temp levels 1 > 5​
BUS
Memory Bus HPM voltage control
Memory Bus voltage control
Internal Bus voltage control
ISP (Image Signal Processor) voltage control
IO
I/O Schedulers
BFQ (tweaked for SSD)
DEADLINE (tweaked for SSD)
FIOPS
CFQ = default (tweaked for SSD)
NOOP
ROW (tweaked)​
Storage read-ahead (256 KB)
General IO tuneable
Add random
IO stats
Rotational
No merges
RQ Affinity
NR requests​
I/O scheduler tunables
MEMORY
Memory state
Total
Free​
Low Memory Killer Profiles
Low
Medium
Custom (recommend)
Default (default)
Aggressive
Exterminate​
Low Memory Killer minfree tuning (OOM LMK)
Adaptive Low Memory Killer
vmpressure_file_min​
Samsung SPCM Service control (Enabled = default/stock)
Ultra Kernel SamePage Merging (UKSM)
UKSM stats
Scan Delay Interval
UKSM Governor
Max CPU consumption​
Dynamic FSYNC control (enabled)
Dynamic dirty page writeback control (enabled)
Dirty writeback active
Dirty writeback suspend​
Virtual Memory
Virtual NAND Swap control (VNSwap)
ZSwap memory pool
Adaptive Dirty Background Ratio on suspend / resume
Adaptive Dirty Ratio on suspend / resume
Drop caches (Clear VFS cache after boot)
Laptop Mode
Swapiness
Adaptive vfs_cache_pressure on suspend / resume​
ADVANCED
Entropy (max 4096)
Gentle Fair Sleepers control (disabled)
Arch Power control (enabled)
randomize_va_space control
pm_freeze_timeout control
Google Play Services Battery Drain Fix
Driver wakelock controls
SensorHub
ssp_sensorhub​SSP
sig_motion_sensor
pickup_gesture
grip_sensor
tilt_detector
proximity_sensor​bcm4773
bcm4773_gps​
POWER SUSPEND
Modes:
Autosleep
Userspace
Display Panel
Hybrid (Autosleep + Display Panel) = default​
PowerSuspend State (enable only with Userspace mode set)
Version push button
AUDIO
(Sound Control by AndreiLux)
Jack media volume control
L/R channel volume
mono mixer​
Speaker volume control
Earpiece volume​
Main Equalizer
Advanced Stereo Equalizer
SCREEN
Live panel brightness
sweep2sleep control
NETWORK
TCP congestion control
All available enabled.
Default = westwood+​
Screen mirror/allshare cast fix control (enabled)
Clean WIFI Lease
WIFI Passwords
Save
Restore​
WiFi Power Mode While Screen-On/Off
Force Off
Off
Fast (default = screen ON)
Max (default = screen OFF)
WiFi DTIM Interval While Screen-On/Off​
RX wakelock timeout control
TCP/IP network security
3G DNS speed & security tweak
Google
OpenDNS
Comodo, Level3
Norton_DNS
Smart_Viper​
GPS time-zone
Original
Asia
Europe
Oceania
North America
South America
Africa​
IPV6-protocol
IPv6 Test push button
IPv6 enable / disable
optimistic detection​
SECURITY
KNOX control
NO_ACTION (default)
Disabled
Enabled​
SELinux
Live status​
BATTERY
Battery info
Charging controls
HV power supplies
A/C Mains
A/C Mains (screen-on)
Standard downstream port
Dedicated charging port
Charging downstream port
Accessory charging adapter
MHL power
Wireless power​
Store Mode
enable / disable (master control)
Store Mode Maximum
Store Mode Minimum​
Battery SCALING calibration (fuel gauge reset)
LED
LED disable control
LED Fade-in/out Time Period
LED Fade control
Fade-in
Fade-out​
Test notification push button
Stop notification push button
FS (File System)
Display FS Type
FS Controls
remount System r/w r/o
remount RootFS r/w r/o​
Scrolling cache control
Optimise Databases (SQLite3)
FSTrim lagfix
Wipe options
cache reboot
dalvik-cache reboot
cache & dalvik-cache reboot​
Clean up
clipboard cache
/data/tombstones
/data/anr logs
/data/dropbox logs
lost+found​
CORTEXBRAIN
Live status
Cortexbrain-Background-Process (Master Switch)
CortexBrain Functions
WiFi Auto
Media Manager
System-Tweaks
Kernel-Tweaks
nmi_watchdog​
CRONTAB
Live status
CronTask (Master Switch)
Cron Tasks
Clean RAM cache (every hour)
Google Service restart (every 3 hours)
Clean app cache & junk (every day at 4:30AM UTC)
clipboard cache
/data/tombstones
/data/anr logs
/data/dropbox logs
lost+found​Optimize databases (every day at 4:40AM UTC)
File system trim (every day at 4:50AM UTC)
Battery scaling calibration (every Sunday at 5:00AM UTC)​
Test Cron Task jobs
USB
USB status
USB mode selection
MTP
PTP
CD_ROM (drivedroid support)
USB_Keyboard-Mouse​
MODULES
CIFS
NTFS
ISO9660_FS
UDF
XPAD
BACKUP & RESTORE
Name - Restore - Delete - Backup
profiles
kernel image​
LOGS
Android Logger control (enabled)
LogCat​
Kernel Logger control (enabled)
dmesg
last_kmsg​
REBOOT
Reboot device
Recovery Mode
Download Mode
Power Off
Clear Synapse Data & Reboot
Restart Synapse
INFO
Reduced logging
exFAT FS support
NTFS R/W support with app
CIFS support (not tested)
ISO 9660 CDROM & UDF FS support
Frandom
mount partitions NOATIME and NODIRATIME by default
FSTrim on boot (ensure consistent IO throughput)
Entropy tweaks
Increased boot frequency
Power-efficient workqueue (PEWQ) efficiency patches
CLEANCACHE & ZCACHE
Microsoft X-BOX gamepad controller module (updated)
LZO de/compression algorithm
Slub tweaked
Much more - check source commits & Synapse
CREDITS
My family !!
@Chainfire - root & SuperSU / @Manh_IT - auto-root method
@AndreiLux - years of support for Exynos development and his various kernel features + Synapse app and UCI code
@halaszk88 - patches and Synapse code I adapted to many of my kernels
@dorimanx - BusyBox and various ramdisk tweaks/ideas
@apb_axel - I adapted and used many of the Synapse controls to suit my kernels
@arter97 - various source fixes/patches
@ktoonsez - ktoonservative hotplug governor
@LuigiBull23 - ktoonservative profiles I've adapted
XDA
Samsung OSRC
and many others!
check github source credits
IF I'VE FORGOTTEN ANYONE, PLEASE DON'T BE SHY AND SPEAK UP, THANKS
XDA:DevDB Information
SkyHigh Note 5 Exynos 7420 Kernel, Kernel for the Samsung Galaxy Note 5
Contributors
UpInTheAir
Source Code: https://github.com/UpInTheAir/SM-N920
Kernel Special Features: Synapse ++ | EXT4 | exFAT | NTFS | CIFS
Version Information
Status: Stable
Current Stable Version: 4.5
Stable Release Date: 2016-02-19
Created 2015-08-29
Last Updated 2016-03-04
Warning - ChangeLog - Requirements - Installation - Download - Source
** DISCLAIMER : FLASH AT YOUR OWN RISK **
WARNING :
Code:
[COLOR="Red"]* Under-volting can cause instability
* Over-clocking can cause freeze/reboot, heat & damage to CPU, GPU or other hardware
* Any customizations may void warranty
* May not be suitable for your device or customizations
* UpInTheAir is NOT responsible, the person you see in the mirror is !![/COLOR]
CHANGE-LOG
Open GitHub Change-Logs
Tap/click "Full Change log" under the latest version (i.e. v4.5)
Example: ALL commits (changes) for v4.4 > v4.5 are visible at the top section
Tap/click any commit and will display all comments in the top section and code changes in the bottom section for particular commit
REQUIREMENTS
Variant support for:
SM-N920C / CD / G / I
SM-N9200
SM-N9208_SEA (SM-N9208_TW reported to work, but no official support)​
Watch >>> THIS <<<
FOR BUG REPORTING: Stock UNMODIFIED TouchWiz (TW) 5.1.1 ROM (this means no Xposed or tweaks etc)
Custom recovery i.e.. TWRP
INSTALLATION
If you have systemless root installed, then you must REMOVE it as this kernel will auto-root a proven and stable 2.52 binary into system.
Open SuperSU app
Select "Full unroot" option
Reboot (or flash kernel)
Re-install SuperSU app​
Uninstall any CPU control apps, tweaks and init.d scripts etc.
Recommend: Disable or remove KNOX (you can disable with Synapse once kernel is flashed)
Install Synapse app from Google Play and rate it ☆☆☆☆☆ !!
Device Settings:
Enable Developer Options > OEM UNLOCK
If flashing from any custom kernel with Synapse app > Device settings > Applications > Synapse > Force Stop > clear data​
If not installed > Install SuperSU from Google Play:
N9200/N9208: unlock your bootloader >> Install and run CROM service unlock app from Galaxy App Store (this will probably wipe your accounts). If you have problems with CROM, try without it !
Boot into custom recovery and flash SkyHigh_kernel____.zip FOR YOUR DEVICE and reboot
After boot:
a) wait at least 120 secs to stabilize
b) Open Synapse
c) Tap "Understood"
d) DO this step so some defaults are set !!
1. tap the square menu button top right hand corner
2. tap the three dots button
3. "select all globally"
4. tap the back button next to it
5. apply​
DOWNLOADS
Mod Edit: Links Removed
SOURCE
ALL KERNELS COMPILED WITH SAME SkyHigh SOURCE !!
Github
.
Help and FAQ
THREAD RULES & PROTOCOLS FOR THIS DEVELOPMENT THREAD:
I might not have your device variant and or able to reproduce your "issue". With this in mind, without providing as much information as possible, and resetting your device to a stable unmodified baseline, any potential troubleshooting or logs could be meaningless. So please follow the guidelines set out below. Thanks
BY POSTING YOUR ISSUES IN THIS THREAD, YOU ARE AGREE TO HELP YOURSELF FIRST BY PROVIDING INFO REGARDING:
Code:
1. DEVICE MODEL ?
2. ROM and firmware version (build number, boot-loader etc) ?
3. EXACT steps taken to reproduce YOUR issue
4. Screen-shots (if applicable)
5. Did you read Posts #1-3 completely?
6. Did you search the thread, XDA or GOOGLE?
7. Did you follow the install instructions EXACTLY?
8. What was your previous kernel?
9. Do you have any other known kernel tweaking apps, scripts or mods? ([B]remove them[/B]). [COLOR="Red"]This includes Xposed etc[/COLOR]
10. Try older kernel (if available)
11. Factory reset ?
12. Try latest stock [B]UNMODIFIED[/B] firmware (without custom ROM - if you have installed) and factory reset
13. Delete your ROM BusyBox (kernel uses it's own in /sbin)
ONLY IF YOU HAVE TRIED SUGGESTIONS ABOVE:
Turn on logging in Synapse and save logs AT TIME OF ERROR. AND post together with ALL the above information.
ELSE, DON'T WASTE MY TIME, YOU WILL BE IGNORED AND/OR POST REPORTED !!
THANK YOU :good:
NO FAST CHARGE
If using the pathetic original cable, try disconnect and reconnect the USB cable whilst power is still turned on to the charger
Use a thicker / better cable, will work every time (ie. Note4 OEM cable)
CAN I BUILD A KERNEL FOR YOUR __XX DEVICE ?
I will not build for any device that I can not compile using SAME source, personally test method or debug. Some device variants can compile with same source.
Sorry. I don't have the spare time for any more variant support.
"NO UCI SUPPORT"
It's a ROM busybox compatibility issue
Three choices:
Device > settings > applications > Synapse > force close & wipe data and REBOOT
OR
Remove your ROM busybox from /system xbin and /system/bin (Synapse will use the kernel busybox in /sbin).
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
OR
Try install a different busybox
Force stop Synapse and delete app data (device settings > applications)
Re-flash kernel as per Installation Instructions
Synapse or BACKUP/RESTORE ISSUES
It's a ROM busybox or sqlite3 compatibility issue
Remove both your ROM busybox & sqlite3 from /system xbin and /system/bin (Synapse will use it's own from kernel /sbin).
Device > settings > applications > Synapse > force close & wipe data
Reboot or re-flash kernel as per Installation Instructions
BACKUP & RESTORE
DO NOT restore profiles from different kernel version
Refer to THIS post for "how-to" screen-shots
Refer to THIS post for a "how-to" video (thanks @aldoblaga )
LOADABLE MODULES AREN'T WORKING
Check your /system/lib/modules directory. Are any ____.ko present?
Did you flash a ROM or wipe the system partition at any point? Doing this will remove them !
Re-flash the kernel will install the modules.
If modules aren't installed after flash, then re-flash and manually mount system in recovery first.
You can check running modules in terminal with:
Code:
lsmod
KTOONSERVATIVE GOVERNOR
Some info from the author: http://forum.xda-developers.com/showpost.php?p=60223338&postcount=3
DT2W & COLOUR CONTROL
No, I cannot make it work properly with single source for all supported variants
CPU POWER CONSUMPTION
The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC (by ANANDTECH - Andrei)
F2FS SUPPORT
It's not needed. You wouldn't see any difference or measure much, if anything. Not worth the potential trade-off. This is not eMMC anymore
http://bgr.com/2015/03/17/galaxy-s6-storage-benchmarks/
STUCK ON SAMSUNG BOOT LOGO AFTER FLASH
Ensure you flashed the correct kernel for your device model
Ensure your download is not corrupted. Check MD5 hash or re-download
Your current base firmware (ROM, boot-loader version etc.) may be incompatible - UPDATE to latest with Odin and try again.
CM SUPPORT
Read Post #12
"Unauthorized actions have been detected, reboot to undo changes"
As it's a common warning found with all KNOX enabled android devices, you would have found the answer by Google search and also that it is actually unrelated to kernel and also unrelated to this kernel development..............
It is caused by the process of rooting/modifying your device. Unless you use KNOX, don't worry.
[Q] How to disable
[A] Freeze or delete your KNOX & Security related apps/processes manually (using root explorer or titanium backup (pro) or use Synapse > Security > disable KNOX
CAN I USE OTHER KERNEL CONTROL APPS
No, many features and options won't be available. Remove all other control apps to avoid conflicts !
Synapse is the recommended and has everything you need
BATTERY TIPS
Try some (or combination) of the CPU MULTICORE features in Synapse:
HMP profile = Battery
Power Aware Scheduling (slight performance cost) = Enabled
HMP LITTLE Packing (slight performance cost) = Enabled
PEWQ (power-efficient workqueue) (slight performance cost) = Enabled​
Set A57 & A53 Interactive governor profile = Battery
Set Input-Booster for key/touchkey profile = Battery
Multi-tasking: enable UKSM & "low" or "quiet" profile (slight performance/battery cost)
Set all Advanced wake-lock controls to 1, except GPS. Set it to 4
Set WiFi wakelock control to 2 or 3
PERFORMANCE TIPS
Set A57 & A53 Interactive governor profile = Performance
Set A57 & A53 Interactive governor = Turbo Mode (battery cost)
Once in a while:
Optimize Databases
FSTrim​
RANDOM REBOOT
Don't UV or UC CPU or GPU
Use SkyHigh defaults
Use a stock UNMODIFIED ROM for your device variant
No tweaks, Xposed or other CPU control apps installed
ASV_GROUP (ALL DEVICES ARE NOT CREATED EQUAL)
This is an example from my Exynos5420 source. Similar idea for Exynos420
http://forum.xda-developers.com/showpost.php?p=61579949&postcount=202
CAN I INCLUDE SkyHigh KERNEL IN MY ROM
Although I do appreciate your contribution here, if you could please do not include my kernel in any ROM package etc. This policy goes for anyone.
Having my kernel distributed outside my development thread just removes a lot of credit and more importantly, constructive user feedback that could be helpful to my development or user issue.
DOWNLOAD LINK NOT WORKING
I want to keep this project all in one place - ☆☆ NO MIRRORS ☆☆
Please try again in a few minutes
POOR CPU/GPU BENCHMARK or GRAPHICS PERFORMANCE
Disable any CPU MULTICORE options in Synapse
Disable any Battery profiles in Synapse. Set to default or Performance.
Allow the device to cool. Repetitive testing will heat the device hardware and invoke thermal throttling and lead to decreased benchmark.
HIGH CPU/GPU OC >> excessive heat >> thermal throttling >> reduced clock frequency >> DECREASE PERFORMANCE
DYNAMIC MANAGEMENT OF DIRTY PAGE WRITEBACKS
* [Christopher83]
This feature allows to have two different intervals for dirty page
writebacks and to dynamically manage them when the system has been
resumed (it's active) or when has been suspended.
Three new procfs parameters are exposed inside /proc/sys/vm path:
- dynamic_dirty_writeback is the activation status of this feature,
set 1 to enable it, set 0 to disable it and use the standard behaviour
- dirty_writeback_active_centisecs is the interval for the dirty page
writebacks when the system is active (screen on)
- dirty_writeback_suspend_centisecs is the interval for the dirty page
writebacks when the system is suspended (screen off)
This feature is in part inspired on Francisco Franco's patch:
https://github.com/franciscofranco/mako/commit/34d79548cf16b69c7d0154836018e7f258a22947
Click to expand...
Click to collapse
TCP/IP NETWORK SECURITY
* Thanks to zeppelinrox & V6SuperCharger
Hardening the TCP/IP stack to SYN attack
Bump up tw_buckets in case we get DoS'd
Ignore pings
Don't cache connection metrics from previous connection
Don't pass traffic between networks or act as a router
Enable spoofing protection (turn on reverse packet filtering)
Don't accept source routing
Don't accept redirects
- Further reading:
http://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening
http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
CHROMECAST - STREAMING PROBLEMS
* Thanks to @AtLmd Post
Lock screen MUST be enabled (simple screen lock swipe) I don't know why but it breaks the chromecast app's ability to resume smoothly if switched off
Synapse > Network > DTIM (both screen ON & OFF) = 1
Synapse > Network > WIFI Power Mode (screen OFF) = FAST
.
Thank you
Does it also work on N920I?
Any download link for testing?
bill340 said:
Does it also work on N920I?
Any download link for testing?
Click to expand...
Click to collapse
Currently only SM-N920C - my device
Just in the final stages of cleanup >> update Posts #2 & 3 >> release soon.
Other variants :
users will require to post here the latest boot.img for their device and from which firmware build you extracted from.
download from sammobile.com or samsung-updates.com (1.5+ GB)
WARNING :
If your device is bootloader locked or similar restrictions, this kernel will not help and most likely end in BRICK
Warranty most likely voided as KNOX 1 flag is tripped.
Mine device is SM-N920C (Thailand) too. I've got it rooted from the thread of Manh_IT and it's randomly reboot 3/4 times a day. Will the issue solved when flash your kernel when it's available. Thanks for your time UpinTheAir!
Lo Xa said:
Mine device is SM-N920C (Thailand) too. I've got it rooted from the thread of Manh_IT and it's randomly reboot 3/4 times a day. Will the issue solved when flash your kernel when it's available. Thanks for your time UpinTheAir!
Click to expand...
Click to collapse
I would not know about random reboot on your device. I would suggest to factory reset and immediately flashing stock ROM firmware to make sure your device is clean. After setup, flash SkyHigh kernel with Odin (FOLLOW INSTALLATION INSTRUCTIONS). Test first before making any modifications / tweaks and also before TWRP etc !!
I have no problems yet
v1.0 SM-N920C Initial release
v1.0 initial release for SM-N920-C device
Tested by UpInTheAir with :
SM-N920-C 32GB device
stock N920CXXU1AOH4 firmware
no Xposed etc
no tweaks etc
no TWRP
XDA RULE #1 'SEARCH BEFORE POSTING". Please READ Posts #1-3 BEFORE flashing !!
Have fun
Cheers
UITA
UpInTheAir said:
[KERNEL] [ROOT] [SM-N920 Exynos 7420] [29 August] SkyHigh TW 5.1.1 Kernel [v1.0] [Synapse ++]
WARNING
Code:
[COLOR="Red"]PLEASE SHOW RESPECT TO ACTUALLY [COLOR="PURPLE"][B]READ POSTS #1-3[/B][/COLOR]
[URL="http://forum.xda-developers.com/announcement.php?a=81"][B]XDA RULE #1 "SEARCH BEFORE POSTING"[/B][/URL] (GOOGLE, XDA & THREAD),
IF YOU DON'T LIKE A UP-FRONT "MATTER OF FACT" APPROACH,
[B]THEN DON'T BOTHER POSTING[/B]. [/COLOR]
FEATURES
Code:
* Based on official Samsung source:
* ramdisk source:
* Compiled with Google ARM Toolchain GCC 4.9
* Linux 3.10.61
* [COLOR="red"]AUTO-ROOT[/COLOR] & Install busybox v1.24.1-Dorimanx
* [COLOR="Red"]KNOX WARRANTY VOID: 1[/COLOR]
* [COLOR="red"]SELinux PERMISSIVE[/COLOR] (for Titanium Backup and other apps to work correctly)
* adb insecure
* init.d script support (drop in script & set permissions to 755 or 777 and reboot)
* Possible Screen Mirroring / AllShare Cast fix
* Secure storage = false (should prevent WIFI settings & passwords wiping on flash)
* [B]Synapse app support[/B] for many kernel configurations + more !!
* Many descriptions are in the app ! If you require more info, don't be lazy, please [B]SEARCH[/B] like I did ;)
SYNAPSE FEATURES
ABOUT
PayPal Donation link
SkyHigh kernel thread link
Up time
Total
Sleep
Awake​
A57 CPU
CPU temperature
A57 big Cores Frequency Scaling
live frequency
MAX: 2100 MHz (stock/default)
MIN: 800 MHz (stock/default)​
HPM voltage control
A57 big Cores voltage control
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
A53 CPU
A53 LITTLE Cores Frequency Scaling
live frequency
MAX: 1500 MHz (stock/default)
MIN: 400 MHz (stock/default)​
HPM voltage control
A53 LITTLE Cores voltage control
CPU governors
interactive (default)
on-demand
conservative
userspace
performance​
CPU governor tunables
HMP
Up thresholds
Down thresholds
GPU
GPU stats
Current clock freq
Live Frequency Utilization (load)
Time in state​
GPU power policy control
coarse_demand (default)
demand
always_on​
GPU Governor
Default
Interactive (default)
Static
Booster (more graphic and benchmark performance)​
GPU Interactive Governor tunables
highspeed clock
highspeed load
highspeed delay​
HPM voltage control margin
GPU voltage control
BUS
Memory Bus HPM voltage control
Memory Bus voltage control
Internal Bus voltage control
ISP (Image Signal Processor) voltage control
IO
I/O Schedulers
DEADLINE
CFQ
NOOP​
Storage read-ahead (256 KB)
General IO tuneable
Add random
IO stats
Rotational
No merges
RQ Affinity​
I/O scheduler tunables
MEMORY
Memory state
Total
Free​
Low Memory Killer Profiles
Low
Medium
Custom (recommend)
Default (default)
Aggressive
Exterminate​
Low Memory Killer minfree tuning (OOM LMK)
Kernel SamePage Merging (KSM)
KSM stats
Pages to scan
Deferred timer​
Virtual Memory
Dirty Background Ratio
Dirty Ratio
Drop caches (Clear VFS cache after boot)
Laptop Mode
Swapiness​
ADVANCED
Entropy (max 4096)
Gentle Fair Sleepers control (disabled)
Arch Power control (enabled)
randomize_va_space control
AUDIO
(Sound Control by AndreiLux)
Jack media volume control
L/R channel volume
mono mixer​
Speaker volume control
Earpiece volume​
Main Equalizer
Advanced Stereo Equalizer
NETWORK
TCP congestion control
All available enabled.
Default = westwood+​
Screen mirror/allshare cast fix control (enabled)
Clean WIFI Lease
TCP/IP network security
3G DNS speed & security tweak
Google
OpenDNS
Comodo, Level3
Norton_DNS
Smart_Viper​
SECURITY
KNOX control
NO_ACTION (default)
Disabled
Enabled​
SELinux
Live status​
BATTERY
Battery info
Battery SCALING calibration (fuel gauge reset)
FS (File System)
Display FS Type
FS Controls
remount System r/w r/o
remount RootFS r/w r/o​
Scrolling cache control
Optimise Databases (SQLite3)
Wipe options
cache reboot
dalvik-cache reboot
cache & dalvik-cache reboot​
Clean up
clipboard cache
/data/tombstones
/data/anr logs
/data/dropbox logs
lost+found​
BACKUP & RESTORE
Name - Restore - Delete - Backup
profiles
kernel image​
LOGS
LogCat
dmesg
last_kmsg
REBOOT
Reboot device
Recovery Mode
Download Mode
Power Off
Clear Synapse Data & Reboot
Restart Synapse
INFO
Reduced logging
exFAT FS support
NTFS R/W support with app
CIFS support (not tested)
Frandom
mount partitions NOATIME and NODIRATIME by default
Entropy tweaks
CLEANCACHE & ZCACHE
Microsoft X-BOX gamepad controller in-built module
Much more - check source commits & Synapse
CREDITS
My family !!
@chainfaire - root & SuperSU / @Manh_IT - auto-root method
@AndreiLux - years of support for Exynos development and his various kernel features + Synapse app
@halaszk88 - patches I've adapted to many of my kernel
@dorimanx - BusyBox and various ramdisk tweaks/ideas
@apb_axel - I adapted and used many of the Synapse controls to suit my kernels
XDA
Samsung OSRC
and many others!
check github source credits
IF I'VE FORGOTTON ANYONE, PLEASE DON'T BE SHY AND SPEAK UP, THANKS
XDA:DevDB Information
SkyHigh Note 5 Exynos 7420 Kernel, Kernel for the Samsung Galaxy Note 5
Contributors
UpInTheAir
Source Code: https://github.com/UpInTheAir/SM-N915
Kernel Special Features: Synapse ++ | EXT4 | exFAT | NTFS | CIFS
Version Information
Status: Beta
Current Beta Version: 1.0
Beta Release Date: 2015-08-29
Created 2015-08-29
Last Updated 2015-08-29
Click to expand...
Click to collapse
https://drive.google.com/file/d/0B2YU1VP-Wj-pRE14YmJJdldSTHc/view?usp=docslist_api
N920TUVU1AOGE_N920TTMB1AOGE_TMB.
Ok, I flashed on my N920I for testing.
It works without any problems! No reboots during phonecalls at all! With all kernels I tried before, I had them, but not with this one!
Thanks for that great work!!!!
You can definitly use this for N920I also!
jpeps3 said:
https://drive.google.com/file/d/0B2YU1VP-Wj-pRE14YmJJdldSTHc/view?usp=docslist_api
N920TUVU1AOGE_N920TTMB1AOGE_TMB.
Click to expand...
Click to collapse
Please never quote the full OP ......
Anyway, thanks for posting your boot.img. Maybe you (or someone else wishes to "test" the kernel with your T model ? Just have full firmware ready if it boot loops or lose baseband etc.
If no good, I will then look at a separate kernel (time permitting)
bill340 said:
Ok, I flashed on my N920I for testing.
It works without any problems! No reboots during phonecalls at all! With all kernels I tried before, I had them, but not with this one!
Thanks for that great work!!!!
You can definitly use this for N920I also!
Click to expand...
Click to collapse
Please let me know of any kernel driver problems, WIFI, BT, 3G/4G etc (if any). Hopefully the kernel can be partly/fully universal
UpInTheAir said:
Please let me know of any kernel driver problems, WIFI, BT, 3G/4G etc (if any). Hopefully the kernel can be partly/fully universal
Click to expand...
Click to collapse
WIFI, BT, 2G, 3G, 4G, works fine!
Good job, I am compile a Kernel with many errors, I need to learn a lot from you :good: @UpInTheAir
Manh_IT said:
Good job, I need to learn a lot from you :good:
Click to expand...
Click to collapse
Hey, no problem. Thanks again for the root scripts, although Andrei's method worked too, just saved a little time with Synapse UCI support.
Have still got loads more to do, but I'm running out of time before heading away for the next month ..........
I only have so much "free" time away from family and work
edit: ran out of "thanks" today, 8 is the limit, how stupid !!
Hey. I tested in note 5 tmobile and baseband is unknown thank you for your work tho!.
Sunderwear said:
Hey. I tested in note 5 tmobile and baseband is unknown thank you for your work tho!.
Click to expand...
Click to collapse
OK, thanks for the report. I will have to study the source and determine if modem drivers are different or just require some ramdisk adjustments or T-Mobile ramdisk.
Give me a bit and I'll see what I can do
Will you make this for SM-N920P please???!!!
Sent from my SM-N920P using Tapatalk
ebs512 said:
Will you make this for SM-N920P please???!!!
Sent from my SM-N920P using Tapatalk
Click to expand...
Click to collapse
Please check to see if the SM-N920C kernel boots for you and drivers - baseband etc are working. If not, please send me your boot.img. Instructions I gave a few posts ago. Just make sure you have the full firmware package toy flash if it goes wrong.
Amazing
I tested it on my SM-N920I too. No Problems so far. No reboots during calls any more. Anything seems to work. Couldn't find any bugs yet.
Thank you so much for your perfect work.

[kernel] [lp] [most-roms] [all-qcom] idleKernel, a leanKernel fork (7.1.0)

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?

Categories

Resources