Related
Changelog
Notes on the new interactive governor below.
04/25/13
interactive governor updates from Tinykernel (Galaxy Nexus)
new sysfs path for fast charge - still compatible with incredicontrol
additional TCP congestion scheduler options with a default scheduler of cubic
10/04/12
New interactive governor backported from Incredikernel GB. Smartassv2 still default
Removed rarely used CPU governors
08/10/12
added mamarley's fastcharge USB patch to enable fastcharge without needing to unplug the charger
enabled KSM (Kernel Samepage Merging) - no change needed to make it active
03/11/12
Added Lazy governor - credit to Ezekeel
Enabled Smartass and Conservative governors
02/25/12
Disabled smartass,interactive,conservative governors
Disabled CFQ and BFQ governors as they were found not to be a efficient on flash devices
New I/O scheduler - SIO
New CPU governor - lagfree
smartassV2 is default governor again
Tweaked deadline scheduler for performance
Applied different zram patch, should be more stable, and removed memory tweaks in zram script (have to disable/enable to reset)
12/31/11
Patch kernel to 2.6.35.14
Tweak intellidemand and interactiveX governors for battery life
Ext4 patch for performance
Add ZRAM and swap support and add script to toggle ZRAM - see bottom of OP for more info
12/25/11
Increase min and max voltages by 25 for all non-OC frequencies
Added faux123′s intellidemand governor (thanks faux123!) - similar to ondemand but with screen off
Added imoseyon’s interactiveX governor (thanks imoseyon!) - interactive with screen off
12/01/11
Revert config setting that was causing freezing issues
Allow overvolting up to 1375 for more stability in overclocking
Revert default smartassv2 settings back to those of pre-11/6 kernel
Fix permissions on sysfs which were causing force closes in some apps
Use new ondemand,performance, and conservative governors
11/19/11
Tweak ondemand governor
Interactive governor fix
Update BFQ to v3-r1
Add and enable Tiny Preempt RCU (should perform even better than Tiny RCU)
11/10/11
Adjust smartassv2 scaling (see github for details)
Fix touchscreen issue that occurs on some devices
config: set tiny rcu (lower memory footprint)
add 1152000 and 1190400 CPU frequencies - only try if you're adventurous
various behind-the scenes fixes
11/06/11
Add interactive governor
Add smartass governor
Increase smartassv2 ideal wake frequency to 998Mhz - should help performance (if you don't like, underclock to 768 - this may change in a future release)
Add BFQ I/O Scheduler
HAVS+Sysfs interface (use Incredicontrol or boot scripts - see incredikernel.com and incredikernel thread for more information)
Fixed wifi not starting on certain ROMs such as McTwist - hopefully
11/02/11
Added unified panel driver from incredikernel and gingertiny-v1 for better responsiveness
Added msm_vibrator from gingertiny-v1 for smoother haptic feedback with smartass
Enabled TUN VPN support
10/31/11
Features:
Rebased on HTC official Incredible gingerbread .13 kernel
Audio Boost (Thanks Chad0989 for letting me use your source for this)
USB Fast Charging (Thanks Chad0989 for letting me use your source for this)
compressed kernel further for better support with boot manager
support for 128Mhz as well as overclock up to 1113
3/5 point multitouch support on supported devices
lowered wifi voltage
OC up to 1.113Ghz
Built in modules for cifs, smartassv2, conservative, ext4, ntfs (read only)
HTC's perflock removed
Ext4 driver used to mount ext2/3 filesystems (default in cyanogenmod and incredikernel)
Enabled swap support (need app like swapper from market to utilize)
SD Card and EMMC mount should work properly on all Sense ROMs now.
incorporated some tweaks from incredikernel
support for wifi-n (2.4ghz only - hardware limitation)
Audio Boost and USB fast charging are disabled by default in this version (I don't like audio boost). You can enable audio boost in the same way you enable USB fast charge.
10/23/11
Ext4 driver used to mount ext2/3 filesystems (default in cyanogenmod and incredikernel)
Updated to new OJ driver from Cyanogenmod kernel
[*]Sysfs interface for SVS (can now use incredicontrol) Not working properly
10/15/11
Fixed G-sensor issue (calibration, 3d-home screen, auto-rotate should work now)
10/08/11
Adjusted smartassV2 parameters for better performance
10/05/11
Set smatassV2 as default governor
incorporated some tweaks from incredikernel
added support for wifi-n (2.4ghz only - hardware limitation)
09/29/11
Added smartassV2 (erasmux)
09/20/11
Tweaked smartass governor to resolve reboot issues reported with using smartass (please let me know - it seems better for me so far)
Enabled swap support (need app like swapper from market to utilize)
Enabled compcache support (if ROM has uitility installed I can work on a script, currently I can't get the utility to work)
09/01/11
set max speed to 998 as phone would overclock at boot regardless of setcpu/overclocking app's setting which caused bootloops for phones that couldn't handle overclocking (Thanks Chad for the tip!)
08/31/11
Initial Release
Audio Boost (Thanks Chad0989 for letting me use your source for this)
USB Fast Charging (Thanks Chad0989 for letting me use your source for this)
compressed kernel further for better support with boot manager
support for 128Mhz as well as overclock up to 1113
3/5 point multitouch support on supported devices
lowered wifi voltage
OC up to 1.113Ghz
Built in modules for cifs, smartass, tun, conservative, powersave, ext4
HTC's perflock removed
Bootup frequency increased to 998
Known issues:
Beats will not work. This is not a specific issue with this kernel but rather that the support is not built into the stock kernel. It worked in the port but I'm not sure what needs to be changed.
Incredicontrol force closes when trying to open the HAVS tab. This only seems to happen at boot and clears up. Since it clears up on it's own, I don't think it's a kernel issue though but I'm leaving it on here so people are aware.
*Disclaimer*
Please do not report bugs if you overclock or undervolt/overvolt differently than what is set by default. It adds too many variables. Set CPU max back to 998 and report a bug then if it doesn't go away after that.
I am not supporting the older .10 kernels at this time though if you decide to still use it I may need your assistance to get Beats audio working.
*Note*
1. Just because it's been asked before about what ROMs this kernel supports, this kernel does not need to be built to support any particular ROM but is confirmed to be working fine on many of the most popular Gingerbread Sense ROM by multiple users and several leading devs. If it does not work on your ROM let the dev know first in case it's a known issue.
2. Smartass (v1 and v2) has a built in min speed of 245 and will go to the set min speed only when the screen is off. Due to the nature of the governor, don't use a screen off profile with Smartass. It has been reported to cause issues. If you want a screen off profile use a different governor.
OC voltages are set to the same as 998 Mhz. Sense is a tricky animal when it comes to voltage adjustments. I had about 10x the issues with undervolting on sense froyo as on aosp, but maybe it's because that kernel was undervolted more.
*Important*
If you get random reboots or freezes on the new kernels (10/31 or 11/2), I will need the logs of that:
If it's a reboot grab the file /proc/last_kmsg using adb or root explorer. For adb setup please do a search on xda or the internet.
It would be adb pull /proc/last_kmsg for the adb command.
For root explorer just copy to the sdcard. It's a text file so you can post it online and post the link here or attach to your post when you report the issue.
If it is a freeze try to use logcat and output to a file when you're trying to reproduce it. Google logcat usage if needed. Also grab the last_kmsg after rebooting.
Release kernel found at
incredikernel.com
Update: 11/15/12 - I've added a mirror for my files on goo.
http://goo.im/devs/tiny4579/inc/kernels
Source Code(Dev Only, not flashable)
Github.com Kernel Source
All releases are built from the master branch.
The config for the kernel is in arch/arm/configs/incrediblec_defconfig.
I use the GCC 4.4.3 toolchain for this kernel due to GCC 4.6 causing build issues.
Below is a link to the original tiny-gingersense source which is a hybrid kernel running off code released for the Evo Sense kernel as well as some code from the Froyo Incredible sense kernel. This one uses the master branch as well and the same config filename and toolchain as v2.
Original tiny-gingersense kernel source
Frequently Asked Questions:
Some key differences between smartass and smartassv2 so users can decide which they prefer and learn a bit more about the differences:
Smartass
1. Screen off profile built in maxed at 384mhz.
2. Wakeup frequency is 998mhz.
3. Min screen on is 245mhz.
4. Improved by Chad to run better on our devices.
5. Purely load based, no ideal value.
Smartassv2
1. This is the same exact governor in Erasmux's Nexus One kernel (github.com/erasmux/n1-kernel)
2. Ideal wake frequency is 768 (also default that can be changed).
3. Screen on min is actually 128mhz).
4. No screen off profile.
5. Ideal sleep frequency 245mhz.
6. Improved upon from erasmux's version, not Chad's.
Basically the smartassv2 ideal wake frequency allows the phone to favor a certain speed to attempt to save battery life. It can still go above ideal wake and below ideal sleep so there's no caps on max and min while awake or sleep.
Some tips/info on various governors:
Smartass/smartassv2/interactive:
Use 128 min so the governor can scale as it needs to. Max speed I'd recommend at least 768Mhz.
Ondemand:
Try 128 min and if it lags use 245 min. Max speed I'd recommend at least 768Mhz.
Performance:
Only recommended for benchmarks but speed will always run at max.
InteractiveX:
Same as interactive except it has an auto screen off set to the min. Ideal with 245 min in setcpu but try 128 for battery life but it you have wake lag then set to 245.
Intellidemand:
Based on ondemand with a built in screen off. Any speed settings should be fine.
Interactive:
Some new features with this one. Starting with 10/4/12 release I am using the interactive kernel from Google which features a new kernel option called input_boost.
It is off by default but can be enabled by writing a 1 to /sys/devices/system/cpu/cpufreq/interactive/input_boost. Also there is another parameter for interactive called hispeed_freq in the same location. The hispeed_freq is where the governor jumps to first. Hispeed_freq by default is 614400 to help save battery. In the older interactive governor there was a maxspeed freq which meant the governor was a bit jumpier to the max speed. This should be a good blend of performance and battery.
ZRAM, what is it and how to I add it? (starting officially with 12/31/11)
If you are familiar with swap space in linux or virtual memory in Windows it is a similar concept. Except instead of using the hard drive as swap space it compresses swap space in RAM for faster access times than conventional swap. This will also wear out our storage memory less than typical swapping.
Enable ZRAM is simple thanks to a script built by imoseyon which is provided in the kernel zip file. To enable, use adb shell or download a terminal app and run zram enable. This will persist across reboots (if init.d is setup in your ROM) so if you don't want it anymore run zram disable and it will remove the bootscript and deactivate it.
You need to have root privileges to enable/disable zram. Run the su command in terminal emulator to request root.
Way to go! But I bet this was a headache to put together.
Let me know if you need a beta tester and the slots haven't filled up.
godsmacked4653 said:
Way to go! But I bet this was a headache to put together.
Let me know if you need a beta tester and the slots haven't filled up.
Click to expand...
Click to collapse
Check your PM.
Is this the beginning of a whole slew of custom kernels for the inc ?
How is the battery life on this?
i can test if needed
Exciting stuff...
any idea or have you looked at how difficult it would be to enable 5 pt multi touch in the future? or GPU+?
Hit me up... I'd love to test.
Love to test. Would begging help. Lol
Sent from my ADR6300 using Tapatalk
Ok, got the 5 testers I want. Actually I found 6 so I'm good for now.
tiny4579 said:
Hi all!
Good news! I have successfully initially ported the HTC Incredible kernel to gingersense using the Evo gingerbread source as a base and pulling from the Inc's froyo source code. I have spent significant time over the past few weekends trying to get this work and I have something usable finally. (I never ported a kernel before but am satisfied with what I have here).
Thanks Chad for inspiring me to do this port and giving me pointers along the way!
What works:
1. 3g+wifi
2. all modules from modules thread are built in+cifs added as well (perflock_disable is not needed on this kernel)
3. camera - initially had trouble, it wouldn't boot with camera enabled. 720p video SHOULD work as well
4. artifacting issues should be resolved
5. overclock works (1.13Ghz)
I would like to have some testers prior to releasing it as open beta. I want 4 additional testers, have 1 already. The first 4 to volunteer to test (via PM or this thread) will get a PM with a link to test the kernel. It will flash like any other kernel. I would like to post tomorrow night so please give feedback.
Known issues:
May be overheating issues. Though I cannot confirm issue. Battery temp is fine for me.
It is a port. Not everything will necessarily work 100%.
Haptic feedback and vibration are currently broken. Will look into it.
Github.com Kernel Source
Click to expand...
Click to collapse
try changing the inc-kepad.kl to incrediblec-keypad.kl in the /usr folder of the rom
Damn...
Sent from my ADR6300 using xda premium
And amazing work man!!
runs nice so far...
i do miss haptic
JoelZ9614 said:
try changing the inc-kepad.kl to incrediblec-keypad.kl in the /usr folder of the rom
Click to expand...
Click to collapse
Tried it but no go. Thanks for trying to assist me though.
Checked up on GPU+. It is not needed as the changes needed to implement it have already been done in the stock HTC kernel.
5-point multitouch will be tricky as my panel has never worked with more than 2. I remember Chad trying to get it to work for everyone but it was tricky even for him. I think certain phones will just not work with it. I can see if I can at least enable it and have others test. If you're going to test, make sure that it works currently on say a Froyo Sense ROM or your AOSP ROM of choice first.
Going to bed so no more requests tonight.
Ran through some quick tests and everything looks to be working, and working well. I'm running godsmacked's senseless 2.0 with lp+. Gps locks on quick. Camera, gallery, etc all good. Overclocking stable so far, and definitely makes a notable difference. I will do more in depth testing tomorrow. Thanks for the breakthrough!
baboonsRus said:
Ran through some quick tests and everything looks to be working, and working well. I'm running godsmacked's senseless 2.0 with lp+. Gps locks on quick. Camera, gallery, etc all good. Overclocking stable so far, and definitely makes a notable difference. I will do more in depth testing tomorrow. Thanks for the breakthrough!
Click to expand...
Click to collapse
Is your haptic feedback working with the kernel?
love to be a tester too.
Great job Tiny!! This had to be very difficult to port. Your work is much appreciated.
Tiny, I PMd you about the vibrator, should be an easy fix.
And I would also like to commend tiny for doing the work on this. It has lifted a bit of a burden off of my shoulders since I simply didn't have the time to put work into it myself. He's quite adept and problem solving and was able to continue when he ran into a problem with just a little bit of guidance. I trust that he will put out a good kernel.
This kernel supports both new and old bootloader and apparently it's also the favorite kernel of the MIUI team (****ing thieves...) !
This is not a "phonsole" kernel, it's not made for draining your battery in a nanosecond because "it's cool to play tegra3 designed games on the p990", so there is overclock, but done "The Right Way™".
Our phone is quite powerful on its own, but LG and Nvidia made a really crappy job on optimizing it. I'm just working to make it a bit better and to provide a reliable, stable and battery friendly kernel to all those people who actually use a phone... as a phone...
There are experimental/unstable versions that i release every now and then for public testing. Official kernels are released when the beta testing phase is done and 100% of the feedback is positive. Don't ask for ETA or you'll be fish slapped... badly !. This of course is not valid in case a nasty bug slips in the release, in which case i'll do my best to fix it within a few hours.
Features
* Compiled in release mode (all debug stripped)
* Battery friendly, performance aware
* 3G modem runtime/suspend idle mode support
* Enhanced wifi power management
* Runtime wifi power management control via sysfs
* Bluetooth deep sleep without disconnections
* OC up to 1.2 GHz on stable releases and up to 1.5 GHz on experimentals
* Dynamic FSync by Faux123, backported from Linux 3.4
* 32M ramhack on the new bootloader, 24M on the old one (for now)
* ROW scheduler by Qualcomm, backported from Linux 3.4
* BFQv5 scheduler, backported from Linux 3.4
* Dynamic Interactive governor, backported from Linux 3.2
* Interactive governor aligned with Google's upstream sources (Linux 3.4)
* Simplified cpu hotplug, the second core will turn off in deep sleep mode
* Single/Dual core mode
* Support for notification lights on compatible roms
* Proportional Rate Reduction for TCP to increase network reliability
* Westwood TCP congestion algorithm enabled by default
* Support for NTFS (read only) and HFS+ filesystems
* Support for NFS 3/4
* Support for custom leds brightness from userspace
* Support for USB fast charge [ Don't keep it active when connected to a pc or it may damage your usb ports. It's meant for fast charging when using car/plane adapters for example ]
* And loads more...
* Comes bundled with Kowalski Manager by wfd
Q & A
Q: Battery !!! Why it's so baaaad ! My phone doesn't sleep !!!
A: Well, don't get it badly, it's not really my problem, is it ? 99.999% is an app you have installed that's preventing deep sleep...
Q: App X crashes ! OMG I lost my sdcard ! Noooo all my data are gone !!!
A: Read again on top, not my fault, sorry. I try my best to give out a stable kernel, but "**** happens" and i can't control it...
Q: I get tons of bsods, my phone doesn't wake up from sleep, it freezes and omg... it just exploded !!!
A: No dmesg / logcat, no party. And please don't post messages like those in the thread if you're not ready to attach a log to the post.
Q: When will you enable gpu overclock, road runner speed mode or wile e. coyote immortality ?
A: Never... on a second thought... maybe... who knows ?
Q: When will you release the new version ? It's a week we're using the old one !!
A: Is it stable ? Then please allow me to fish slap you with a huge trout !
Downloads
All downloads for Kowalski Kernel are in this folder on DevHost.
Updates will be pushed to those folders based on the kernel version, and a change log will be filled in the next post accordingly. Kernel releases will be announced in the thread.
The downloads labeled as "kowalski-*-XXX-YYYbl" are obviously the kernels for [YYY=old || YYY=new] bootloader and XXX represents the version number.
* In Kowalski Manager on kernel 2.6.39.4 you can change the power management settings of the wireless card:
- PSP Power Saving Mode ---> your wifi card will use Max PSP when asleep. The kernel default is to sleep in Fast PSP mode.
- Awake Power Management ---> your wifi card will use Fast PSP when awake if enabled, otherwise will use CAM mode.
- Hotspot Power Management ---> when enabling hotspot mode, your wifi card will use Fast PSP if enabled, otherwise the default is to use CAM mode.CAM (Constantly Awake Mode)
Keeps the client adapter powered up continuously so there is little lag in message response time.
Consumes the most power but offers the highest throughput. Is recommended for desktop computers and devices that use AC power.
Fast PSP (Power Save Mode)
Switches between PSP mode and CAM mode, depending on network traffic. This mode switches to CAM when retrieving a large number of packets and switches back to PSP after the packets have been retrieved.
Is recommended when power consumption is a concern but you need greater throughput than that allowed by Max PSP.
Max PSP (Max Power Savings)
Causes the access point to buffer incoming messages for the client adapter, which wakes up periodically and polls the access point to see if any buffered messages are waiting for it. The adapter can request each message and then go back to sleep.
Conserves the most power but offers the lowest throughput. Is recommended for devices for which power consumption is the ultimate concern (such as small battery-powered devices).Source will be pushed to my github about 2 or 3 days after a release, to make sure that no major bugs are introduced in the public repository.
This kernel can be compiled with any gcc 4.6.X that supports graphite loop optimizations, so if you want to compile it by yourself you'll have either to build your own toolchain (for example using crosstool-ng), or use one of the many linux prebuilt ones (for example Linaro or CodeSourcery). Make sure they're 4.6.X. Earlier versions may complain a lot and generate and unstable kernel. Newer versions (aka 4.7+ won't produce a bootable kernel at all unless source modifications are done).
Please don't rip-off my work. Please don't kang this kernel. Please don't c&p from my github without proper credit. I'm a nice guy, but i will report you.
Thanks
* wkpark for unlocking the ics bootloader and his genius ideas for implementing ramhack
* linus, well, for the linux kernel
* massimo69, stonebear, tetsuo55, wfd and carloit for taking the risks of testing possibly harmful pre-releases
* qualcomm, because codeaurora is awesome !
* benee, for his perfect any-kernel installer !
* wfd, for his fantastic Kowalski Manager App !
* hjunii for forward porting and cleaning up all the LG crap to kernel 3.1.10 !
On a side note... i'm not really responsible if you decide to test it and your phone melts... right ?
-
Change Log and How-Tos
Change Log
100p5 - 2013/03/03
* Fix derp in voltage table
100p4 - 2013/03/02
* OC to 1.2GHz max
* Re-introduced the ability to modify the voltage table
* Global kmsg cleanup. Removed tons of useless/annoying debug messages
* OC code refactor and fixes. Thanks to Tonyp for finding the AP20 tech docs
* Fixed max suspend frequency race condition
* Disabled async compaction in the new lmk. Really not playing nice with the 3.4 code
* tspdrv (vibrator) code cleanup and fixes. Hopefully no more "dildo bug"
* Lots of 3G modem related fixes and introduction of the idle mode during runtime and suspend
100p3 - 2013/02/19
* Fixed Dynamic Fsync code and added reboot/shutdown forced flushing of buffers
* Added Max CPU Frequency when screen is off
* Fixed wifi suspend issues
100p2 - 2013/02/16
* Disabled OC for releases
* 1st attempt to fix wifi hang upon resume
* Probable fix for excessive wifi drain when ap is out of range
* Support for Faux123 Dynamic Fsync
100p1 - 2013/02/13
* Fixed USB Mass Storage freezes
* Fixed audio input not working on some phones
100 - 2013/02/12
* Added OC possibility (thanks to wkpark for the initial patch and to civato for pushing it to github)
* Tweaked the voltage values and enabled a bit of 2d OC
* Fixed the slow charge bug on the old bootloader
* Aligned USB Fast Charge code between old and new bootloaders
* Enabled EMC scaling aligned with the cpu speed
* Enabled RTC (Real Time Clock) support for the battery monitor
* Added fsync control from sysfs
* Added async memory compaction to the lmk
* Locked min cpu speed when using camera (snappy !)
* Tweaked a bit the interactive governor presets
* CPUs unaligned access
* Various patches to the lmk
* Various fixes to the voltage regulator
* Tons of patches to the android binder
* Tons of patches to the linux memory management
* Tons of patches to ext4
* Tons of patches to the mmc host
011p4 - 2013/02/03 - Bugfixes and some goodies
* Backported OnDemand governor from kernel 3.2
* Added Boost Pulse support in the kernel for Interactive and OnDemand governors
* Added tegra.power.so blob to the installer
* Optimized CFQ and BFQ schedulers
* Fixed shutdown crash
* Fixed USB fast charge on the old bootloader
* Updated Kowalski Manager to the latest version
011p3 - 2013/01/28 - Bugfixes Release
* Fixed wifi parameters persistency
* Fixed USB fast charge on the old bootloader
* Reverted "disable aio" commit that was causing lousy sdcard r/w speeds and some lag
* Updated Kowalski Manager to the latest version (with icon !)
* Tweaked the LMK values a bit
011 - 2013/01/26
*Added USB Fast Charge mode
*Net: Various ipv4 related fixes from kernel 3.4
*Wifi: Lowered default dBm of the wifi card to 19dBm (<3 my health)
*Wifi: Raised scan time for wifi from 3s to 8s (<3 my battery)
*Wifi: fixed compatibility between 10, 10.1 and ICS
*Wifi: fixed battery drain
*Wifi: removed background scan (let Combo Scan do the job)
*Row: Multiple patches from 3.4
*Row: Implemented urgent requests (speedy gonzales style)
*Disabled LG FOTA crap in muic (and hopefully autofix some bugs)
*Disabled android compaction process (let's have the new awesome lmk do the job)
*Modified kernel entropy generation (the new black apparently)
*input: monotonic input events (fasteeeer, i said faaaaaaaster)
*increased slightly timers ticks/second (oh, this is going to be felt a lot)
*gpio timers from kernel 3.8
*android logger from kernel 3.8
*prepared makefiles for gcc 4.7.X (the next step)
010 - 2013/01/19
*Added the possibility to change leds brightness from userspace (sysfs)
*Simplified kernel flags, removed useless bloat, smaller kernel
*Backported the lowmemorykiller from kernel 3.4
*Unified wifi driver for compatibility with cm10, cm10.1 and ics
*Disabled the cpu boost when connecting usb (badly done by nvidia)
*Compiled Zram as a module, installed a init.d script to enable it
*Moved from lzo to google's snappy as compression for zram
*Fixed a couple of regressions from nvidia kernel 2.6.32 linked to bsods when suspending/resuming
*Switched to Interactive as default governor. Seems snappier for now with the latest version
*Enabled low level kernel tegra irq timers
*Added all the TCP Congestion Algorithms available in the kernel
*Backported from kernel 3.4 the latest patches for
- ROW I/O Scheduler
- Interactive Governor
*Backported from kernel 3.4 the BFQv5 I/O Scheduler
*Tons of patches from upstream related to
TCP Networking
ARM suspend/resume and smp routines
USB memory corruption and possible lockups
Kernel Timers
009p1 - 2013/01/13
* Disabled tegra cpu frequency locking
* Added a small cpu boost when usb cable is inserted [ may prevent bsods ]
* Added one more wifi interface to sysfs [ wake_pm (bool) to set PM_FAST/PM_OFF when screen on ]
* Re-enabled the conservative governor
* Updated toolchain to a more optimized one
* Compiled with "graphite" flags for a bit more kick
* Fixed the LMK so it doesn't kill kernel threads
007 - 2013/01/13
* Full changelog that lead to this release in my CM10 thread at the second post
How-Tos
Change the default TCP Congestion Algorithm
To see what algorithms are available you can, in a terminal/adb console, type: "sysctl net.ipv4.tcp_available_congestion_control"
To change the default congestion algorithm, type: "sysctl -w net.ipv4.tcp_congestion_control=one_of_the_names_that_came_out_before"
Change the Wifi Power Management modes
In a terminal/adb shell navigate to /sys/kernel/wifi_pm.
You can change the high power management setting by typing: "echo 1 > max_pm" to enable it, or "echo 0 > max_pm" to disable it (cam / psp modes).
This setting will enable/disable the PSP power saving mode when the phone is asleep. Be careful, not all the routers are happy with it.
You can change the awake (screen on) power management setting by typing: "echo 1 > wake_pm" to enable it, or "echo 0 > wake_pm" to disable it (off / cam modes)
Change the leds brightness
In a terminal/adb shell navigate to /sys/class/leds/star_led.
You can change the high value setting by typing: "echo XXX > max_brightness" to modify it, where XXX can be a value between 0 (off) and 255 (max).
Change WiFi TxPower
Interestingly enough, Broadcom/LG decided that they want us all dead in a very short time so they set the default txpower of the wifi chip to 32dBm (that's a whopping 1.6 Watts in power). Considering that the US FCC sets a top limit of 30dbM/1W for antennae and that the EU sets a max power of 20dBm/100mW for consumer products, i'd say that Broadcom and LG are quite some nice companies... also wonder how they went past controls with this one...
Anyway, i packed a flashable zip that will install the "iwconfig" and "iwlist" binaries to /system/xbin in your phone. After flashing this one you can, from a terminal, modify the txpower value in real-time depending on your needs (if at home 5 mts from the router, or in a park 100 mts from the access point). For now a binary, soon an apk to handle this, so bear with me and wait
You can download the package from here
To check the current txpower value
Code:
su
iwconfig wlan0
To set the new txpower value
Code:
su
iwconfig wlan0 txpower XX (where XX is the value in dBm)
On this link you can find a W -> dBm conversion table that might come in handy
Side notes: 1) To use iwconfig your wifi must be on and 2) When you turn it off/on or reboot, the setting will be reset to 32dBm for now.
Alsa Mixer
There ya go, for all of you a little deaf that love some real crackling from your phone's speakers
Packaged in a nice cwm flashable zip (alsa_mixer.zip) that you can find here is a collection of binaries that will be installed in /system/xbin and that will allow you to alter a bit the volumes of your phone. Of course you'll have to slap the values that you like in an init.d script once you find them, or they won't persist on reboot.
For example, to boost a bit the speaker volume, you can type: alsa_amixer sset "Speaker" "60" (max is 63) and to see the current setting you type: alsa_amixer sget "Speaker"
I suggest that you look into the alsa_amixer help and experiment a bit with the values. You can't break anything, and a reboot will reset all the values to default
-
Plans and Wishlist
What I'm working on
* Double tap to wake
Wishlist
* OTG Support
* HDMI
What will make it into the next kernel release
* Surprise
Kowalski manager
This app is only for use with [email protected] kernel, tested on CM10, CM10.1, ICS
Features
* PSP power saving mode enable/disable
* Hotspot power management enable/disable
* High power management enable/disable
* TX Power level regulation
* Softbuttons leds brighness regulation
* Internal/external sdcard read ahead values change
* USB fast charge enable/disable
* Restore all setting after boot
Bugs
Please, tell me
Change Log
020 - 2013/06/10
*Added 2nd core auto hot plug switch
*Fixed couple of bugs
*Updated Dutch translation
019 - 2013/06/02
*Show light sensor value on brightness tab
018 - 2013/05/28
*Added switch to sound tab for on/off restore sound settings after call
*Added radio buttons to switch MultiCore Sched PM modes
*Added possibility to set brightness settings as custom defaults and reset to them
*Added Backlight settings tab
017 - 2013/03/19
*Added single core mode switch
016 - 2013/03/06
*Added dynamic fsync switch
*Added call hangup receiver to set alsa speaker volume to manager settings
015 - 2013/02/18
*Added headphone volume setting via alsa_amixer
*Added alert on fast charge switch. Thanks Tony
014 - 2013/02/15
*Added speaker volume setting via alsa_amixer
*Added Portuguese translation, thanks to chevellemendes!
012 - 2013/02/12
*App redesigned to support pager tabs
011p8 - 2013/02/08
*Added Dutch translation, thanks to majoortje!
*Updated Spanish translation, thanks to sobaquete!
011p6 - 2013/02/04
*Added Czech translation, thanks to Keltek!
*Added Finnish translation, thanks to _kankea!
011p5 - 2013/02/03
*Added Danish translation, thanks to Custom40!
*Added Franch, Italian, Serbian translations, thanks to Massimo69!
*Fixed rotation issue
*Removed iwconfig dependency
*Added Spanish translation, thanks to Massimo69!
*Added Polish translation, thanks to Rayman96!
011 - 2013/01/28
Compatible with Kowalski Kernel only since 011p3!!!
*Added Croatian translation, thanks massimo69!
*Added wake_pm enable/disable
*Changed paths for wifi power management setup
*Fixed a lot of potential freezes
*Added blue icon from 60nine!
*Added German translation, thanks TonyP!
*Now works on 4.0.4
Download
Application already included in Kowalski kernel since 011
Thanks
* pengus77 for his amazing kernel and second life for our device
* aremcee, without him we would not have CM10.x at all
* all wonderfull devs, who makes us happy with our p990
Big thanks to our translators
German - TonyP
Croatian, Spanish, Franch, Italian, Serbian - Massimo69
Danish - Custom40
Polish - Rayman96
Czech - Keltek
Finnish - _kankea
Portuguese - chevellemendes
Russian - me
If you have some corrections, please pm authors. If you want to add your native language in app, please pm me.
Cool! You have done some great work already and it's fantastic that there is more to come.
thanks for your hard work!
1 question: what about cm10.1 compatibility?
Luk_Optimus said:
thanks for your hard work!
1 question: what about cm10.1 compatibility?
Click to expand...
Click to collapse
Nope.
Luk_Optimus said:
thanks for your hard work!
1 question: what about cm10.1 compatibility?
Click to expand...
Click to collapse
Read the first line in the first post please... it's even in bold...
stonebear said:
Nope.
Click to expand...
Click to collapse
so not compatible to the official cm releases. that's sad somehow...
Luk_Optimus said:
so not compatible to the official cm releases. thats sad somehow...
Click to expand...
Click to collapse
"Official" cm releases are so filled with bugs that we should call an exterminator lol
First let's try to get a 10 stable, then we move to 10.1... that's the plan and i won't deviate that soon from it.
pengus77 said:
"Official" cm releases are so filled with bugs that we should call an exterminator lol
First let's try to get a 10 stable, then we move to 10.1... that's the plan and i won't deviate that soon from it.
Click to expand...
Click to collapse
sounds good! sadly, there is (as far as i know) no cm10 rom for the old bl...
Cool stuff! :highfive:
Luk_Optimus said:
sounds good! sadly, there is (as far as i know) no cm10 rom for the old bl...
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=2097807
http://forum.xda-developers.com/showthread.php?t=2078474
http://forum.xda-developers.com/showthread.php?t=2059372
http://forum.xda-developers.com/showthread.php?t=2030775
just to cite a few... and the downloads on get.cm are still there for cm10 if you want it...
Hi!, thanks for this release.
I have one question that I cannot answer from the OP... why is there a separate file for the PSP module? Should I flash it after the kernel or it's not mandatory? Is it valid for both BL versions?
Thanks
Awesome, your kernel runs excellent on my O2X(now at 13/01). No SODs whatsoever and very stable since first releases.
If people have SOD problems, it is not always kernel related. I have swapped my device for a new one after lots of black screen issues and with the new one I have almost 0 issues even with the same ROM+kernel.
It seems our device has many different (good and horrible)hardware revisions, I suggest to swap your device at the retailer if it is possible within your warranty.
sobaquete said:
Hi!, thanks for this release.
I have one question that I cannot answer from the OP... why is there a separate file for the PSP module? Should I flash it after the kernel or it's not mandatory? Is it valid for both BL versions?
Thanks
Click to expand...
Click to collapse
Updated op. It's valid for both bootloaders and it's not mandatory. The psp module will enable the PM_MAX flag when the phone is asleep, so make sure your router/ap supports PSP mode (if it has a broadcom chip then it does for sure) or your phone will lose packets when in deep sleep.
The gain in battery life though is gigantic... you decide
The Kernel work in P.A.C.Man fine too... Both Bootloader
About led lights I noticed that if I put "always on" with a very dim light this setting doesn't apply system-wide. If I receive a mail with gmail all fine but if I get a text via a third-party app like whatsapp or viber the light goes full brightness (but it respects the "always on" setting). I had to set a custom brightness for every application manually.
-sandro- said:
About led lights I noticed that if I put "always on" with a very dim light this setting doesn't apply system-wide. If I receive a mail with gmail all fine but if I get a text via a third-party app like whatsapp or viber the light goes full brightness (but it respects the "always on" setting). I had to set a custom brightness for every application manually.
Click to expand...
Click to collapse
This is rom related, i'll look into it on my cm10 thread. Please here post only things related exclusively to the kernel
I have used android tuner in the past to monitor my system as well as tweak it. I noticed that there are several settings that are not grayed out and I am i if anybody has tried changing any of these settings. There is an option to set the governor at boot as well as adjusting frequencies. There is another setting called enable thermal control. Had anybody adjusted or enabled any of these settings? Also will checking Force gpu rendering in the developer options improve performance?
/// JellyBeanX-kernel ///
DISCLAIMER
Me, XDA-Developers.com and anyone else doesn't take any repsonsibilty for damages on your device!
Rooting your device will void your warranty!
Don't play with settings you aren't familiar with, you could burn your device!!
Click to expand...
Click to collapse
READ THIS: READ BEFORE YOU ASK and HELP TO KEEP THIS THREAD MORE CLEAN! BUT ALSO BETTER ASK ONCE MORE BEFORE YOU MESS UP YOUR PHONE! If you find something missing in this OP/FAQ, please PM me and I will add it. Thank you!
This is a custom kernel mostly based on Motorola's 3.0.8 Hybrid Kernel which was initiated first by the STS-Dev-Team (Hashcode, Dhacker).
I created this kernel for my main goal: BATTERY LIFE! Like many other custom kernels this one also supports several performance related features like OVERCLOCKING, UNDERVOLTUNG, GPU CONTROL, CPU OPTIONS, RAM TWEAKS, etc etc... But my main goal was not to bring up a kernel which is fast as hell - I want to bring up a kernel that is fast + a long lasting battery! Many custom kernels are also very fast but they don't save battery. JBX-Kernel is supposed to push your device to great speed while being on low power settings. I hope you enjoy it!
If you want to support me and my work just leave me a beer.
You can find the FAQ at the bottom of this post!
LATEST CHANGES
FULL HD Video Recording is working now!!! See Downloads section below!
--> DETAILED CHANGELOG JBX-kernel Hybrid 4.4 <--
Kernel Guide by Placca 1.8!!
Check the FAQ section at the bottom of this post to download it! It will make many things easier for you and help you to understand the kernel and its features!
FEATURES
JBX-Kernel Hybrid
Battery Friend toggle (a battery friendly mode)
Intelli-Plug (Kernel side replacement for msm MPDecisions) by Faux123 + patches by me (no hotplugging when screen is ON)
Dynamic Hotplug: Second core will be turned off ONLY while screen is off - independent from selected governor. (Not needed when using Intelli-Plug)
Optimized OPP Table for smooth CPU scaling
Frequencies: 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300
Modifed Smartreflex driver (Custom Sensor for detecting n-Value).
Smartreflex Tuning Interface: Set min/max calibrated voltage
Overclocking using Live OC (mine runs stable at a maximum frequency of 1,498ghz!)
hwmod, uart, IRQs - cleanups from pre-kexec config to safe power
CPU: lower voltages for CORE and IVA. Give CORE the abbility to scale up to higher voltage if needed
Added IVA_NITROSB
Dynamic fsync control: FSYNC interval is dynamic depending on screen state (SCREEN OFF: synchronous, SCREEN ON: asynchronous)
HTC's Asynchronous Fsync port - read explanation below*
Dynamic page-writeback: Page writeback interval is dynamic depending on screen state.
Frandom v2
JRCU / Tiny RCU (currently JRCU in use)
Raised voltage limits for mpu a bit
Raised the temperature limits from 64c* to 74c* (degrees)
optimized CRC32 algorithm (better code generation)
RW Readahead dynamically depending on storage device (automatic detection of the best value)
zRAM support
GPU has 4 scaling steps and OC to 384mhz (Base freq: 102 mhz --> 154 mhz, 307 mhz, 384 mhz)
GPU C4 states / GPU Control (Governors, Frequencies)
Multicore Power Saving Mode Control
ARCH Dependant Power feature
Gamma Control
Front Buffer Delay Control (draw in x msecs on early suspend)
Screen/Display: Modified OMAPDSS for sharpness and lightning colors
OMAPDSS: Added variable clock rate and OPP - allows the screen to scale down power and voltage
lowmemkiller: Heavy modified for R/W Speed and efficient performance
ZCACHE, ZSMALLOC, XVMALLOC backported from 3.4, 3.7 and 3.10 (ZCACHE currently not in use)
Custom Voltage Support
IO-Schedulers: SIOPlus, Fifo, Row, VR, Noop, Deadline, CFQ, BFQ
ROW Scheduler is heavily tweaked to be the fastest scheduler ever!
CPU: More Governors
Deep Idle
ARM Topology
Many improvements in overall OMAP PM
SELinux permissive
GREAT performance!
battery life!
Support for Trickster Mod Kernel Control App (Download from Gplay)
*]Too much stuff to list here. See "Sources" below and check my Github
* HTC's Asynchronous Fsync and Dynamic Fsync:
Asynchronous fsync (called "afsync" or "async fsync") from HTC is ported into this kernel. By default it's enabled and dynamic fsync is disabled (and as well it isn't needed anymore). But just to test a little bit around to see which one of both features is the better one - for battery & performance. But currently Tricktser Mod doesn't support a toggle for afsync, so I had to find another way to use Trckster. Finally I did it like this:
The dynamic fsync toggle in Trickster Mod is now serving both functions - the dynamic fsync AND the asynchronous fsync! How? By default Dynamic Fsync is disabled, and Afsync is enabled. If you now enable Dynamic fsync using the toggle, Afsync will be automatically disabled, so both functions are not conflicting each other - and this way we have a working toggle for both of them.
CAUTION
This is a work in progress! Some of the current features are still not in final stat. If you are facing issues report back here and DON'T spam the threads of the rom you're using!
Be careful with some settings such like Voltage and Overclocking!!! If you aren't experienced with these things, dont play with 'em!
Click to expand...
Click to collapse
REQUIREMENTS
NOTE: This will NOT work on Stock(-based) Roms!!
Rooted device
Must use a Kexec Rom (CM, AOKP, AOSP)
Recovery (BMM, SS)
REMOVE any kernel modules you used before
DEACTIVATE ANY CPU tweaks, onboot settings etc otherwise your phone may not boot!
CAUTION: The kernel needs a clean setup related to CPU tweaks / Settings, etc...Keep your device as clean as possible regarding to Tweaks, CPU special settings, etc. The Kernel brings its own CPU settings and after you can boot it succesfully, you can set it like you want!
This kernel may not work on all roms! Check and report.
TO DO LIST
- Fix bugs
INSTRUCTIONS
NOTE: CLICK here for a detailled Installation Guide (about the Aroma Installer, the features to select and more)
Download zip file from below
Reboot into recovery
Flash the kernel (BMM users: DON'T use the "Flash Kernel" Option! This is a usual zip file!)
Reboot
Download Trickster Mod App from Gplay! Read the FAQ to learn about playing with kernel features!
Enjoy!
NOTE: For updates you can use the built-in OTA UpdateMe App!
DOWNLOAD
NOTE:
Only for Android 4.4!
JBX-Kernel 3.0.8 Version:
2.x == > Android 4.4
JBX-Kernel 3.0.31 Versions:
3.x == > Android 4.4
TEST BUILDs
Test builds are potential prerelease builds which need some more testing before pushing to all users.
CAUTION: Should be stable mostly! But use at your own risk though!!
---> TEST BUILDS [CF] <---
XPERIMENTAL BUILDs
These builds include features without promises to work.
CAUTION: There is no promise that these version are stable/working/whatever! Use at your own risk!!
---> XPERIMENTAL Builds [Dev-Host] <---
---> XPERIMENTAL Builds [CF] <---
Click to expand...
Click to collapse
Something went wrong?
If you think you have set wrong "on-boot-values" in Trickster Mod flash this:
TRICKSTER RESET: http://dtrailer.de/kernel/trickster_reset.zip
FAQ
CAUTION: This FAQ and the whole OP, additional informations about Governors, IO Schedulers and detailed informations about the usage of Trickster Mod and this kernel can be viewed in the awesome Kernel Guide by Placca!
Kernel Guide 1.8
PDF: http://www.mediafire.com/download/7zaddcmvtxfk9ry/JBX+Kernel+Guide_v1.8.pdf
CHM: http://www.mediafire.com/download/g3ck1bf1k3a3j38/JBX+Kernel+Guide_v1.8.chm
CLICK THE BUTTON BELOW TO OPEN THE FAQ!
Please check the following points if you don't know how to use the features of the kernel or you are facing any kind of issues.
INDEX
1. Kernel Features
1.1 Smartreflex (Turn ON/OFF, adjust min/max range)
1.2 Live OC (Realtime Overclocking)
1.3 Custom Voltage (EMIF)
1.4 GPU Overclock & GPU Governor (UPDATED)
1.5 Gamma Control
1.6 Battery Friend
1.7 Suspend Governor (CURRENTLY DISABLED)
1.8 IVA Overclock
1.9 DPLL Cascading
1.10 HDMI toggle
1.11 Intelli-Plug
2. Issues
1.1 How can I change the smartreflex minimum/maximum voltage
What is Smartreflex?
SR is compareable with an CPU governor but not for scaling frequencies but for voltages. That means SR has a fixed range of voltage (min/max) and calculates the optimal voltage for each CPU frequency. In example on light use of the CPU it scales down to lower voltage - on heavy use it can sclae to higher voltage. This is an efficient system to save power! Compared to EMIF which uses the hardcoded voltages it saves more power because it's variable. EMIF cannot vary between the values.
This interface has a hardcoded range of 830mV min to 1450mV max. Usually there is no need to adjust these values but irt can be usefull in example when using high overclocked frequencies above 1,5ghz! Usually SR cannot handle frequencies above 1,5ghz and I have hardcoded the maximum range of 1,45mV which should allow SR to handle it. In prior times the users had to turn off SR when OCing above 1,5ghz which causes the CPU to eat more power. But you can try around and report your results.
CAUTION: Don't raise the maximum SR voltage too high! It can burn your board = no phone anymore! I recommend to not use higher values than 1490mV! As already mentioned: THe default value should be enough!
ANd also: USUALLY THERE IS NO NEED TO CHANGE ANYTHING ON SR! IF YOU DON'T KNOW WHAT YOU'RE DOING, PLEASE LEAVE IT ALONE!
Ok, now let's see how to do this:
Turn ON/OFF SR
1. Open Trickster Mod
2. Head to the "Specific section"
3. Scroll down to "Smartreflex"
4. You can toggle ON/OFF SR for each component (IVA, CORE, MPU)
Usually I recommend to keep SR ON because it saves power! But in some cases when overclocking the CPU (MPU) the device could freeze - whether you OCed too much or SR couldn't handle the frequency! In this case you can try to raise the vmax value of SR a little bit (CAREFULLY!) and try again. If it sitll freezes and you're sure that you didn't OC too much, turn SR OFF at least for MPU!
Maximum Voltage
Currently there is no app which supports the feature of adjusting the SR vmax value, because I wrote this feature some days ago.
But in the next Trickster Mod version this option will be supported!
example:
# To read the current vmax value. Replace XXX with one of the following:
sc_core - for core max sr voltage
sr_iva - for iva max sr voltage
sr_mpu - for mpu max sr voltage (mpu is most related for CPU scaling)
cat /sys/kernel/debug/smartreflex/XXX/vmax
# You will get an output, e.g. for mpu = 1450000 (1450mV)
# To set a new value, do the following command (replace XXX with a value like above - BE CAREFUL! USUALLY THE DEFAULT VALUE ENOUGH AND YOU CAN LEAVE IT UNTOUCHED!)
echo XXX > /sys/kernel/debug/smartreflex/XXX/vmax
Minimum Voltage
It's easy because Trickster Mod supports it!
1. Open Trickster Mod
2. Head to the "Specific section"
3. Scroll down to "Smartreflex"
4. Below each SR component (IVA, CORE, MPU) there is displayed a value (usually 830 default) which means this is the lowest scalable voltage for this component. You can try to decrease this value for the case you want to UV a bit more - or raise it a bit for the case you think that the set range is too low and causes freezes on your device.
1.2 How do I use Live OC (Live OVerclock)?
This feature allows you to overclock the CPU in realtime. It works with a multiplier value set by the user. The default multplier value is "100", which means: No OC! If you want to raise the OC frerquency, just raise this value step by step.
FOr my device the maximum working OC value is "111" which means the maximum frequency is running at 1498mhz!
NOTE: Keep in mind that you tunr Smartreflex OFF for higher freqs than 1500mhz - or raise the maximum SR voltage range for "MPU" a little bit and test if it works.
Ok, how to use Live oC in action:
Open Trickster Mod App and swipe to the tab "Specific". There you will find something like this:
Code:
MPU OC [100]
DON'T TOUCH THE "CORE OC" SECTION, IT WILL CAUSE FREEZES!
Now slowly increase the value "100" to something higher, e.g. "105". Tap the hook in the right upper corner to confirm. To see your new set of frequencies you can now whether close and restart Trickster Mod or just use any monitoring app like Cool Tool which will show your frequencies in real time. That's it!
CAUTION: You can damage your phone forever!!!! This feature allows you to set very high frequencies (also up to 2,0ghz...) - That DOESN'T mean that your phone can run these frequencies!
If your phone freezes or crashes you have probably set too high OC - or your voltage is too low.
1.3 How do I use Custom Voltage (EMIF)?
NOTE: This only adjusts the fixed voltage! When you have Smartreflex ON it can still vary! You have to see the bigger picture: This voltage value sets the "middle point" for voltages. Smartreflex is still able to increase or decrease the voltage. When Smartreflex is OFF the CPU will stay on this voltage you set here and probably eats also more power.
How does EMIF works together with Smartreflex:
Code:
-------
| CPU |
-------
|
------------------ ------------------
|Voltage 1015 mV | ---->| SMARTREFLEX ON| = 1015mV +/- "vmax"/"vmin"
------------------ -------------------
|
--------------------
|SMARTREFLEX OFF| ----> 1015mV FIXED! No changes!
-------------------
Thi smeans if you change the voltage for a scaling step (OPP) while SR is ON, SR will adjust the voltage from this value, means: mV-Value +/- SR vmin/vmax. WHen SR is OFF it will stay on this mV as a fixed value.
How to adjust the voltage?
Well, this feature can be used with all generic apps which are supporting voltage settings. But we are prepared well, you can adjust voltages also with the "Trickster Mod App".
When you open the app, head to the tab "Specific" and below the "Live OC Section" you will find your voltage table, which looks like this:
Code:
<-->
1200 [1398]
1000 [1388]
900 [1371]
...
..
..
Now just tap the arrows in the right upper above the first voltage value and just type or tap (per direction) a value, e.g. "-25". To apply it, confirm by tapping the hook in the right upper corner of your screen. That's it, your new voltage values are now set and applied. And also mind here: If your phone freezes you porbably have set it too low.
CAUTION: NEVER SET HIGHER VOLTAGE THAN 1490mv here!!!!! Or you might damage your phone FOREVER!
This voltage is not the same like Smartreflex! But it's still voltage! Just be carefull!!
1.4 How can I use GPU OC and GPU Governor?
GPU Overclock doesn't work like Live OC! You cannot really set custom frequencies for the GPU, but you can select and set the maximum frequency from a hardcoded range!
For the GPU there are the following available frequencies:
154mhz (FIXED!)
307mhz
384mhz
416mhz
The minimum frequency of 154 is FIXED! This means you cannot change it because the GPU needs a minimum speed to run with. But the kernel allows you to select the maximum speed. This can be usefull for playing games and also for saving power . In example when not playing games you don't need the GPU to run at 416mhz! Set it to 307mhz in this case and save power.
When you open Trcikster Mod and head to the "specific section tab", you will find "GPU MAX FREQUENCY" and it's currently set maximum frequency. Tap on it to select your preferred one:
- 154 Mhz
- 307 MHz
- 384 MHz
That's it. The new setting will be your new maximum GPU frequency.
Below there's another option called "GPU Governor". Just tap on it and select your prefered one.
NOTE: If you want to track current GPU frequencies and watch governor's behavior, just switch to Trickster's "Informations" - Tab and watch the frequencies clock.
1.5 How can I use Gamma Control?
What is gamma? The gamma setting sets the color range for the screen. You can compare it to the contrast. We all know that the touchscreen eats most of the power compaerd to all other components in a smartphone! A lower brightness causes less power consumption and a lower gamma or contrast range alos helps a little bit to save power.
In this kernel you can choose from a range of "5 - 10" while "5" is very bright while "10" is very dark. The default setting is "5" BUT CAUTION: Trickster Mod will display a range of "0" to "10" and the default setting will be shown as "0". This is caused by the fact that this feature was ported from the Gnex device where you can choose from a higher range. The only sideeffect is that the values "0" - "5" won't show any difference.
How to set the gamma value?
Well, once again open Trickster Mod and swipe to the tab on the right end. Just select your preferred value by using the slider.
Alternately you can use sysfs by terminal or adb:
OMAP Gamma interface:
echo i > /sys/devices/platform/omapdss/manager0/gamma
Replace i with 0-10 of your choice.
1.6 What is "Battery Friend and how to use it?
Battery Friend is a simple toggle (ON/OFF) which sets your device into a battery friendly mode without the need to play with all settings in Trickster Mod /sysfs until you find a good setting. In fact it does the job for you.
What does it affect?
NOTE: Doesn't lock anyx frequencies anymore!
locks dynamic Fsync enabled
locks Fsync disabled
Doesn't allow any OC (Live OC will not have any effect, Core OC is not allowed in this kernel)
Increases the dirty ratio interval to 90% (starts working at this value)
Enables Dynamic Hotplug: This doesn't allow hotplugging during device is active - and it will always turn CPU1 OFF during suspend! It also prevents from conflicts when user uses a hotplug governor (which isn't a good idea though) - but hotplug governors are causing higher battery drain!
Dynamic Page-writeback always enabled
How to toggle Battery Friend:
For now the only way is via terminal, adb shell or root explorer (text editor)
For terminal and adb:
Code:
echo 1 > sys/kernel/battery_friend/battery_friend_active /* Enable */
echo 0 > sys/kernel/battery_friend/battery_friend_active /* Disable */
For Root Explorer
Open Root Explorer
Navigate to sys/kernel/battery_friend/
Open "battery_friend_active" with Text Editor
Change "0" to "1" and safe the file to enable
Change "1" to "0" and safe the file to disable
1.7 Suspend Governor Control (CURRENTLY DISABLED)
Suspend Governor Control is a kernel module written by me. You can use it to set your preferred Screen-Off-governor.
For now it's only supported by sysfs (Trickster Mod will support all my current and upcoming features as soon as it gets updated with its new UI mode!
How to set suspend governor
Open a terminal or use adb shell
Code:
su
echo "x" > /sys/kernel/suspend_gov/suspend_gov
Replace x with one of these values:
0 = Ondemand
1 = Ktoonservative
2 = Conservative
3 = OndemandX
NOTE: No matter what governor you use for suspend mode, if Battery Friend is enabled the second core will be turned off during suspend!
1.8 IVA Overclock
What is IVA OC?
IVA OPPs are controlling the CPU load for sound events. It could be useful (in some cases) when you get sound related laggs. Just set the maximum frequency to highspeed. This will allow more CPU power for sound events but also will cause higher battery consumption.
How to use IVA OC?
If you want to check the current IVA frequency. Just type in Terminal or ADB:
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/iva_clock
You will get an output like this:
Code:
132 Mhz
2. You can whether enable IVA highspeed: 130 - 430 Mhz ["1"] or enable IVA normal speed: 130 - 332 Mhz ["0"]
320 Mhz max: echo "0" > sys/devices/system/cpu/cpu0/cpufreq/iva_freq_oc
430 Mhz max: echo "1" > sys/devices/system/cpu/cpu0/cpufreq/iva_freq_oc
1.9 DPLL Cascading
DPLL: Davis–Putnam–Logemann–Loveland (DPLL) algorithm
To get more info about this please see wiki
But to sum it up shortly: It helps to use/stream media (music) in a low power mode.
NOTE: DPLL Cascading will be available to be switched easily via Trickster Mod App soon!
How to switch DPLL?
DPLL is ENABLED by default!
Open Trickster Mod -> Speicific Tab --> DPLL (soon)
sysfs:
Turn off:
Code:
echo 0 > /sys/kernel/dpll/dpll_active
Turn on:
Code:
echo 1 > /sys/kernel/dpll/dpll_active
1.10 HDMI toggle
Some users are facing a RAZR-sepcific problem: HDMI cable is detected, even though there is no cable plugged!
Therefor I included a toggle to switch HDMI wether ON or OFF. Additinally there's an init.d script included within the AROMA Installer you can select during the installation of JBX-Kernel.
To enable/disable HDMI on-the-fy:
sysfs:
Turn off:
Code:
echo 0 > /sys/kernel/hdmi/hdmi_active
Turn on:
Code:
echo 1 > /sys/kernel/hdmi/hdmi_active
1.11 Intelli-Plug
For intelli-plug hotplugging is now only allowed when the device enters sleep.
To enable hotplugging universally just change the value of the following entry whether to 1 (on) or 0 (off):
Code:
sys/module/intelli-plug/parameters/int_hotplug
2. If anyone has the following issues:
Issue
Media Process FC
No SD-Card in File Explorer
My CPU Settings (frequencies, etc) won't be saved (it sets itself back to Kernel default after screen off)
My phone freezes/reboots always when I try to set options in Trickster Mod
The device is lagging very hard
Solution
Media FC: Open App settings, head to "Download Manager" and "Media Storage" and hit the "delete data" button. Reboot. Now it shouldn't give any FCs anymore and after a little bit of waiting it will find all Media (Pictures, Videos, etc..)
No SD-Card: Reboot into recovery, go to "Mounts & Storage", tick "mount int" or "mount ext".
USB: Make sure the screen is ON while plugging the cable in.
CPU Settings: This is a bug which cannot be solved at the moment. Temporary solution: In Trickster Mod just activate the "Frequency Lock" and your settings will persist.
Trickster Mod:: Open App settings, Trickster Mod and select "uninstal updates". Now it should work.
Crashes, Freezes, lagging, something doesn't work, etc
There are too many reasons which could cause crashes! So here is a checklist for you to look for. Check each point and try the following workaround:
- Your rom has CPU tweaks (e.g. Kernel modules, init.d folder, etc)
- You have set custom CPU settings (e.g. custom frequencies with apps like No-Frills CPU Control, Set-CPU, Antutu, etc...)
- You have undervolted too low
- You have overclocked too high
- You have applied higher "Core OC" value in Trickster Mod App
- You are running any other kernel tweaks which are regarding to the CPU and/or performance (e.g. Kernel modules by Whirleyes eventually set by init.d, etc..)
- After setting some settings (e.g. in Trickster Mod) your device doesn't boot anymore
- adb doesn't work / shows only "device offline"
- You are facing hard lagging
If any point here matches your setting, please revert from it:
- Remove any CPU init.d script from /System/etc/init.d
- Uninstall any CPU controling app (e.g. Set-CPU, No-Frills, etc..)
- Remove all extra kernel modules from system/lib/modules (e.g. cpu_control.ko, cpufreq_smartass2.ko, etc..)
- Unset any custom settings from any other kernel / CPU - tweaking app which is NOT Trickster Mod
- Maybe your governor causes issues. Hotplug is know for bugs at the moment...I'm going to fix it..
- NEVER set your CPU Settings (e.g. in Trickster Mod App) on boot!!!! - before you aren't sure that your settings are safe!!!
- You may flash the kernel again after reverting related settings
- to make adb work / show device online, download latest SDK platform-tools and confirm access on device (4.2 security feature of Android)
- Don't use any task killers, memory killers, seeder apps! They may conflict with the kernel/Rom settings.
If none of these suggestions work for you your rom may be incompatible. Please report it here that I can add the rom to the list of imcompatible roms
If you have any issue, please read this:
First check:
- is it really a kernel issue?
- did I see this bug with the roms original kernel?
- what are the people in the rom thread saying?
- what are the people in the kernel thread saying?
- can I find this issue on a bug list?
- how about my settings? Is it my fault it crashed?
- can I find something useful in the kernel FAQ?
- Is it maybe a well known issue and can be solved
withing seconds? Just like wifical.sh?
- Where to repeat that issue? Rom or kernel?
I know it's sometimes difficult to track the issues, and we can't know for sure if it's caused by the rom or by the kernel, but if you try at least to get some information you might find an answer sometimes. If you are able to understand logs, you may report whatever you find.
All this helps to keep the threads more clear. Thank you.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
DONATE
If you like my work and want to support me, I'd enjoy a little beer or coffee. You can find my beer mug below my username
SOURCE
JBX-Kernel 4.4
CREDITS
Shurribbk - Co-Development
Kholk & [mbm] - Kexec inital Release
Hashcode & Dhacker - Making Kexec stable and initiating compatible kernels
Motorola - 3.0.8 Kernel Source
Surdu_Petru - Sharing Knowledge and helping with problems
nithubhaskar - Hints and answering my questions
Ezekeel, Imoseyon - Custom Voltage, Live OC, Temp Control, Gamma Control Source Code
faux123 - Some features, like Intelli-Plug, Intellidemand, Intelliactive
bigeyes0x0 - Trickster Mod App
Team Trickster - Great support and adding new features from my suggestions
Placca - Awesome kernel guide
RandomPooka - for special testing and support
- reserved -
Hey guys, welocme to JBX-Kernel for Targa! This is the first initial release and needs to be tested! Please give me some feedback if it boots and how it works for you. It comes with built-in OTA Updater and many extra stuff. Just check it out.
Keep in mind that this release will only work on 4.4 builds! Currently I don't have the time for others. Also you should use a newer build with Full HD Cam support! When using this kernel with older 4.4 builds your camera won't work.
Oh cool, i happy Someone help you with targa kernel ?
Maksim_ka said:
Oh cool, i happy Someone help you with targa kernel ?
Click to expand...
Click to collapse
Nope.. But it doesn't matter. Currently I have a problem with paying my server, and as long as I am able to build I wanted to release the Targa Kernel. The only difference seems to be in the CMD-line (Targa doesn't have a utags partition), so I just had to switch this line and build it with CM11 Targa sources to get the right ramdisk and modules. The whole source is the same like RAZR kernel.
I test it, and dont see weighty differences with RAZR kernel, have same bugs, display backlights don't turn on sometimes. I think you can talk with Hush about it, he can help.
Maksim_ka said:
I test it, and dont see weighty differences with RAZR kernel, have same bugs, display backlights don't turn on sometimes. I think you can talk with Hush about it, he can help.
Click to expand...
Click to collapse
You mean Hashcode? I am in static contact with him. But thx
What do you mean with "backlight doesn't turn on sometimes" ? I don't see this problem on RAZR... But sometimes you need to be a little patient when you want to wake it up. That's because of things like "DEEP IDLE" and others which keep the device in "deeper" sleep mode. It can take 1 or 2 seconds until you will see the lights - but it will turn on for sure. Maybe you're talking about something else? What bugs else exactly?
dtrail1 said:
You mean Hashcode? I am in static contact with him. But thx
What do you mean with "backlight doesn't turn on sometimes" ? I don't see this problem on RAZR... But sometimes you need to be a little patient when you want to wake it up. That's because of things like "DEEP IDLE" and others which keep the device in "deeper" sleep mode. It can take 1 or 2 seconds until you will see the lights - but it will turn on for sure. Maybe you're talking about something else? What bugs else exactly?
Click to expand...
Click to collapse
Yep, i mean Hashcode.
It will happened if use proximity sensor when calling, and sometimes when wake up phone. Backlight don't turn on generally, help only reboot. And it don't happened if change frequency to 300-1xxx. I think if you change minimal frequency to 300mhz it gone.
Maksim_ka said:
Yep, i mean Hashcode.
It will happened if use proximity sensor when calling, and sometimes when wake up phone. Backlight don't turn on generally, help only reboot. And it don't happened if change frequency to 300-1xxx. I think if you change minimal frequency to 300mhz it gone.
Click to expand...
Click to collapse
Well that's not an issue, but a well known phenomen. Some devices cannot handle 100 MHz (depends on silicon, each one is different). The min frequency is 300 by default, and the battery friend min frequency is 200 by default. Just check your settings in trickster mod.
Gesendet von meinem XT910 mit Tapatalk 4
I'm able to boot the kernel but cannot get radio. Any ideas?
Sent from my XT875 using Tapatalk
BZguy06 said:
I'm able to boot the kernel but cannot get radio. Any ideas?
Sent from my XT875 using Tapatalk
Click to expand...
Click to collapse
Not yet. I need more informations from other users. Any feedback here????
Just try the today's OTA (soon). I forgot to update device tree sources in yesterday's builds.
Because I had a weird drain myself on yesterday's RAZR kernel (not very much, but noticable)
EDIT: I got a workaround for the RADIO issue - if it's actually an issue Wait for the OTA.
I was only able to get radio working on your 1-08 build of the kernel for rzr. Ever since then I haven't been able to get it to come up.
Edit: I went ahead and installed your 1-21 update and its better. It eventually connects to LTE but only holds it for 30 secs and then drops with no radio. Thanks for the help in advance.
Sent from my XT875 using Tapatalk
BZguy06 said:
I was only able to get radio working on your 1-08 build of the kernel for rzr. Ever since then I haven't been able to get it to come up.
Edit: I went ahead and installed your 1-21 update and its better. It eventually connects to LTE but only holds it for 30 secs and then drops with no radio. Thanks for the help in advance.
Sent from my XT875 using Tapatalk
Click to expand...
Click to collapse
Please download the latest build from same links again (any mirror, I overwrote it). It should have fixed radio now. But you have to replace your build.prop with that one from your rom or open it and remove all additions made by JBX. The easiest way is to flash the rom again, then flash jbx.
I went ahead and redownloaded and reinstalled and I'm still getting the same thing. Attached is my "phone info" screen. And under "select preferred network" my only option is unknown
{
"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"
}
Sent from my XT875 using Tapatalk
Just flashed latest 1/21 JBX with cm 1/20. Have lte. Haven't played with settings yet. Need to read the faq first. Thanks void time buddy.
Sent from my XT875 using Tapatalk 2
BZguy06 said:
I went ahead and redownloaded and reinstalled and I'm still getting the same thing. Attached is my "phone info" screen. And under "select preferred network" my only option is unknownView attachment 2530635
Sent from my XT875 using Tapatalk
Click to expand...
Click to collapse
So, have you reset your build.prop before as I said above?
Btw: just open it in a text editor (I.e. With root Explorer), scroll down until you see "dtrail - build.prop additions". Delete everything below that line. Now reboot and flash jbx (after downloaded again).
Gesendet von meinem XT910 mit Tapatalk 4
dtrail1 said:
So, have you reset your build.prop before as I said above?
Btw: just open it in a text editor (I.e. With root Explorer), scroll down until you see "dtrail - build.prop additions". Delete everything below that line. Now reboot and flash jbx (after downloaded again).
Gesendet von meinem XT910 mit Tapatalk 4
Click to expand...
Click to collapse
Yes. I went ahead and wiped system and data, installed cm11 1-20, and then installed the 1-21JBX targa kernel
Sent from my XT875 using Tapatalk
BZguy06 said:
Yes. I went ahead and wiped system and data, installed cm11 1-20, and then installed the 1-21JBX targa kernel
Sent from my XT875 using Tapatalk
Click to expand...
Click to collapse
Just flash the latest jb radio and don't change band in settings.
P.S. targa don't have BMM
Maksim_ka said:
Just flash the latest jb radio and don't change band in settings.
P.S. targa don't have BMM
Click to expand...
Click to collapse
I have the latest JB radio (CDMA_N_05.22.00R LTEDC_U_09.1D.00). My radio works fine using the stock CM11 kernel. I really wanna try out dtrails' work.
Q&A for [INFO] [v1.0 beta5] [07-01-2015] CPU Governor ZZMoove
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for [INFO] [v1.0 beta5] [07-01-2015] CPU Governor ZZMoove. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!
ZaneZam said:
Hi Guys,
i thought it would be a good idea to put all the infos of the zzmoove governor around here together on one place
for better way to find it, to have a place to dump stuff for future versions and to give support for specific questions.
for now i just copied the allready existend posts here but will edit this further when i have more time
so lets start with the first
initial version:
ZZMoove Governor v0.1
(post from 18th December 2012, 10:27 PM)
Why that “zzmoove” governor and how it works:
I thought it were pretty cool to have one of my favorite governors back from the old SGS1-days on my actual device, so i decided to take the sources and give that a try on top of boeffla kernel. It worked well so this is now the result of that experiment.
More about the internals:
Basically this is the ported SGS1 version of the well known "smoove" governor from the good old midnight kernel from Michael Weingaertner (mialwe) with a modified CPU hotplug implementation of the ktoonservative governor from ktoonesz. The original implementation from ktoonesz worked well but I observed that on idle most of the time only one cpu was going to sleep. Well that was not enough for me so I made a modification to put the other cpu's also to sleep (except cpu0). That means that this governor uses more often only one cpu on idle and as a consequence of that it needs less energy. Depending on System load and governor settings all 4 cores will be instantly up again if it is needed.
In short:
So what you can expect now from this thingy is a battery-friendly behaving hotplug conservative governor which
uses a frequency lookup table for faster upscaling (so called "smooth scaling") So this is more a energy-safer than a performer.
Tuneables/Defaults:
Sampling Rate (default=2) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/sampling_rate
Sampling Down Factor (default=4) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/sampling_down_factor
Up Threshold (default=70) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold
Up Threshold Hotplug (default=68) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold_hotplug
Down Threshold (default=52) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold
Down Threshold Hotplug (default=55) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold_hotplug
Ignore Nice Load (default=0) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/ignore_nice_load
Freqency Step (default=5) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/freq_step
Smooth Up (default=75) tuneable: /sys/devices/system/cpu/cpufreq/zzmoove/smooth_up
Links:
Midnight kernel
KT747 Kernel
Common Infos about Governors,I/O Schedulers etc.
Credits to:
mialwe for his smoove governor
ktoonesz for original hotplug implementation
ZZMoove Governor v0.3
(Post from 25th February 2013, 05:06 PM - "more improvements")
there are now many new possibilities to adjust the governor more precisely via sysfs!
Following new tuneables were introduced in this new version:
The so called "sleep" values which were hardcoded in previous version are now changed
to sysfs-tuneables:
The Smooth Scaling for sleep (Screen off):
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/smooth_up_sleep
possible values from 1 to 100, default: 100
The up/down Threshold for sleep (Screen off):
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold_sleep
possible Values from above "down_threshold_sleep" to 100, default: 90
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold_sleep
possible Values from 11 to under "up_threshold_sleep", default: 44
The Sampling Rate for sleep (Screen off):
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/sampling_rate_sleep_multiplier
possible values 1 or 2, default: 2
The amound of cores which should run at "screen off":
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/hotplug_sleep
possible Values 0 = do not touch cores (the same behaving as in standard setting of zzmoove) 1, 2 or 3
the number of cores to run on screen off. btw. setting "4" doesn't exist as u can use "0" for that setting!
Beside of that you can now change the hotplug threshold per core independently (thx to gsw5700 for the inital idea!)
and turn cores off completely.
For that purpose following tuneables were introduced and are replacing
the old hotplug up/down threshold tuneables:
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold_hotplug1
hotplug up threshold for core 1 - 0 = turn off core 1, possible range from "down_threshold" to 100, default: 68
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold_hotplug2
hotplug up threshold for core 2 - 0 = turn off core 2, possible range from "down_threshold" to 100, default: 68
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/up_threshold_hotplug3
hotplug up threshold for core 3 - 0 = turn off core 3, possible range from "down_threshold" to 100, default: 68
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold_hotplug1
hotplug down threshold for core 1 - possible range from 11 to under "up_threshold", default: 55
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold_hotplug2
hotplug down threshold for core 2 - possible range from 11 to under "up_threshold", default: 55
tuneable -> /sys/devices/system/cpu/cpufreq/zzmoove/down_threshold_hotplug3
hotplug down threshold for core 3 - possible range from 11 to unter "up_threshold", default: 55
Thanks to:
gsw5700 for the initial Idea "hotplug threshold per core".
brijmathew indirectly for the initial idea "just one core at screen off" (i think he did'nt meant exactly that in his post but hey he switched on the led in my head! *gg*)
ZZMoove Governor v0.4
(Post from 1st May 2013, 10:59 PM - "limits")
Changelog:
Frequency Limits:
First of all there is now a (by me so called) "soft" limit function for limiting frequencies at screen off but also at screen on if u wish. however i recommend to set the screen on limit always with the (if provided) max scaling functionality of the kernel as this is the better way of doing it and "works better" for following reasons: touchboost and wake up frequencies can go above that governor-soft-limit (mostly to 800/1000 mhz) because the governor has no control over these "events" and will be "bypassed" by cpufreq driver! nevertheless by setting this soft limit at screen off the use of frequencies higher than the given limit will be strongly reduced and therefore this will reduce power consumption at screen off. and that was the main intention - saving power if u do not use your phone!
For this function following new tuneables were indroduced to set in sysfs (/sys/devices/system/cpu/cpufreq/zzmoove/):
freq_limit_sleep: limit freqency at screen off (possible values 0 disable limit, 200000-1600000, default: 0)
freq_limit: limit freqency at screen on (possible values 0 disable limit, 200000-1600000, default: 0)
Fast Scaling:
As a second feature in this new version i added the so called (again by me *g*) "fast scaling" for faster up/down scaling! This should bring more performance but on the other hand this can be of course a little bit more power consumptive. try it, it makes things snappier and some people reported that with this setting touch boost can then also be disabled which wasn't really "possible" with previous versions of zzmoove governor.
For this function following new tuneables were indroduced to set in sysfs (/sys/devices/system/cpu/cpufreq/zzmoove/):
fast_scaling: fast scaling at screen on (possible values 0 disable or 1 enable, default: 0)
fast_scaling_sleep: fast scaling at screen off (possible values 0 disable or 1 enable, default: 0)
As last "feature" and to complete the "set" the tuneable "freq_step_sleep" was included to be able to change freq step only at screen off
possible settings are the same as the "freq_step" tuneable which are values from 0% (stops freq scaling) to 100% (switches frequencies from lowest to highest frequency and vice versa like ondmand governor) default is 1 in all settings (bat/opt/perf) at screen off.
ZZMoove Governor v0.5 aka "The Beast"
(performance and fixes)
Changelog:
- completely reworked fast scaling functionality. now using a "line jump" logic instead of fixed freq "colums".
fast scaling now in 4 steps and 2 modes possible (mode 1: only fast scaling up and mode2: fast scaling up/down)
- added support for "Dynamic Screen Frequency Scaling" (original implementation into zzmoove governor highly improved by Yank555)
originated by AndreiLux more info: http://forum.xda-developers.com/showpost.php?p=38499071&postcount=3
- re-enabled broken conservative sampling down factor functionality ("down skip" method).
originated by Stratosk - upstream kernel 3.10rc1: https://git.kernel.org/cgit/linux/k...id=refs/tags/v3.10-rc1&qt=author&q=Stratos+Ka
- changed down threshold check to act like it should.
originated by Stratosk - upstream kernel 3.10rc1: https://git.kernel.org/cgit/linux/k...id=refs/tags/v3.10-rc1&qt=author&q=Stratos+Ka
- implemented/ported "early demand" from ondemand governor.
originated by Stratosk - more info: http://www.semaphore.gr/80-latests/98-ondemand-early-demand
- implemented/ported "sampling down momentum" from ondemand governor.
originated by Stratosk - more info: http://www.semaphore.gr/80-latests/80-sampling-down-momentum
- modified some original conservative code parts regarding frequency scaling which should work better now.
originated by DerTeufel1980: https://github.com/DerTeufel/androi...mmit/6bab622344c548be853db19adf28c3917896f0a0
- added the possibility to use sampling down momentum or conservative "down skip" method.
- increased possible max sampling rate sleep multiplier to 4 and sampling down factor to 100000
accordingly to sampling down momentum implementation.
- added frequency search limit for more efficient frequency searching in scaling "table" and for improving
frequency "hard" and "soft" limit handling.
- added cpu idle exit time handling like it is in lulzactive
again work from ktoonsez : https://github.com/ktoonsez/KT747-JB/commit/a5931bee6ea9e69f386a340229745da6f2443b78
description in lulzactive governor: https://github.com/ktoonsez/KT747-J...f2443b78/drivers/cpufreq/cpufreq_lulzactive.c
- fixed a little scaling step mistake and added overclocking frequencies up to 1800 mhz in scaling frequency "tables".
- fixed possible freezes during start/stop/reload of governor and frequency limit change.
- fixed hotplugging logic at online core 0+3 or 0+2 situations and improved hotplugging in general by
removing mutex locks and skipping hotplugging when it is not needed.
- added possibility to disable hotplugging (that's a debugging relict but i thought maybe someone will find that usefull so i didn't remove it)
- try to fix lags when coming from suspend if hotplug limitation at sleep was active by enabling all offline cores during resume.
- code cleaning and documentation.
for this functions following new tuneables were indroduced:
Early Demand:
early_demand -> switch to enable/disable early demand functionality (possible values 0 disable or 1 enable, default: 0)
grad_up_threshold -> scale up frequency if the load goes up in one step of grad up value (possible range from 11 to 100, default 50)
little example for understanding: when the load rises up in one big 50% step then the
frequency will be scaled up immediately instead of wating till up_threshold is reached.
Fast Scaling (improved):
Fast scaling has now 8 levels which at the same time have 2 modes included. Values from 1-4 equals to scaling jumps in the frequency table and uses the Fast Scaling up but normal scaling down mode. Values from 5-8 equals to 1-4 scaling jumps but uses the fast scaling up and fast scaling down mode.
Hotplugging switch:
disable_hotplug -> switch to enable/disable hotplugging (possible values are any value above 0 to disable hotplugging and 0 to
enable it, default 0)
Sampling Down Factor and Sampling Down Momentum:
Description: From the original author of ondemand_sampling_factor David Niemi:
"This improves performance by reducing the overhead of load evaluation and helping the CPU stay
at its top speed when truly busy, rather than shifting back and forth in speed."
And that "Sampling Down Momentum" function from stratosk does this dynamicly now!
sampling_down_max_momentum -> max sampling down factor which should be set by momentum (0 disable momentum, possible range from sampling_down_factor up to MAX_SAMPLING_DOWN_FACTOR, default 0 disabled)
sampling_down_momentum_sensitivity -> how fast the sampling down factor should be switched (possible values from 1 to 500, default 50)
sampling_down_factor -> depending on which mode is active the factor for sampling rate multiplier which influences the whole
sampling rate or the value for stock "down skip" functionality which influences only the down scaling
mechanism (possible values are from 1 to MAX_SMPLING_DOWN_FACTOR, default 1 disabled)
Original conservative "down skip" or "stock" method can be enabled by setting the momentum tuneable to 0. so if momentum is inactive there will be a fallback to the stock method. as the name "down skip" says this method works "slightly" different from the ondemand stock sampling down method (on which momentum was based on). It just skips the scaling down code for the given samples. if u want to completely disable the sampling down functionality u can achieve this by setting sampling down factor to 1. so concluded: setting sampling_down_momentum = 0 and sampling_down_factor = 1 will disable sampling down completely (that is also the governor default setting)
Dynamic Screen Frequency Scaling:
Dynamicly switches the screen frequency to 40hz or 60hz depending on cpu scaling and hotplug settings. For compiling and enabling this functionality u have to do some more modification to the kernel sources, please take a look at AndreiLux Perseus repository and there at following commit: https://github.com/AndreiLux/Perseus-S3/commit/3476799587d93189a091ba1db26a36603ee43519 After adding this patch u can enable the feature by setting "CPU_FREQ_LCD_FREQ_DFS=y" in your kernel config and if u want to check if it is really working at runtime u can also enable the accounting which AndreiLux added by setting LCD_FREQ_SWITCH_ACCOUNTING=y in the kernel config. If all goes well and u have the DFS up and running u can use following tuneables to do some screen magic: (thx to Yank555 for highly extend and improving this!)
lcdfreq_enable -> to enable/disable LCDFreq scaling (possible values 0 disable or 1 enable, default: 0)
lcdfreq_kick_in_down_delay -> the amount of samples to wait below the threshold frequency before entering low display frequency mode (40hz)
lcdfreq_kick_in_up_delay -> the amount of samples to wait over the threshold frequency before entering high display frequency mode (60hz)
lcdfreq_kick_in_freq -> the frequency threshold - below this cpu frequency the low display frequency will be active
lcdfreq_kick_in_cores -> the number of cores which should be online before switching will be active. (also useable in combination
with kickin_freq)
So this version is a kind of "featured by" release as i took (again *g*) some ideas and work from other projects and even some of that work
comes directly from other devs so i wanna thank and give credits:
First of all to stratosk for his great work "sampling down momentum" and "early demand" and for all the code fixes which found their way into
the upstream kernel version of conservative governor! congrats and props on that stratos, happy to see such a nice and talented dev directly
contibuting to the upstream kernel, that is a real enrichment for all of us!
Second to Yank555 for coming up with the idea and improving/completeing (leaves nothing to be desired now *g*) my first
rudimentary implementation of Dynamic Screen Frequency Scaling from AndreiLux (credits for the idea/work also to him at this point!).
Third to DerTeufel1980 for his first implementation of stratosk's early demand functionality into version 0.3 of zzmoove governor
(even though i had to modify the original implementation a "little bit" to get it working properly ) and for some code optimizations/fixes regarding scaling.
Last but not least again to ktoonsez - I "cherry picked" again some code parts of his ktoonservative governor which should improve this governor
too!
ZZMoove Governor 0.5.1a
(bugfixes)
urgend bugfix release:
- fix governor switching issues (deadlocks) which oviously werend fixed in version v0.5
- optimised scaling function a lot (thx and credits to Yank555!)
ZZMoove Governor 0.5.1b (in cooperation with Yank555)
(bugfixes and more optimisations)
Changelog:
- now really fixed the governor switching issues! (gotcha *****! *g*)
- again some changes in scaling logic from Yank555 (thx and credits)
- simplified some tuneables by using already available stuff instead of using redundant code (thx Yank555)
- reduced/optimised hotplug logic and preperation for automatic detection of available cores
(maybe this fixes also the scaling/core stuck problems)
ZZMoove Governor 0.6 (in cooperation with Yank555)
(flexibility)
Changelog:
- removed fixed scaling lookup tables and use the system frequency table instead
changed scaling logic accordingly for this modification (thx and credits to Yank555)
- reduced new hotplug logic loop to a minimum
- again try to fix stuck issues by using seperate hotplug functions out of dbs_check_cpu (credits to ktoonesz)
- added support for 2 and 8 core systems and added automatic detection of cores were it is needed
(for setting the different core modes you can use the macro 'MAX_CORES'. possible values are: 2,4 or 8, default are 4 cores)
reduced core threshold defaults to only one up/down default and use an array to hold all threshold values
- fixed some mistakes in "frequency tuneables" (Yank555):
stop looping once the frequency has been found
return invalid error if new frequency is not found in the frequency table
ZZMoove Governor 0.6a (in cooperation with Yank555)
(scaling logic flexibility)
Changelog:
- added check if CPU freq. table is in ascending or descending order and scale accordingly
(compatibility for systems with 'inverted' frequency table like it is on OMAP4 platform)
thanks and credits to Yank555!
ZZMoove Governor 0.7 aka "Tamed Beast" (in cooperation with Yank555)
(slow down)
Changelog:
- reindroduced the 'old way' of hotplugging and scaling in form of the 'Legacy Mode' (macros for enabling/disabling this done by Yank555, thx!)
NOTE: this mode can only handle 4 cores and a scaling max frequency up to 1800mhz.
- added hotplug idle threshold for a balanced load at CPU idle to reduce possible higher idle temperatures when running on just one core.
(inspired by @JustArchi observations, thx!)
- added hotplug block cycles to reduce possible hotplugging overhead (credits to @ktoonsez)
- added possibility to disable hotplugging only at suspend (inspired by a request of @STAticKY, thx for the idea)
- introduced hotplug frequency thresholds (credits to Yank555)
- hotplug tuneables handling optimized (credits to Yank555)
- added version information tuneable (credits to Yank555)
for this functions following new tuneables were indroduced:
legacy_mode -> for switching to the 'old' method of scaling/hotplugging. possible values 0 to disable, any values above 0 to enable (default is 0)
NOTE: the legacy mode has to be enabled by uncommenting the macro ENABLE_LEGACY_MODE
hotplug_idle_threshold -> amount of load under which hotplugging should be disabled at idle times (respectively at scaling minimum). possible values 0 disable, from 1 to 100 (default is 0)
hotplug_block_cycles -> slow down hotplugging by waiting a given amount of cycles before plugging. possible values 0 disbale, any values above 0 (default is 0)
disable_hotplug_sleep -> same as disable_hotplug but will only take effect at suspend. possible values 0 disable, any values above 0 to enable (default is 0)
up_threshold_hotplug_freq1 -> hotplug up frequency threshold for core1. possible values 0 disable and range from over down_threshold_hotplug_freq1 to max scaling freqency (default is 0)
up_threshold_hotplug_freq2 -> hotplug up frequency threshold for core2. possible values 0 disable and range from over down_threshold_hotplug_freq2 to max scaling freqency (default is 0)
up_threshold_hotplug_freq3 -> hotplug up frequency threshold for core3. possible values 0 disable and range from over down_threshold_hotplug_freq3 to max scaling freqency (default is 0)
down_threshold_hotplug_freq1 -> hotplug down frequency threshold for core1. possible values 0 disable and range from min saling to under up_threshold_hotplug_freq1 freqency (default is 0)
down_threshold_hotplug_freq2 -> hotplug down frequency threshold for core2. possible values 0 disable and range from min saling to under up_threshold_hotplug_freq2 freqency (default is 0)
down_threshold_hotplug_freq3 -> hotplug down frequency threshold for core3. possible values 0 disable and range from min saling to under up_threshold_hotplug_freq3 freqency (default is 0)
version -> show the version of zzmoove governor
ZZMoove Governor 0.7a
(little fix)
Changelog:
- fixed a glitch in hotplug freq threshold tuneables which prevented setting of values in hotplug down freq thresholds when hotplug
up freq thresholds were set to 0. NOTE: enabling the legacy mode in the source is not part of that fix i just forgot to set it back to standard (disabled) before pushing, sry to lazy to fix that fix now
ZZMoove Governor 0.7b
(compatibility improved and forgotten things)
Changelog:
- fixed stuck at max scaling frequency when using stock kernel sources with unmodified cpufreq driver and without any oc capabilities.
- readded forgotten frequency search optimisation in scaling logic (only effective when using governor soft frequency limit)
- readded forgotten minor optimisation in dbs_check_cpu function.
- as forgotten to switch in last version Legacy Mode now again disabled by default
- minor code format and comment fixes
ZZMoove Governor 0.7c
(again compatibility and optimisations)
Changelog:
- frequency search optimisation now fully compatible with ascending ordered system frequency tables (thx to @psndna88 for testing!)
- again minor optimisations at multiple points in dbs_check_cpu function
- code cleaning - removed some unnecessary things and whitespaces nuked - sry for the bigger diff but from now on it will be clean!
- corrected changelog for previous version regarding limits
ZZMoove Governor 0.7d (bugfix!)
(broken things)
Changelog:
- fixed hotplug up threshold tuneables to be able again to disable cores manually via sysfs by setting them to 0
- fixed the problem caused by a "wrong" tuneable apply order of non sticking values in hotplug down threshold tuneables when
hotplug up values are lower than down values during apply.
NOTE: due to this change right after start of the governor the full validation of given values to these tuneables is disabled till
all the tuneables were set for the first time. so if you set them for example with an init.d script or let them set automatically
with any tuning app be aware that there are illogical value combinations possible then which might not work properly!
simply be sure that all up values are higher than the down values and vice versa. after first set full validation checks are enabled
again and setting of values manually will be checked again.
- fixed a typo in hotplug threshold tuneable macros (would have been only a issue in 8-core mode)
- fixed unwanted disabling of cores when setting hotplug threshold tuneables to lowest or highest possible value
which would be a load of 100%/11% in up/down_hotplug_threshold and/or scaling frequency min/max in up/down_hotplug_threshold_freq
Click to expand...
Click to collapse
Thanks for great inputs
Hi!
Where I can read is responsible for what in one way or another option?
Now I'm interested in the inputboost options.
What's the difference between inputboost_cycles and inputboost_punch_cycles?
What give these options: inputboost_punch_epenmove and inputboost_punch_fingermove?
Forgive me if I ask stupid questions))
Thanks!
ilfat12 said:
Hi!
Where I can read is responsible for what in one way or another option?
Now I'm interested in the inputboost options.
What's the difference between inputboost_cycles and inputboost_punch_cycles?
What give these options: inputboost_punch_epenmove and inputboost_punch_fingermove?
Forgive me if I ask stupid questions))
Thanks!
Click to expand...
Click to collapse
hi ilfat12,
you can get more infos about the new features here : https://github.com/zanezam/cpufreq-governor-zzmoove/commit/75c431aeff8354f224e4c688faa1559ac463ab8a
and especially for the info u are searching i want to quote ffolkes description from here http://www.plasmakernel.com/?p=214:
Added native input booster to ZZMoove (based on faux123′s intelliactive)
I’ve added my own port of the native input booster from intelliactive into ZZMoove. Input events such as buttons, touchkeys, and the touchscreen will temporarily modify different ZZMoove settings. Using this allows for extremely conservative governor settings to be used without affecting performance. The boost is made up of two stages; the first is meant to be a very short high speed burst, just a few hundred milliseconds. The second stage is a reduced up threshold that is applied for the duration of the entire boost.
Click to expand...
Click to collapse
in short this means: inputboost_cycles = main switch = duration of whole input boost
inputboost_punch_cycles = duration of the freq "punch" therefore the freq boost duration
inputboost_punch_epenmove and inputboost_punch_fingermove are addons to this functionality
and are influencing the boost of the freq in following way: if one of these tuneables are set then
either on epen move (for devices with epen) or on finger move the punch will be reinitialized constantly
without expiring so actually its behaving like the regular system touch booster which has every device in some
way implemented. so that mode is kind of redundant if u use the system touch booster in addition, exception would be
if u want to overwrite the system booster with the governor boost. if i use it i usually like to use the native booster with
fingerdown enabled thats a good compromise i think.
hope it's somehow more understandable now for u
and hey never be sorry to ask, there are no stupid questions only stupid people who don't ask
Deep Sleep
How do I enable deep sleep mode at zzmove? Because mine is not working
Henriquefeira said:
How do I enable deep sleep mode at zzmove? Because mine is not working
Click to expand...
Click to collapse
you mean the governor "sleep" settings? it depends on the used kernel and how it has implemented zzmoove. they can be switched off by intention in the source code or are disabled automatically because no power management implementation or display state detection is used in the kernel.
but if u mean that u have wake locks and your device doesn't deep sleep then you have another problem which is not related to kernel/governors
in that case u can check what service/app is keeping your device awake with better battery stats for example to find the root cause.
Default profile Set.
Is this possible to make make yang battery extreme (3) profile set by default.....? Every time i set this but changed automatically zzrelax(11).....After unlock my phone....!
Hi ZaneZam. I use your Governor with Boeffla Kernel Beta on my S5.
I use the optimized profile with following additional tunables:
Fast Scaling Sleep Up: 5
Fast Scaling Sleep Down: 5
Fast Scaling Up: 5
Fast Scaling Down: 5
Sampling Rate Sleep Multiplier: 2
I use apps like Facebook or Chrome and than the phone freezes and reboots. This happened 2 times every day.
I checked the Insane profile and that's very similar to the optimized with my tunables. Why it doesn't work?
tuhinxp04 said:
Is this possible to make make yang battery extreme (3) profile set by default.....? Every time i set this but changed automatically zzrelax(11).....After unlock my phone....!
Click to expand...
Click to collapse
Yes it is possible either via a default value in the governor itself or maybe via the tool u use to switch it which u didn't reveal to us
i just can say that there is nothing included from my side which changes a profile "at sleep" so it must be something which is dealing with the tuneables automatically. I can imagine some kind of "at sleep changing settings" mode.
Solvin said:
Hi ZaneZam. I use your Governor with Boeffla Kernel Beta on my S5.
I use the optimized profile with following additional tunables:
Fast Scaling Sleep Up: 5
Fast Scaling Sleep Down: 5
Fast Scaling Up: 5
Fast Scaling Down: 5
Sampling Rate Sleep Multiplier: 2
I use apps like Facebook or Chrome and than the phone freezes and reboots. This happened 2 times every day.
I checked the Insane profile and that's very similar to the optimized with my tunables. Why it doesn't work?
Click to expand...
Click to collapse
hm I don't have to ask if u are using uv/oc, don't I? maybe any chance of a crash log? the S5 seems still disliking zzmoove in some situations.
ZaneZam said:
Yes it is possible either via a default value in the governor itself or maybe via the tool u use to switch it which u didn't reveal to us
i just can say that there is nothing included from my side which changes a profile "at sleep" so it must be something which is dealing with the tuneables automatically. I can imagine some kind of "at sleep changing settings" mode.
hm I don't have to ask if u are using uv/oc, don't I? maybe any chance of a crash log? the S5 seems still disliking zzmoove in some situations.
Click to expand...
Click to collapse
I don't use UV, only OC but without OC it's the same. How can I create a crashlog?
Solvin said:
I don't use UV, only OC but without OC it's the same. How can I create a crashlog?
Click to expand...
Click to collapse
good at least no uv in case of boeffla kernel its quite easy to create a crash log: just let the crash happen with kernel logger enabled (don't forget to enable it beforehand in config app!) then after system is up again right after the crash-reboot. go to action menu->create debug file. this file will be created in boeffla-data folder on your sdcard and is called "debug-date-time.txt" (the coming popup shows it more exactly) send this file to [email protected] then i can see what happend - hopefully, as the S5 crash logs are almost never much meaningful. but maybe u can give me the crucial hint with this log, lets see. the "good thing" for me is that u can reproduce it! thx in advance...
OK I will do that and send it to you. Thank you!
Currently no reboots or freezes. I think that was the problem:
http://forum.cyanogenmod.org/topic/114602-random-reboots/#entry534858
Today I got a Greenify update from playstore with that changes.
I hope that solved my problem.
And it crashed again (reboot). I send you the crashlog via mail
Solvin said:
And it crashed again (reboot). I send you the crashlog via mail
Click to expand...
Click to collapse
thx for the log, it rebooted yes but it didn't crash (at least the kernel did not!)
so in short: the log is clean, no kernel problem in my opinion but one thing: you have UV set to "custom" in boeffla config which means "the setting for custom values"
and which could still contain values u have changed previously (or have changed by a settings preset)! if u really want stock settings then choose "no undervolting"!
Lord boeffla recently changed the naming from "none" to "custom" upon the advice of me because i had one user which had a similar problem like u (i ask about uv because
of a reason, it's "smelling like that" *g*) and this user had previously tested values still active because he thought "none" is "off" so try to choose "no undervolting" then
u really have no uv values set.
hope this stabilizes things for u. otherwise feel free to get back with another log
:fingers-crossed:
ZaneZam said:
thx for the log, it rebooted yes but it didn't crash (at least the kernel did not!)
so in short: the log is clean, no kernel problem in my opinion but one thing: you have UV set to "custom" in boeffla config which means "the setting for custom values"
and which could still contain values u have changed previously (or have changed by a settings preset)! if u really want stock settings then choose "no undervolting"!
Lord boeffla recently changed the naming from "none" to "custom" upon the advice of me because i had one user which had a similar problem like u (i ask about uv because
of a reason, it's "smelling like that" *g*) and this user had previously tested values still active because he thought "none" is "off" so try to choose "no undervolting" then
u really have no uv values set.
hope this stabilizes things for u. otherwise feel free to get back with another log
:fingers-crossed:
Click to expand...
Click to collapse
Damn! I thought it was off, but you are right, my device was UV. But that was a stock setting from the kernel. I hope that was the Problem. Thank you very much ZaneZam.
Samsung Galaxy S5 - G900F
ROM: CM12.1 Nightly
Kernel: Boeffla 2.2-beta2
CP/BL: G900FXXU1BOH4
Recovery: TWRP 2.8.7.0
Can I get some help with my LG G3 zzmove profile 2 /5 settings? It runs good with the default settings, but I'd like to get some more performance and speed and get rid of the lag I have. SlimSaber 5.1.1 Nebula 12.0 using Kernel Adiutor
Someone explain about profile? i read it many time but dont understand it.
thaibinh262 said:
Someone explain about profile? i read it many time but dont understand it.
Click to expand...
Click to collapse
profiles are just predefined settings but included in the governor itself and switchable via a tuneable.
nytebird said:
Can I get some help with my LG G3 zzmove profile 2 /5 settings? It runs good with the default settings, but I'd like to get some more performance and speed and get rid of the lag I have. SlimSaber 5.1.1 Nebula 12.0 using Kernel Adiutor
Click to expand...
Click to collapse
still relevant? . sry completely missed that I would suggest to try all other settings then and see... if none of them suits u u anyway have to adjust the tuneables in particular to. make things better.. nut this is a huge topic then.
music_state
What does music_state tuneable do?