NOTICE: This is COMPATIBLE with ALL Vivid Rooted Stock and Custom ROMs
For frequency control use fauxclock from Google Play
Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in parts or in its entirety, I kindly ask you mention its origins and to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you
Hi XDA members and fellow Vivid users:
This is my tenth kernel hack. I want to thank Erasmux, and several others I cannot recall for inspiring me to venture into this unfamiliar territory for me.
What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
[Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.
THIS KERNEL is BASED ON HTC Source Code. So it is COMPATIBLE ONLY WITH HTC ICS Vivid Builds.
Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).
CleanCache (via ZCache backend)
ZCACHE is a new technology I introduced to HTC Kernel. ZCACHE is a compressed cache similar to ZRAM but the similarity ends there. ZCache is meant to provide as many "cleancache" pages (non-dirty or untouched "virgin" memory) to apps that request for new memory. CleanCache is very easy to allocate and no additional penalty are required to hand them out, so having more CleanCache pages will improve performance. Under heavy memory pressure, often times the kernel will NOT have enough CleanCache pages, so the kernel has to do EXTRA work to reclaim dirty cache pages and clean them for the new apps that's requesting for them. The described process creates a performance hit for the kernel and the app, so the idea is to use compression to create more CleanCache pages available for use. Of course there's a penalty to pay for using compression, but the trade-off between compression penalty and the penalty for reclaiming dirty cache pages and allocating them after cleaning is smaller for compression, so in the end, CleanCache should add more performance.
ZRAM (aka CompCache aka RAMZSwap)
ZRAM is an updated version formally known as CompCache and RAMZSwap. It was originally designed for 2.6.38.xx kernels, I have backported to our 2.6.35.xx kernel. ZRAM allows real-time compression of memory objects in RAM thus reducing memory pressure for the Linux kernel and can keep more apps in memory longer (more apps in RAM == better performance, less fetching from slower MMC or SDCard). Compression, however, is not Free. Some CPU cycles are required to do the compress/decompression, so there's a slight penalty for it. The original CompCache / RAMZSwap required a user space binary to control its behavior which adds additional penalty to performance, but the new version ZRAM eliminated the need for a separate dedicated daemon, thus reducing the overhead and increased performance from the old CompCache by 20%. Therefore, with the newer implementation of ZRAM interface, the performance penalty is almost negligible.
Joe's RCU (Optimized for Small SMP systems)
Joe Korty has created an RCU for small SMP systems (> 32 cores). His approach is to isolate all the Garbage Collection (GC, a slow time consuming but necessary processing) to a single core, thus allowing other cores to ONLY work on real required processing. This will allow the additional cores to complete their assigned tasks as fast as possible (not bogged down by GC) then immediately go back to a suspended state (saving battery).
Fast No Hz RCU (Optimized for SMP operations)
Fast NoHz is an optimized version of the traditional Tree RCU. Many new kernels are using the Tickless NoHz design. This RCU is tailored and designed to work with the new NoHz kernel system.
SmartAssV2 Governor (Balanced)
This governor has a built-in "profile" similar to SetCPU, so screen off will use lower clock rate thus conserve more battery, but it also has a fast wake up feature so that user interaction will not see the lag when switching from Sleep to Wake state.... (So SetCPU Profiles are sorta redundant when using this governor, you can still use SetCPU to OC to higher than default Clock frequency).
Interactive Governor (Performance)
This governor is designed to put more priority to User Interface (UI aka Apps) tasks, therefore appears more responsive then the traditional OnDemand governor. So if you want the smoothest UI interaction, this governor is for you...
Brain F*ck Scheduler - (BFS)
This scheduler is designed to be simple and speedy tailor specifically for user interface type systems such as desktop/smart phone devices where user interaction is MORE important than serving 1 million web requests (CFS, the default scheduler) at the same time (think of nimble desktop workstations vs large corporate servers).
SLQB - (SLAB allocator with Queue)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate). Not all kernels are using SLQB including CM7 main line...
Fair Budget Queue (BFQ I/O scheduler)
This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.
Kernel Files:
******* Ice Cream Sandwich (Android 4.0.x) ******* (Linux 3.0.33)
[ CFS ] (Ultimate Edition) *** S-ON ***
The File ==> Vivid Kernel 007 (1.73 GHz, GPU @ 320MHz, ZRAM) <==
[ CFS ] (Ultimate Edition) *** S-OFF ***
The File ==> Vivid Kernel 007 (1.73 GHz, GPU @ 320MHz, ZRAM) <==
[ Optional: ]
Files to DISABLE Sweep2Wake:
http://forum.xda-developers.com/showpost.php?p=25538084&postcount=6616
[ For Kernel Devlopers ONLY: ]
The File ==> My Global VDD_TABLE for under volt patch <==
The File ==> KGSL Ring Buffer Power Management Patch for Cordy and Ninja Jump <==
Optional Under voltage: Version 0.1.4+ ONLY
Code:
[ to over volt ALL frequencies by 25000 uv (microvolts) ]
echo "+25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
[ to under volt ALL frequencies by 25000 uv (microvolts) ]
echo "-25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
[ to set a specific frequency (ie 1.18 GHz)
with a specific voltage (ie 1.0875 volts) ]
echo "1188000 1087500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
CPU Frequency Voltage Table Example
Code:
192000: 812500
310500: 812500
384000: 812500
432000: 812500
486000: 837500
540000: 850000
594000: 862500
648000: 875000
702000: 900000
756000: 925000
810000: 937500
864000: 962500
918000: 962500
972000: 962500
1026000: 975000
1080000: 987500
1134000: 1000000
1188000: 1012500
1242000: 1025000
1296000: 1050000
1350000: 1075000
1404000: 1100000
1458000: 1112500
1512000: 1125000
1566000: 1150000
Optional: Stock Clock Frequencies for Dual CPUs
Code:
su
echo 192000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 1 > /sys/devices/system/cpu/cpu1/cpufreq/online
echo 192000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
Optional: ZRAM (Compressed RAM swap space )
Code:
su
mkswap /dev/block/zram0
swapon /dev/block/zram0
Low Voltage - Under Volt the processor, therefore uses Less Battery, but NOT ALL CHIPS can handle Under Volt.. If you experience instability, try the Stock Voltage Version.
Stock Voltage - Uses the voltage values from ORIGINAL HTC Kernel Source.
There are NO PERFORMANCE DIFFERENCE between the Under Volted and Stock Voltage versions!
Installation Instructions:
Here's a step by step instruction to install this kernel:
1. download the above file (via phone directly or to a PC)
2. copy the downloaded zip file to /sdcard/download/
3. Open ROM Manager and select "Reboot into Recovery" and select "OK"
4. Once in recovery, select "wipe cache partition", select "Yes", then select "advanced", then select "Wipe Dalvik Cache", then select "Yes" again. Once finished, click the back button to go back to the main recovery menu. On that menu, select "Install Zip From SDCad", then select "Choose zip from SDCard", then go to /sdcard/download and select the downloaded zip file and let it run its script.
5. Once the script is done, select "reboot system now"
Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be silky smooth...
NEWS BULLETIN:
Ice Cream Sandwich Version 007 is out. More intelligent intellidemand! Completely free yourselves from mpdecision, thermald and now with intellidemand, complete CPU/Thermal Management by the kernel.
Please don't hesitate to talk among yourselves and help each other out... The XDA community is what inspired me to hack kernels for everyone since everyone here is nice and helpful to each other... Keep helping each other.... Famous proverb: It's better to give than to receive...
BUGS:
Not All CHIPS ARE CREATED EQUAL
TO DO:
version 1.x.x -- Haven't thought about it yet...
History:
[ Change Log ]
Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!
My Github Complying with GPL and XDA rulez
Follow me on
:
If you find this Kernel useful, feel free to hit the [Thanks] button below
Awesome!! Can't wait to try it!
Sent from my HTC PH39100 using XDA
Thank you so much.. faux123~
Faux your a god.
Sweet....
Anyone install yet and have feedback to report?
Boot Loop
No go for me.
It gave me a reason to update to the new AT&T RUU.
May try again after clean install.
Going to flash stock rooted cwm then maybe this will report back.
ismoore said:
Anyone install yet and have feedback to report?
Click to expand...
Click to collapse
Well it's fast in quadrant scores. I got like a 3560 and in that test CPU scores are significantly higher. Antutu benchmark scores with no overclock are the same as stock. All else felt the same. I'm running this kernel with WC's 3.6 Vivid ROM. Still appreciate the contribution faux! I have run your kernels on other phones and they are always the best!
Now why would Window XP forget my android 1.0 drivers for hboot? can't flash anything in hboot now...
Great, thanks for the info. May try this tonight when I get home. Thanks for your efforts faux.
brwnohno said:
Well it's fast in quadrant scores. I got like a 3560 and in that test CPU scores are significantly higher. Antutu benchmark scores with no overclock are the same as stock. All else felt the same. I'm running this kernel with WC's 3.6 Vivid ROM. Still appreciate the contribution faux! I have run your kernels on other phones and they are always the best!
Click to expand...
Click to collapse
My wifi isn't working, it just says "turning on...". Other than that, it works great
**** mines bootlooping its get the att and loops what should i dooo? I got the latest cwm, and hboot, stock rooted rom. Is it because I let it try to boot right after I flashed the boot.img and didn't flash cwm strait after?
haloXgod117 said:
My wifi isn't working, it just says "turning on...". Other than that, it works great
Click to expand...
Click to collapse
Brand New said:
**** mines bootlooping its get the att and loops what should i dooo? I got the latest cwm, and hboot, stock rooted rom. Is it because I let it try to boot right after I flashed the boot.img and didn't flash cwm strait after?
Click to expand...
Click to collapse
You shouldn't be flashing via cwm. I've included a script for pc tethered flashing. Just run flash.bat on pc with USB cable connected to the phone. You may need to run it twice if it failed to load the modules.
Sent from my HTC Sensation 4G using Tapatalk
faux123 said:
You shouldn't be flashing via cwm. I've included a script for pc tethered flashing. Just run flash.bat on pc with USB cable connected to the phone. You may need to run it twice if it failed to load the modules.
Sent from my HTC Sensation 4G using Tapatalk
Click to expand...
Click to collapse
So I could of flashed this on stock ICS? I didn't think you could OC with a non-rooted phone And I was bootlooping on the stock rooted rom not because of the your kernal I believe
iff this will help
Code:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
D:\Documents and Settings\Noah>cd D:\Documents and Settings\Noah\Desktop\New Fol
der
D:\Documents and Settings\Noah\Desktop\New Folder>flash.bat
D:\Documents and Settings\Noah\Desktop\New Folder>adb kill-server
D:\Documents and Settings\Noah\Desktop\New Folder>adb remount
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device not found
D:\Documents and Settings\Noah\Desktop\New Folder>adb push Modules/system /syste
m
error: device not found
D:\Documents and Settings\Noah\Desktop\New Folder>adb shell mv /system/bin/mpdec
ision /system/bin/mpdecision_dis
error: device not found
D:\Documents and Settings\Noah\Desktop\New Folder>adb shell mv /system/bin/therm
ald /system/bin/thermald_dis
error: device not found
D:\Documents and Settings\Noah\Desktop\New Folder>adb reboot bootloader
error: device not found
D:\Documents and Settings\Noah\Desktop\New Folder>fastboot flash boot Kernel-Her
e/boot.img
sending 'boot' (4348 KB)... OKAY [ 0.875s]
writing 'boot'... OKAY [ 4.984s]
finished. total time: 5.859s
D:\Documents and Settings\Noah\Desktop\New Folder>fastboot reboot
rebooting...
finished. total time: 0.188s
D:\Documents and Settings\Noah\Desktop\New Folder>pause
Press any key to continue . . .
D:\Documents and Settings\Noah\Desktop\New Folder>
can you make a aosp kernal
Nevermind Faux I figured it out! I just need to flash the boot.img that came with the stock rooted rom, then yours! I can't wait to test my battery now, games fly to!! Thanks for your support!!
SetCPU voltage tables are still nonfunctional, just like every other kernel I've tried.
come at me bro said:
can you make a aosp kernal
Click to expand...
Click to collapse
It would be easier to do so if we had a booting AOSP build right now, I think.
Having no issues here. Kernel is definitely smoother and faster than stock. Running fine on WC ROM. Hitting about 3350 on quadrant afer 5 consecutive runs. I haven't made and changes with setcpu, I'm assuming 1.5MHz from initial flash.
Sent from my HTC PH39100 using xda premium
Aus_Azn said:
SetCPU voltage tables are still nonfunctional, just like every other kernel I've tried.
It would be easier to do so if we had a booting AOSP build right now, I think.
Click to expand...
Click to collapse
thecubed's build boots but just barely and someone is working on a build right now I believe, so one day we might have working rom
Brand New said:
thecubed's build boots but just barely and someone is working on a build right now I believe, so one day we might have working rom
Click to expand...
Click to collapse
it boot loops with the proper builds , the one that boots is hacked up to hell
recently installed the super awesome GingerDX but how to overclock it..???
1) flashed the file provided in the gingerdx thread still dint work
2) tried to paste x8oc.ko in modules using root browser ... it says "failed to paste"
Please Help !
Ive flashed this rom n overclock works great. Try flash again and then flash the overclock modules. Dont reboot after flashing the rom. Flash the modules directly while on cwm.
Hit thanks if i helped..
Sent by my w8 using XDA app........
For setting value of CPU & Activate oc, (in Cyanogen-mod setting doesn't provide) without using paid app like SetCPU, (After installed stock oc.zip)
in terminal type:
su
insmod /system/lib/modules/x8oc.ko
echo "xAB" > proc/x8oc
The AB represent integers... 28 = 768 29 = 787 (Occasional reboots)
Above i believe stock user will have reboot...
you can put the echo "xAB" > proc/x8oc into hw_config.sh to set on boot clock speed.... but be aware that value above 28 are not suitable for set on boot clock speed
Download Zip file : http://www.mediafire.com/?ubdt8kjgamo09nz (This contain x8oc.ko files)
For easy overclocking, use this https://play.google.com/store/apps/details?id=os.tools.scriptmanager&feature=search_resultit should simple as it goes, like terminal, but it's better.... What's more it can create a widget
manishmalhotra said:
recently installed the super awesome GingerDX but how to overclock it..???
1) flashed the file provided in the gingerdx thread still dint work
2) tried to paste x8oc.ko in modules using root browser ... it says "failed to paste"
Please Help !
Click to expand...
Click to collapse
Or if u failed to paste, use root explorer and tap the small box.until it changes to r/o. Then paste again. After that go to emulator and do the above procedure.
Sent by my w8 using XDA app........
For my bionic I have found 1.225 ghz to be stable but when I reboot the overclock goes away. I flashed the int.d scripts and nothing worked. I press apply on boot and yet it goes away. I hate having to insmod each time I boot. Do I need to create a profile on Rom toolbox?
You have to write in scripter in rom toolbox your cmd line and set it to run on boot everytime to keep overclock
Sent from my DROID BIONIC using Tapatalk
Hello, I'm using speedmod kernel k3-3, ondemand governor and wanted to change up-threshold and sampling rate, but after i reboot phone it goes to default. Is it possible to change it permanently? thnx
EdgaBimbam said:
Hello, I'm using speedmod kernel k3-3, ondemand governor and wanted to change up-threshold and sampling rate, but after i reboot phone it goes to default. Is it possible to change it permanently? thnx
Click to expand...
Click to collapse
Set CPU, apply on boot ?
Boy124 said:
Set CPU, apply on boot ?
Click to expand...
Click to collapse
system tuner, rom manager, setcpu, antutu cpu... none of them works after reboot settings goes to default.
Extract attached file and copy 99cpu to init.d folder and grant it all the permissions.
I have set Up Threshold to 95% and Sampling Rate to 45000.
You can change the values, just edit 99cpu.
Reboot and check if values stick. If it does not, download Script Manager from the play store. In Script Manager, browse to init.d > select 99cpu > tap Su and Boot > tap save.
Exit and reboot.
PS
---
I think that values won't stick. I always had problems with init.d scripts on SpeedMod kernel. Please reply if values stick.
Boy124 said:
Extract attached file and copy 99cpu to init.d folder and grant it all the permissions.
I have set Up Threshold to 95% and Sampling Rate to 45000.
You can change the values, just edit 99cpu.
Reboot and check if values stick. If it does not, download Script Manager from the play store. In Script Manager, browse to init.d > select 99cpu > tap Su and Boot > tap save.
Exit and reboot.
PS
---
I think that values won't stick. I always had problems with init.d scripts on SpeedMod kernel. Please reply if values stick.
Click to expand...
Click to collapse
ok thank you vm, going to try
edit: values didnt change. seems that this kernel not supporting init.d scripts or what?
edit2: it changed after i ran script via script manager, will try again to reboot
edit3: seems that after reboot need manually boot script. Btw init.d folder what permissions should have?
EdgaBimbam said:
ok thank you vm, going to try
edit: values didnt change. seems that this kernel not supporting init.d scripts or what?
edit2: it changed after i ran script via script manager, will try again to reboot
edit3: seems that after reboot need manually boot script. Btw init.d folder what permissions should have?
Click to expand...
Click to collapse
Anything you want to run on boot in the init.d should have the rwx-rwx-rwx permissions
carbonassassin said:
Anything you want to run on boot in the init.d should have the rwx-rwx-rwx permissions
Click to expand...
Click to collapse
yeh thanks btw i have put this script at init.d
#!/system/bin/sh
# Up Threshold and Sampling Rate - Boy124
echo "70" > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo "45000" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
have set permissions to rwx-rwx-rwx and after reboot it doesnt work, even with script manager su and boot enabled, after reboot it doesnt work. Works only after running script manually, wtf is that
maybe my tweaks are atm useless, maybe it doesnt starts at boot
On CF-Root 5.6, it changes up threshold but sampling rate remains default.
See this http://forum.xda-developers.com/showpost.php?p=26582847&postcount=72
---------- Post added at 12:12 AM ---------- Previous post was at 12:06 AM ----------
carbonassassin said:
Anything you want to run on boot in the init.d should have the rwx-rwx-rwx permissions
Click to expand...
Click to collapse
Thanks. I never bothered to learn about permissions.
Whenever I am confused, I grant all the permissions. And it works most of the time.
Boy124 said:
On CF-Root 5.6, it changes up threshold but sampling rate remains default.
See this http://forum.xda-developers.com/showpost.php?p=26582847&postcount=72
---------- Post added at 12:12 AM ---------- Previous post was at 12:06 AM ----------
Thanks. I never bothered to learn about permissions.
Whenever I am confused, I grant all the permissions. And it works most of the time.
Click to expand...
Click to collapse
hmmm so to sum up, speedmod kernel doesnt support init.d? maybe tomorrow will try franco kernel.
Hi,
I'm running stock 2.3.6 (rooted). By default phones uses "deadline" I/O, but have also "noop". How can I choose "noop" using the terminal? I've tested cpu frill but i'm getting a error.
In few words.
What are the commands to uses "noop" and the one to "deadline", if I wish to go back.
BR.
commands are different
you can try nstools app
it will do the work
dheeraj (dhlalit11) said:
commands are different
you can try nstools app
it will do the work
Click to expand...
Click to collapse
Tested nstools. It keeps reverting to deadline after reboot. Don't know why, but from all the scripts that I've inside /init.d (with the right permissions) the only that works is the Link2SD.
stock roms don't have init.d support by default
so just untick the use init.d option available in setting tab of nstools
and your settings would be sticked to what you choose even after a reboot
What you can do is wipe cache/dalvik cache from custom recovery and then trying nofrills again