[KERNEL][S4][CM9] Fusion Ultimate v1.1 ***OBSOLETE*** No longer supported. - HTC One S

Fusion Ultimate Kernel for AOSP-based ICS ROMs
Latest Version: v1.1 (8/9/12)​
This kernel is no longer supported due to the lack of interest in CM9 now that CM10 is out. Check out my new CM10 based Fusion Ultimate Kernel.
Thanks for all the support!!
Disclaimer:
Code:
#include
/*
* Your warranty is now void.
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed.
* YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you. :P
* blah blah blah you get the point.
*/
As I promised, this is the Fusion Ulitmate Kernel for ICS AOSP-based ROMs. I forked intervigilium's repo and then incorporated all the changes from my other Sense-based kernel. Thank you for your patience; I was working on fixing things up before finally releasing an AOSP version. I decided to create a separate thread so it would be easier to report issues without the thread getting messy.
Click to expand...
Click to collapse
Post #1: Release, Features, and Downloads
Post #2: Changelog
Post #3: How to compile from source
Post #4: Frequently Asked Questions
This kernel is only compatible with CM9 and other AOSP ICS based ROMs. Sorry, no Jellybean support for now. I will wait until CM10 is a bit more stable.
Features
[*]CPU frequency control from 192Mhz <---> 1.89Ghz
[*]kernel defaults to min 192Mhz and max 1.5Ghz
[*]voltage control (use System Tuner Lite/Pro)
[*]SmartassV2, Interactive, Conservative, LagFree, and Lionheart CPU governors added
[*]Simple IO (SIO) and V(R) scheduler added
[*]capacitive LED lights dimmed to 2mA
[*]improved media scanning times (increased readahead buffer)
[*]changed minfree and ADJ values for good multitasking and performance
[*]zip package with modified init.qcom.post_boot.sh and thermald.conf
[*]enabled zRam (see FAQ for a detailed explanation of what it does)
[*]overall good battery life and performance
[*]optimized and tweaked
[*]much more; check the changlog or my GitHub if you want to know the specifics
Click to expand...
Click to collapse
Downloads
v1.0 (boot-080212.zip): http://d-h.st/f5F
v1.1 (boot-080912.zip): http://d-h.st/IjB
How to Install
For hboot 1.09 and below:
Just flash the zip in TWRP recovery. It will automatically flash the boot.img for you.
For hboot 1.13 and up:
you have two options
Option #1
Use TWRP's HTC Dumlock feature. It is a pretty neat workaround that allows you to flash boot.imgs in recovery even on a higher hboot.
Look here for instructions from TeamWin. If you are not comfortable with this method, then follow option #2 to manually flash in fastboot.
Option #2
In addition to flashing the zip, you will have to extract the boot.img from the package and flash it manually with fastboot. Blame HTC for the half-assed 'unlock bootloader' offering they give us. Hopefully we will get S-OFF soon...
Code:
adb reboot bootloader
fastboot flash boot boot.img
fastboot erase cache
fastboot reboot
Look here for a guide.
Sources
initramfs: https://github.com/klin1344/initramfs_ville_cm9
kernel: https://github.com/klin1344/android_kernel_htc_msm8960
*special thanks to intervigil and xkonni for their awesome work on CyanogenMod! Seriously, without them we wouldn't have any AOSP ROMs!*
Enjoy

Changelog/Complete Feature List
Changelog
v1.0 (Initial Release 8/2/12)
re-wrote overclock code
completely re-based on the TMOUS source
init.d scripts support with Busybox run-parts
overclocked up to 1.89Ghz
added 192Mhz step
added SmartassV2 CPU governor (still finicky; needs more testing)
enabled Conservative and Interactive CPU governors
added SIO scheduler and enabled as default
increased readahead buffer
various tweaks for UI responsiveness
stable
v1.0
cleaned up CPU code (all frequency issues should be gone by now; check github for full details)
added LionHeart CPU governor
added LagFree CPU governor
reduced capacitive LED brightness to 2mA (looks better)
tuned Interactive CPU governor parameters
many optimizations; check github for more details if you want
v1.0
added voltage control capabilities (use SetCPU or similar app to UV)
cleaned up CPU code again to try to get frequencies to stick
v1.0
added V(R) IO scheduler
change to a zip package
modified init.qcom.post_boot.sh and thermald.conf
added modules in the zip so it shouldn't break WiFi on EU ROMs anymore
allowed undervolting minimum of 400mV
tweaked minfree and ADJ values for multitasking and performance; the used values were from the V6 OOM Calculator
Conservative CPU governor as default for battery life (use an app to change it if you want)
defaulted CPU frequencies to 192Mhz 1.5Ghz on boot
v1.0
enabled zRam
adjusted VM ratios
added NEON and Snapdragon optimizations
v1.1 (8/9/12)
updated modules; hopefully fixes WiFi issues
Click to expand...
Click to collapse
basically has all features of the latest Sense version.

For Developers
How to build this kernel from source:
This is assuming you already have your Linux environment setup and installed the required packages for compiling a kernel. Make sure mkbootimg is installed your /bin/ directory.
1. Clone my initramfs and kernel sources.
Code:
git clone git://github.com/klin1344/android_kernel_htc_msm8960.git
git clone git://github.com/klin1344/initramfs_ville_cm9.git
2. Compress the ramdisk into a gzipped archive. First navigate to the initramfs_ville_cm9 directory, then:
Code:
find . | cpio -o -H newc | gzip > ../ramdisk.gz
3. Grab the toolchain from DoomLord's handy repo:
Code:
git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains
4. I have created an easy build script. Modify the top four lines to be applicable to your setup. Make sure CROSS_COMPILE is set to the directory of the toolchain we just downloaded earlier (there are two; not the Linaro one). And change INITRAMFS_DIR to the directory of the ramdisk.gz you created earlier.
5. Build. First navigate to the android_kernel_htc_msm8960 directory.
Code:
./build.sh ville_defconfig
The script will detect the number of cores of your CPU and automatically make with the optimal -j#.
6. If all goes well you should end up with a boot.img in the android_kernel_htc_msm8960 directory.

FAQ.... Please read this before posting questions!!!
FAQ​
Frequently asked questions. Please read all of this first, and then if it doesn't answer your question, feel free to ask in the thread. I just don't want to have to keep answering Is this kernel SENSE based? or How do I jailbreak my HTC One S??? type of questions. Lol. :silly: Thank you.
Click to expand...
Click to collapse
What ROMs is this kernel compatible with?
As stated in the OP, this kernel is compatible with all S4 devices running an AOSP-based ICS ROM (CM9, AOKP, ParanoidAndroid). Will probably work with MIUI AOSP-based as well.
What is the best governor for me to use?
It really depends on what you're looking for. If you want performance, go with Lionheart or Ondemand. If you want battery life, go with Conservative. And if you are looking for a balance between battery life and performance, then use either SmartassV2, Interactive, or LagFree. These are just my opinions. Look here for a great reference of all the CPU governors. Test them out and decide which works best for you.
Which I/O scheduler is the best?
I personally use SIO, but you can test and decide which is the best for you. Read here to find the pros and cons of each one.
How do I overclock?
The kernel should default at 192Mhz 1.5Ghz CPU clocks. You can overclock directly from Performance Settings in CyanogenMod. Additionally, you can use SetCPU, No-Frills CPU, System Tuner Lite/Pro, or any similar CPU control app. However, be aware some apps don't allow the settings to stick properly.
How do I undervolt?
Right now, the only app that works for voltage control is System Tuner. Both the Lite and Pro versions allow you to change the voltages. Do not use SetCPU as it doesn't work.
Here is the voltage table I am currently using:
Code:
1890mhz: 1250 mV
1809mhz: 1225 mV
1728mhz: 1200 mV
1674mhz: 1175 mV
1512mhz: 1150 mV
1458mhz: 1137 mV
1404mhz: 1125 mV
1350mhz: 1125 mV
1296mhz: 1100 mV
1242mhz: 1100 mV
1188mhz: 1075 mV
1134mhz: 1075 mV
1080mhz: 1025 mV
1026mhz: 1000 mV
972mhz: 1000 mV
918mhz: 975 mV
864mhz: 975 mV
810mhz: 950 mV
756mhz: 950 mV
702mhz: 900 mV
648mhz: 900 mV
594mhz: 875 mV
540mhz: 850 mV
486mhz: 800 mV
384mhz: 725 mV
192mhz: 650 mV
Please just take these as a grain of salt; not all chips are created equal! Some devices can become an ass when it comes to undervolting, while others can starve the CPU to death and still run fine. Experiment little by little until you find your perfect voltages.
What is zRam and how does it work?
Originally Posted by faux123
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.
Click to expand...
Click to collapse
Something doesn't work???
Please reproduce the error a couple of times and include a logcat.
Code:
adb logcat > logcat.txt
It will say "waiting for device", but it is actually recording a logcat. Reproduce the issue several times, and then you can close the Terminal or Command Prompt window. The logcat.txt will be in the directory you opened the Terminal/Command Prompt in.

Cool. Gonna try this out too.
Sent from my HTC VLE_U using Tapatalk 2

Thank you for the aosp love
Sent from my Nexus 7 using XDA Premium HD app

mteezey said:
Cool. Gonna try this out too.
Sent from my HTC VLE_U using Tapatalk 2
Click to expand...
Click to collapse
blackhartct said:
Thank you for the aosp love
Sent from my Nexus 7 using XDA Premium HD app
Click to expand...
Click to collapse
No problem.
Sent using Tapatalk

Don't think undervolting is working. I can set everything to ridiculously lowl value and it would still work.

c19932 said:
Don't think undervolting is working. I can set everything to ridiculously lowl value and it would still work.
Click to expand...
Click to collapse
SetCPU? If so, wont work as stated in the FAQ.

Is this working on CM10? I know that is ics based but has someone tested?

c19932 said:
Don't think undervolting is working. I can set everything to ridiculously lowl value and it would still work.
Click to expand...
Click to collapse
phoenixita said:
Is this working on CM10? I know that is ics based but has someone tested?
Click to expand...
Click to collapse
Are you guys trying to test my patience or what? Both your questions are clearly answered multiple times in the OP and FAQ.
If I spend countless hours developing for you guys, wouldn't it be more fair if everyone could just take a few minutes to thoroughly read through my posts? If you can't do that, then maybe xda isn't for you. I post stuff for people to actually read, you know.
It's because of one after another of redundant questions like these that devs lose their patience and leave. Thats how the galaxy player community lost every single dev they had.
Sent using Tapatalk

Pheroh said:
SetCPU? If so, wont work as stated in the FAQ.
Click to expand...
Click to collapse
No I'm using system tuner pro

i love you for this man thanks a lot!
Sent from my HTC One S

Thanks Klin!
Sent from my HTC VLE_U using Tapatalk 2

I know using the minmax gov has fallen out of favor a bit, but I'm still a big fan of it; would it be terrrible if I asked if you could incorporate it?

blinksilver said:
I know using the minmax gov has fallen out of favor a bit, but I'm still a big fan of it; would it be terrrible if I asked if you could incorporate it?
Click to expand...
Click to collapse
Sure I'll add in the next release.
Sent using Tapatalk

c19932 said:
No I'm using system tuner pro
Click to expand...
Click to collapse
I have tested it out more, and it seems like changing the voltage in system tuner pro doesnt take immediate effect after you changed it. For example, I can change the voltage to a really, really low value (lets say 500mV for all frequencies) and the phone would still work. Then after I browse around on the phone for 1-2 min the phone would reboot. When I use system tuner on my HTC Sensation I dont have that issue. only in this kernel. Hope I'm explaining it clear enough

c19932 said:
I have tested it out more, and it seems like changing the voltage in system tuner pro doesnt take immediate effect after you changed it. For example, I can change the voltage to a really, really low value (lets say 500mV for all frequencies) and the phone would still work. Then after I browse around on the phone for 1-2 min the phone would reboot. When I use system tuner on my HTC Sensation I dont have that issue. only in this kernel. Hope I'm explaining it clear enough
Click to expand...
Click to collapse
Ok thanks for explaining the issue in more detail. Do any other apps (e.g. voltage control, setcpu) work?

Wifi Broken After Flashing
I noticed that wifi wasn't working after flashing, so checked the zip for modules. They're not there.

kundica said:
I noticed that wifi wasn't working after flashing, so checked the zip for modules. They're not there.
Click to expand...
Click to collapse
I will try to address the problem tomorrow.
Sent using Tapatalk

Related

[AOSP/CM7 Kernel] 11/01/2012 ManU 2.1 - 2.6.35 based battery efficient kernels

I'm listing here 2 different 2.6.35 based kernels :
The 1.x series exist for Froyo and Gingerbread. They are based on a 2.6.35.8 linux kernel. They are CFS only (no BFS version), and forked from Richard Trip's kernels (https://github.com/richardtrip/cm-kernel)
The 2.x series are for GingerBread only. They have CFS and BFS versions. They are based on a 2.6.35.13 kernel and forked from _thalamus' kernels (https://github.com/thalamus/kernel)
All of my kernels have the following characteristics :
Go from 128Mhz to 1190Mhz. If your phone crashes at those speeds, then don't use them. Not all phones are equal and they won't all accept these frequencies.
The noop IO scheduler is defined as default. I think that all the other schedulers are unnecessary with flash disks. They are too complex and consume more CPU for the same result.
Two-way call recording thanks to avs333 (http://forum.xda-developers.com/showthread.php?t=993793)
The following characteristics are available in some kernels :
BFS. Brain F*ck Scheduler. Only available on the 2.x kernels.
CFS. Completely Fair Scheduler. Choose which scheduler suits your needs the best. Check here for a description of both : http://www.stackednotion.com/2010/06/04/what-are-bfs-and-cfs
AXI. AXI optimisation is available in some kernels : http://forum.xda-developers.com/showthread.php?t=665110. When it is enabled, the AXI bus speed is lowered to 64Mhz instead of 128Mhz when the screen is off. In the other kernels, the AXI bus speed is throttled according to the current CPU speed.
HAVS. Hybrid Adaptive Voltage Scaling. Dynamically changes the phones voltage. Should use up less battery than SVS. In comparison with Richard's original kernel, I upped the maximum voltage in the overclocking frequencies to 1350mV instead of 1300mV because it didn't seem enough (at least on my phone). I also set the minimum voltage to 900mV. I feel it's a good compromise between 875 and 925...
SVS. Static Voltage Scaling.
On the ManU kernel series, it is possible to change the voltages table on the fly using the following method. On the SVS kernel, the following method was used : http://forum.xda-developers.com/showthread.php?t=821372. See the post below for a simpler description of this
The following kernels are based on an OLD version of the Android kernel. The main advantage is the battery usage : it's very low compared to the latest kernels. The source code is available at http://github.com/eviollet/cm-kernel.
As of versions 2.1, SVS versions are no longer supported. Only HAVS versions are available.
2.6.35.13 ManU-Version 2.1 - Gingerbread ONLY
Gingerbread-HAVS-CFS ----------------
Gingerbread-HAVS-AXI-CFS ----------------
Gingerbread-HAVS-BFS ----------------
Gingerbread-HAVS-AXI-BFS ----------------
2.6.35.8 ManU-Version 1.4
Froyo-HAVS-CFS ---------------- Gingerbread-HAVS-CFS ----------------
Froyo-SVS-CFS ---------------- Gingerbread-SVS-CFS ----------------
Froyo-HAVS-AXI-CFS ---------------- Gingerbread-HAVS-AXI-CFS ----------------
Froyo-SVS-AXI-CFS ---------------- Gingerbread-SVS-AXI-CFS ----------------
Many thanks to Richard Trip for helping me out with the 1.4 kernel, and to thalamus for help on the 2.0 kernel.
Version history :
11/01/12 ManU-V2.1:
HAVS only. The voltages run from 1000mV to 1350mV which means that they should be stable on all phones. Feel free to play around with the voltages using a script, or IncrediControl
LED notification should now work on GingerVillain 2.8 and upwards thanks to Richard Trip.
Added smartassV2, thanks to erasmux.
Fixed VPN on MIUI (and perhaps other ROMs) thanks to [email protected]
Fixed "adb devices" id name bug
Fixed battery calibration
Added lazy governor thanks to Ezekeel : http://forum.xda-developers.com/showthread.php?t=1276092
Added system files to display the current state of the vdd levels
Optimized onDemand governor: ondemand: Remove the iowait-is-busy tunable code. Thanks to someone (I don't know who, sorry...)
Changed the Lazy governor default values to the ones recommended by Dr Byte (80/30000)
Added debug information in the AVS module when voltage changes occur. Especially if they fail.
Added working VPN back again (credits go to mondilv)
Started changing the AVS vdd changing logic. Now only changes the frequencies that are directly impacted.
Add WiFi screen off power level switch
Fix sound issue when using voice commands when bluetooth is connected (??)
28/05/11 ManU-V2.0:
kernel rebased on V2.6.35.13
07/04/11 ManU-V1.4:
added 2-way call recording thanks to avs333 (http://forum.xda-developers.com/showthread.php?t=993793)
updated the battery driver to be compatible with "Battery Calibrator" (https://market.android.com/details?id=net.jonrichards.batterycalibrator.ui)
ZIPs are now signed
128Mhz is now available even when the screen is on with AXI kernels
Higher BlueTooth audio sound
ManU-V1.3:
added CPU Vdd levels sysfs interface for HAVS kernels as well
changed the audio settings
changed the modules location
ManU-V1.2:
added CPU Vdd levels ("undervolt") sysfs interface for SVS kernels (http://forum.xda-developers.com/showthread.php?t=821372)
fixed video recording crashes
updated most of the drivers to most recent versions
changed the kernel name in the Android about box (now reports version number as well)
changed the zip flash to (hopefully) fix problems when flashing on phones with bad sectors
fixed some kernel versions having CPU governor performance by default
ManU-V1.1:
fix battery charging issue between 90% and 100%
disable 128Mhz when the screen is on, in the AXI kernels
ManU-V1.0: Kernel based on an old version (approx. October 2010)
V1 : Fix for IPV6 on MIUI. 6.1 and 6.1se kernels
V0 : First version : 6.1 and 6.1se kernels
FAQ:
How do I know which version I'm running? : Look at the "About the phone" screen at the kernel version. It should display which options you're currently using.
Which kernel do you recommend? : I'd say ManU-HAVS-AXI-CFS. On my phone on idle, I'm using up approx. 2-3ma/h instead of 6-7 with the default kernels with this kernel. So I'm very happy with it, and am currently using it as my main kernel. If you do any testing, feel free to tell us about your own experience!
Do you recommend any settings with SetCPU? : I currently use 128-440 conservative governor when the screen is off, and 128-1130 interactive when the screen is on and it gives good results.
After some time my phone feels sluggish. Why? : Apparently there seems to be an issue when switching governors, especially with "interactive". I recommend not to use it, or stick with it and don't change. This may be fixed in the future.
*Something* doesn't work with this kernel. Can you fix it? : First of all, my knowledge of the current state of the kernel is very limited. I just changed a few things in the DeFrost kernel to suit my taste and thought that this kernel may be of interest to some other people. If you have a problem, try explaining it, and give the following details : Name and version of your current ROM, previous kernel that worked, which version of the kernel you are now trying and any other details that may be of interest. I can't guarantee that I'll be able to fix it, because I don't develop the kernel, but I can try to help.
If you have a problem, try disabling the 128Mhz and overclocking options. They may be the culprits.
If 128Mhz saves battery, why isn't it enabled by default in other kernels? : Good question, and I don't know exactly. why. Apparently it causes issues on some phones. So, if you have a problem, try disabling 128Mhz. Also, 1190Mhz is a very high value and can also cause issues. So try lowering the maximum frequencies if you have issues.
On which ROMs do these kernels work? : 1.x series work on DeFrost 6.1, probably earlier versions as well, MIUI and GingerVillain, Redux, and probably others. The 2.x series only work on GingerBread.
On which ROMs do these kernels NOT work? : Oxygen 2. I recommend directly using _thalamus' kernels for Oxygen 2 : http://thalamus.ineige.org/kernels/2.6.35/
Here is a description of how to use the sysfs interface to configure voltage levels :
For SVS kernels, the file name is "/sys/devices/system/cpu/cpu0/cpufreq/vdd_levels" and on HAVS kernels, the file name is "/sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs".
This file is used to read the current voltage state of write new voltage settings.
How to read the settings with the HAVS interface:
connect to the phone using a terminal, or adb shell, and type "cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs". The phone will display the frequencies and the associated high and low voltages.
If you want to change the voltages, just send "echo 128000 875 1000 > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs". This will configure the minimum voltage to 875mV and max to 1000mV for the 128000 frequency.
Another useful command is "echo -25 +25 > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels_havs". This will lower the minimum voltage by 25mV and raise the maximum voltage by 25mV on ALL frequencies.
As for the SVS interface, the commands are similar.
"cat /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels" will display the frequencies and the voltages, and "echo 128000 900 > /sys/devices/system/cpu/cpu0/cpufreq/vdd_levels" will set the voltage to 900mV when the CPU is at 128Mhz.
Please note that voltages are multiples of 25mV. So, accepted values are 800, 825, 850, etc. Other values will be rounded.
There is also the possibility to visualize how the kernel is managing the HAVS voltages by using the following system files: /sys/devices/system/cpu/cpu0/cpufreq/vdd_table_havs and /sys/devices/system/cpu/cpu0/cpufreq/vdd_tables_havs
The first file lists the voltages being used for each frequency at the current temperature range.
The second file first displays the current temperature range index (starting at 0) and then the voltages being used for each frequency and for each temperature range.
The WiFi screen off power level can be configured by modifying the following file: /sys/module/bcm4329/parameters/wlLowPower
By sending 'echo 1 > /sys/module/bcm4329/parameters/wlLowPower' the WiFi will switch to low power level when the screen is switched off. By default maximum power is used at all times.
Test versions:
The following section contains test materiel. This means that I need feedback on this version, as it may (or may not) become the next official version.
For the moment, no beta/test version available.
Bien joué/Well played
difference between base and "se" version?
I'd be interested in seeing the AXI patches please, if not I'll go the hard way and fix up the ones off that thread
vivmar said:
difference between base and "se" version?
Click to expand...
Click to collapse
The base version is the current state of the art of Richard Trip's kernel, as used in DeFrost 6.1. However there seems to be battery drain issues for some using this kernel, so he put up a 6.1se version that removes all the latest patches/addons to fix the drain.
I find the normal version quite stable and works well for me, but some may prefer the se version...
I hope this answers your question?
EViollet said:
The following characteristics are available in the different kernels :
HAVS. Hybrid Adaptive Voltage Scaling. Dynamically changes the phones voltage. Should use up less battery than SVS. In comparison with Richard's original kernel, I upped the maximum voltage in the overclocking frequencies to 1350mV instead of 1300mV because it didn't seem enough (at least on my phone). I also set the minimum voltage to 900mV. I feel it's a good compromise between 875 and 925...
Click to expand...
Click to collapse
Boooo my phone works fine at 875 and 1300... but I want to try your kernels for axi....
I'll have to start work on that /proc/havs interface, since no-one else seems to want it. At least I'll have a week over xmas
Incidentally, the AXI thread you mentioned suggests that the modification is already in HTC's Desire kernel... what do they do at 128MHz?
coutts99 said:
I'd be interested in seeing the AXI patches please, if not I'll go the hard way and fix up the ones off that thread
Click to expand...
Click to collapse
I just enabled the AXI patches in the kernel. Apparently the functionnality is already included in the kernel.
Am I missing something? I must admit that I didn't look any further than that. Perhaps what I wrote is completely wrong...
EViollet said:
I just enabled the AXI patches in the kernel. Apparently the functionnality is already included in the kernel.
Am I missing something? I must admit that I didn't look any further than that. Perhaps what I wrote is completely wrong...
Click to expand...
Click to collapse
Did you patch the kernel or was it already in? Did richardtrip patch it?
Marsbar said:
Boooo my phone works fine at 875 and 1300... but I want to try your kernels for axi....
I'll have to start work on that /proc/havs interface, since no-one else seems to want it. At least I'll have a week over xmas
Incidentally, the AXI thread you mentioned suggests that the modification is already in HTC's Desire kernel... what do they do at 128MHz?
Click to expand...
Click to collapse
Do be honest, my phone also works fine at 875mV. But I had a few issues with the latest kernel that were fixed by setting it to 900mV. So I believe that 900mV is a little bit more stable. I don't intend on compiling 2 versions of the HAVS kernels, so 900mV seemed a nice compromise. Especially as quite frankly I don't see a difference in battery usage between 875 and 925...
I don't think it's worth the bother...
And as for the higher voltage for the higher speeds, it's just that I allowed HAVS to go higher. It doesn't mean that it will though. It depends on your hardware and what HAVS decides to do with it. If your phone works fine @1300mV it won't try to go any higher. HAVS adapts the voltage automatically by using 2 boundaries (high and low), and it works it's way between them...
As for the 128Mhz... the thing is that the AXI patch lowers the AXI bus to 63Mhz instead of 128Mhz. The problem is that in order to lower the CPU speed to 128Mhz, the kernel relies on the AXI bus speed. So if the AXI bus is lowered, so will the CPU. And, it will crash. Because it can't really go below 128Mhz.
That's why you can't use 128Mhz AND the AXI patch.
In any case, that's what I figured out by looking at the source code and trying it myself (I had a few crashes before understanding why... )
Regards,
coutts99 said:
Did you patch the kernel or was it already in? Did richardtrip patch it?
Click to expand...
Click to collapse
It's already in it. I doubt that Richard added it because he doesn't use it.
I guess it's already in the Cyanogen kernel (which is the base for Richard's)
EViollet said:
It's already in it. I doubt that Richard added it because he doesn't use it.
I guess it's already in the Cyanogen kernel (which is the base for Richard's)
Click to expand...
Click to collapse
Ah ok no problem, thanks
great work man, i was looking forward a kernel with hvas/bfs/noop and max freq 1190. min freq of 128 and axi are welcome!
only thing i dont like is the min freq, but its ok.
are you building straight from richard's repo? can you share the sources? and the config file?
thx!
@EViollet
First of all excellent work!
But I have one question.
You say in order to use AXI in your kernel, you have to choose at least 256MHz when the screen is on. In other words this means when it scales from 128MHz to let´s say 998 MHz AXI is automatically disabled?! So I have to choose 384MHz at SetCpu as minimum in order to use AXI?
1 issue, after enabling wifi it does nothing just keeps scanning.
Its necessary to turn airplane on/off or reboot.
Im using bfs havs axi @ 1190 max.
Sent from my HTC Desire using XDA App
crapula512 said:
great work man, i was looking forward a kernel with hvas/bfs/noop and max freq 1190. min freq of 128 and axi are welcome!
only thing i dont like is the min freq, but its ok.
are you building straight from richard's repo? can you share the sources? and the config file?
thx!
Click to expand...
Click to collapse
I'm adding a tgz file to the first post that lists all the changes I made to Richard's source code, and the configuration files I created for all the kernels. Hope this helps.
Tweak³ said:
@EViollet
First of all excellent work!
But I have one question.
You say in order to use AXI in your kernel, you have to choose at least 256MHz when the screen is on. In other words this means when it scales from 128MHz to let´s say 998 MHz AXI is automatically disabled?! So I have to choose 384MHz at SetCpu as minimum in order to use AXI?
Click to expand...
Click to collapse
If you use AXI, the CPU frequency must be higher than 128Mhz when the screen is on. If you leave 128Mhz, in reality it will get much lower, so will eventually crash.
So, the values I use are :
Screen off : 128-450
Screen on : 256-1190
Regards,
crapula512 said:
1 issue, after enabling wifi it does nothing just keeps scanning.
Its necessary to turn airplane on/off or reboot.
Im using bfs havs axi @ 1190 max.
Sent from my HTC Desire using XDA App
Click to expand...
Click to collapse
Hi.
I'm afraid I won't be able to do much here.
I'm not a developper of the kernel, so I don't know where to start.
Which ROM are you using? And which version of the kernel? 6.1? Or 6.1se?
Regards,
6.1se, rom is ginger villain 0.2.
I think its kernel related as it was working fine with 6.0c.
maybe is just a coincidence, but today benee updated his vorkkernel and ppl was having this same problem and later on he made anew version with wifi fixed.
Hope that helps and good work!
Sent from my HTC Desire using XDA App
crapula512 said:
6.1se, rom is ginger villain 0.2.
I think its kernel related as it was working fine with 6.0c.
maybe is just a coincidence, but today benee updated his vorkkernel and ppl was having this same problem and later on he made anew version with wifi fixed.
Hope that helps and good work!
Click to expand...
Click to collapse
OK. Thanks for the update.
Did you try the 6.1 kernel? It has more a more recent WiFi driver. Maybe it works better...
Edit : I just checked GingerVillain 0.4 and can confirm that the WiFi driver doesn't work correctly.
It ends up connecting but it takes a VERY VERY long time to scan.
The WiFi update in the CyanogenMod kernel probable fixes this, so I'll have a look into it.
But, for the moment I'm afraid there is no support for Gingerbread...
Regards,

[KERNEL][JUL.17]Bricked-3.0|3.0.36|v1.4|cmdline|Sweep2Wake|mpdecision|bad ass

SENSE Bricked-Kernel-3.0 Sensation (pyramid)
The first kernel with kernel mpdecision & 3-phase kernel thermal control
no need for those binaries anymore ​
Highlights:
Default clocks: 1566Mhz max / 192Mhz min
OverClockable till 1944Mhz !NOT ALL DEVICES CAN HANDLE THIS!
3D GPU Overclock @ 320Mhz (if selected during install)
2D GPU Overclock @ 266.667Mhz (if selected during install)
5 Stages 3D GPU scaling, variable io_fraction
3 Stages 2D GPU scaling, io_fraction 100
Increased bus bandwidth
L2 Performance Boost
cmdline options!
maximum screen off frequency
(configurable through cmdline options)
Sweep2Wake! (if selected during install)
>badass governor<
3-phase kernel cpu thermal control
>100% kernel based mpdecision<
The first kernel with interactive install using Aroma Installer by amarullz
with more customizations than you can dream of on any other kernel!​
Features:
Code:
[U]* CM (AOSP) compatible version: See below![/U]
* 3.0.36
* based on HTCs-3.0.16-Sources
* Tested with Sense 3.6 ICS (no known problems)
* Tested with Sense 4 ICS (animations work, thx to virtuous)
* Command Line Options - innovative!
__ Rename the zip to change your settings!
* Sweep2Wake
* badass governor
* 3-phase kernel cpu thermal control
* 100% kernel based mpdecision
* Optimized
* Built with highest Optimization Level (O3)
* Strongly improved UI-performance
* KGSL Early Suspend GPU slumber
* Increased 3D/2D-Performance (GPUOC)
* CAF Bluetooth stack (newer) - faux123
* CIFS
* UTF8 encoding (included for CIFS)
* wifi pm=fast
* Tweaked ondemand governor
* Undervoltage
* Overclocking to 1566Mhz default
* Min Clock @ 192Mhz default
* Boot time optimization. CPU will have 1566Mhz clocks during boot to ensure a fast bootup
* Flashlight and Camera-Flash will now be useable until battery reaches 5%
* Tree-based preemptible RCU
* Fast scheduler for CPU hotplug
* optimized preemptive settings
* basic NTFS support
* Userspace driven configuration filesystem
* Allow CPU-supported unaligned accesses
* Global CPU Voltage table used for adjusting voltage table for SnapDragon Dual Core. Inspired by Snq- modified by faux123 for SnapDragon fixed by show-p1984
* Improved Mobile Connection (fixed possible freezes introduced by HTC)
* ~8% Undervolted till 1566Mhz
* L2 Performance Push
* 3D GPU Overclock @ 320Mhz
* 2D GPU Overclock @ 266.667Mhz
* 6 Stages 3D GPU scaling, variable io_fraction
* 3 Stages 2D GPU scaling, io_fraction 100
* Tweaked ondemand to raise frequencies with higher load only (should contribute to battery life)
* Increased writing performance (lowers that annoying lag when updating 2 apps at the same time)
* Git's Sha1 implementation significantly decreases boot time
* CRC-optimizations
* ZRAM
* Fudgeswap
* PPP over standard asynchronous serial ports
* PPP over synchronous (HDLC) tty devices
* [URL="http://dl.dropbox.com/u/44206202/CallRecorder_v.1.0.20_alpha_2.apk"]Two-Way-Call-Recording[/URL]
* basic NTFS support
* increased bus frequency
* Improved WIFI - WLAN detection
* Automatic process group scheduling
* Lowered wifi-voltage
* cleaned code, improved performance
* Dropped debug code, was slowing things down
Changelog @ bricked.dehttp://bricked.de/compat.php?action=changelogs&device=pyramid&type=sense
What is sweep2wake?
Since this function collides with HTC's screenshot function (PWR+HOME) it will be disabled. Use the AOSP screenshot instead. (PWR+VOL.DOWN at the same time and hold it for about a sec)
This has a few advantages, one is a nice animation the second would be that it is hardcoded by google into any ICS firmware you can find. That means: no matter which device you will pick up, as long as it has ICS this function should work out of the box.​
How to change your frequency/governor before flashing?
That's new. Sounds strange, but it works. I am proud to present a truly innovative concept:
cmdline_khz / cmdline_gov / cmdline_maxscroff
What does this do for you?
Have you ever wished you could set the default min/max/gov/scroff frequency on your own?
Without having to rely on the dev to recompile?
Or doing it yourself?
Or even bothering to learn how to do that?
Or using OC apps that are just in the way?
(governor set able in setup from version 1.0)
Well, your prayers have been heard!
It simplifies any kernel install to the bare minimum. You download the zip, and just change the values to your liking. The kernel will obey you, it's magic!
you will download this file for example:
Bricked-3.0-v0.61-ics-maxkhz=1566000-minkhz=192000-maxscroff=432000.zip
now it is possible that you don't want to oc to 1566Mhz, or your preferred min freq is higher, or or or...
Just rename the file!
Bricked-3.0-v0.61-ics-maxkhz=1188000-minkhz=384000-maxscroff=540000.zip
The kernel will now boot from second 0 with this settings:
Max freq: 1188Mhz
Min freq: 384Mhz
maxscroff: 540Mhz
Cool, isn't it?
Now one could say, hell that's too dangerous, what if I write something wrong in there? No problem, your show-p1984 thought of everything. I have built in that much security measures that it is not even remotely imaginable that something could go wrong. I am serious. Whoever manages to break it gets a golden pile of **** from me.
Now what does it "autocorrect" exactly?
It corrects mhz instead of khz values for you, so you can actually flash this:
Code:
Bricked-3.0-v0.61-ics-maxkhz=1188-minkhz=384-maxscroff=540.zip
and it will still work.
Or it corrects wrong acpu frequencies. You can find a table @ the second post, but if you mistype sth, no fear, it will still work!
Code:
Bricked-3.0-v0.61-ics-maxkhz=1190-minkhz=390-maxscroff=545.zip
for example will let the kernel boot with 1188Mhz max and 384Mhz min (maximum screen off frequency 540Mhz). It always falls back to the next lower step. Actually you won't need to bother for the acpu table anymore, just type anything in there, it will automatically correct it for you! If you still want to enter the correct values, just look in the second post
Now what if you write a letter in there? Like this:
Code:
Bricked-3.0-v0.61-ics-maxkhz=II88000-minkhz=38A000-maxscroff=5A0O00.zip
Well, the kernel will detect that and fall back to default settings read out of my .config. Which means the kernel will boot @ 1566Mhz max and 192Mhz min and maxscroff will be set to 1566Mhz (=disabled).
What to do if you just want to change your clocks?
Rename the zip file, boot into recovery, flash, and enjoy
There is also a sysfs interface for the maxscroff frequency, for simplicity I kept the common name for it.
/sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
Currently there is only one limitation:
You can't have two files with the same base on your scard. that means:
Code:
Bricked-3.0-v0.61-ics-maxkhz=1566000-minkhz=192000-maxscroff=432000.zip
Bricked-3.0-v0.61-ics-maxkhz=1188000-minkhz=384000-maxscroff=540000.zip
are not allowed to be on the sdcard at the same time, the kernel would boot with defaults: 1566/192 if you flash either one of those files.
The "base" of the filename is this: Bricked-3.0-v0.61-ics-
So you can have 2 files (or more) on the sdcard with names like this:
Bricked-3.0-v0.55-b4-ics-****
Bricked-3.0-v0.7-ics-****
Bricked-3.0-v0.8-ics-****
(****=etc etc etc etc)
Furthermore it must be followed by maxkhz=VALUE-minkhz=VALUE-maxscroff=VALUE.zip It is not possible to switch the positions of the options. But you can leave them out of there completely, the kernel will then boot with 1566/192/1566.
Ah btw: We now see our set max mhz under Settings->About Phone->HW->Cpu (it actually changes when you change your maxkhz)
This is genuine innovative code from me. I didn't even occasional glance at someone elses work. So if sth like this is already out there, SCREW THE DEV because I did not see it and wrote it from scratch!
And since 0.6 comes with the awesome Aroma installer you can now choose from 3 gpuoc versions!
GPU OC disabled, [email protected] & [email protected]
GPU low overclock, [email protected] & [email protected]
GPU high overclock, [email protected] & [email protected] + Bandwidth push
The source for this is split into two parts, Kernel & bash script. The script finds the zip on your sdcard, parses the filename and modifies the kernels cmdline inside the boot.img. The Kernel is parsing the cmdline, checking if everything is valid and setting your options.​
How to install?
Just flash from recovery. Because it creates a boot.img out of the one on your phone while flashing, it should work with the majority of ROMs out there.
Interactive install, enjoy the ride! ​
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://code.google.com/p/bricked/issues/entry
[email protected]
IRC Chat: Freenode IRC #bricked​
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<
XDA Discussion/Download for AOSP (ICS): Click me
Old Downloads (gcode): Click Me
​
Use System Tuner to undervolt!
Setting min/max frequencies should be done over the zips name instead.
​
Donor List:​
> Hall of fame <
With special thanks to all piggy bank donators!
Thank you very much!​
Source:
​
Changelog moved to bricked.dehttp://bricked.de/index.php?action=changelogs&device=pyramid&type=sense
What does PREEMPTIBLE mean?
Preemptive built kernels are favoring the userinterface over everything else! That means: An app in the background is using 50% of you CPU to spy on you. You want to move fast through the user interface/watch a video, whatever. The kernel will now favor your action over the app in the background. That's all the magic that's happening ​What is badass?
Well good question. With ICS I decided to rework my gb badass which never got released because it was always pushed aside. To break down what it is:
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 918Mhz and therefore stay cool and will use less power. To trigger a frequency increase, the system must run a bit @ 918Mhz with high load, then the frequency is bumped to 1188Mhz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 1-2 seconds, depending on the load your system is experiencing)
Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1188Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Please remember: Due to it's nature, this is not a benchmark governor. It is meant as a governor that gives you a smooth experience while saving battery, lots of it ​What is msm_thermal?
Kernel based 3-phase thermal control!
This replaces your /system/bin/thermald binary which is renamed by the installer to thermald_backup.
Check /sys/kernel/msm_thermal/conf/ for the thermal configuration
allowed_max_high = highest threshold (phase 3)
allowed_max_low = remove the throttling if we cooled down to this (clr_thrshold)
allowed_max_freq = max frequency if throttled (limit)
[...]mid[...] = same as above, just for phase 2
[...]low[...] = Lowest threshold (phase 1)
check_interval_ms = how often shall we check? (sampling rate)
Default: 1000ms (=1sec)
If you want to see msm_thermal doing it's job:
Code:
adb shell
cat /proc/kmsg | grep 'msm_thermal'
What is msm_mpdecision?
100% kernel based multi core decision! (should cpu1 be online or not?)
This replaces your /system/bin/mpdecision binary which is renamed by the installer to mpdecision_backup.
Check /sys/kernel/msm_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (70000)
delay = time between checks (500)
pause = if something else plugs in the cpu, fall asleep for 10000
scroff_single_core = if the screen is off, don't plug in cpu1 (1)
nwns_threshold_up = runqueue threshold, if this is reached cpu1 will be hotplugged (35)
nwns_threshold_down = runqueue threshold, if this is reached cpu1 will be unplugged (5)
twts_threshold_up = time threshold, this amount of time must have passed (250)
twts_threshold_down = same as above (250)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
idle_freq = a value against that will be checked if a core +/- is requested. (486000)
If cpu0 is below that value and a core up of cpu1 is requested, nothing will happen.
If cpu1 is above that value and a core down of cpu1 is requested, nothing will happen. (otherwise it would now put down cpu1 even though it is still working)
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
Frequency/Voltage Table:
192000: 800000
310500: 825000
384000: 825000
432000: 850000
486000: 850000
540000: 875000
594000: 875000
648000: 900000
702000: 900000
756000: 925000
810000: 950000
864000: 975000
918000: 975000
972000: 1000000
1026000: 1000000
1080000: 1025000
1134000: 1025000
1188000: 1050000
1242000: 1075000
1296000: 1100000
1350000: 1125000
1404000: 1150000
1458000: 1150000
1512000: 1175000
1566000: 1175000
1620000: 1200000
1674000: 1225000
1728000: 1250000
1782000: 1275000
1836000: 1300000
1890000: 1325000
1944000: 1350000​Available CPU governors:
badass <-- !recommended!
lazy
interactive
lagfree
conservative
userspace
powersave
ondemand
performance​
Stock Kernel for ICS. Unsecured boot.img.
Want a beer?
Znuff said:
Want a beer?
Click to expand...
Click to collapse
two, at least! xD
show-p1984 said:
77 virgins? I would rather have 77 *****es who know what the **** to do!
Click to expand...
Click to collapse
hahaha that made my morning
Sent from my HTC Sensation 4G using XDA App
I have a couple questions, why still use governors or give options when ondemand is the only one that works properly on aSMP?
Or have you found a way to make governors still on both cores?
And this line:
Code:
Synchronous Multicore Threading
Android itself doesn't support true Multi threading at the core OS level, though it allows for apps to be multi-threaded.
What changes have you made to make this statement true.
BrokenWall said:
I have a couple questions, why still use governors or give options when ondemand is the only one that works properly on aSMP?
Or have you found a way to make governors still on both cores?
Android itself doesn't support true Multi threading at the core OS level, though it allows for apps to be multi-threaded.
Click to expand...
Click to collapse
1. Because ppl asked me to include Smartassv2. (ppl = baadnwz xD)
2. Android 2.3.4 has a bit of Honeycomb in it. It supports Multithreading.
Smartass doesn't seem to work as well as it used to on Bravo. Ondemand seems to be the way forward, plus CPU load balancing once threshold is reached. IMHO.
Sent from my HTC Sensation Z710e using XDA App
Re. your post in IC thread. With 0.2 I was getting 13k+, and other values higher than yours, just can't remember what they were exactly. How do I revert to 0.2, just flash it on top? Just for test purpose.
Again. No UI improvement over stock with either of them.
Sent from my HTC Sensation Z710e using XDA App
tinky1 said:
Re. your post in IC thread. With 0.2 I was getting 13k+, and other values higher than yours, just can't remember what they were exactly. How do I revert to 0.2, just flash it on top? Just for test purpose.
Again. No UI improvement over stock with either of them.
Sent from my HTC Sensation Z710e using XDA App
Click to expand...
Click to collapse
Yes, just flash it on top.
tinky1 said:
Re. your post in IC thread. With 0.2 I was getting 11k+, and other values higher than yours, just can't remember what they were exactly. How do I revert to 0.2, just flash it on top? Just for test purpose.
Again. No UI improvement over stock with either of them.
Edited, sorry, typo.
Sent from my HTC Sensation Z710e using XDA App
Click to expand...
Click to collapse
Oh crap, why do i keep quoting myself when I want edit. 11k+ that was.
Sent from my HTC Sensation Z710e using XDA App
Ok.
v0.2
ondemand 11568,1946(???),5794 (392-1.5); 11744,1982,5886 (1.3-1.5)
performance 11621,3368,6669 (1.3-1.5) 11399,3010,6365 (392-1.5)
BTW, System Tuner is able to adjust frequency
Damn, Cf is killing my battery. Mind you, been flashing, benchmarking, xda-ing etc since 7am, so 10.5h in and i'm still at 21%.
tinky1 said:
Ok.
v0.2
ondemand 11568,1946(???),5794 (392-1.5); 11744,1982,5886 (1.3-1.5)
performance 11621,3368,6669 (1.3-1.5) 11399,3010,6365 (392-1.5)
BTW, System Tuner is able to adjust frequency
Damn, Cf is killing my battery. Mind you, been flashing, benchmarking, xda-ing etc since 7am, so 10.5h in and i'm still at 21%.
Click to expand...
Click to collapse
i feel advertising for IC :B
Great job on the kernel, I just wanted to ask if you can include call recording maybe in the next release? That would be nice. Thanks and keep up the great work!
Sent from my HTC Sensation Z710e using xda premium
baadnewz said:
i feel advertising for IC :B
Click to expand...
Click to collapse
Well, score maniacs are going to jump the wagon lol.
IC 2.2.5 remember?
tinky1 said:
Well, score maniacs are going to jump the wagon lol.
IC 2.2.5 remember?
Click to expand...
Click to collapse
well 2.2.5 is still IC )
baadnewz said:
well 2.2.5 is still IC )
Click to expand...
Click to collapse
Baad, seriously, revert to 2.2.5 and close the thread LOL
Just ran bench on v0.2 with 2.2.5 again
noooooow, i'm shocked actually.
ondemand, (392-1.5 default freq) 11662,3376,6690
Will run it for few days, and if battery is close to stock (which it should be) it's a keeper for me, will replace my current stable nandroid
smartassv2 is working good
show-p1984 said:
1. Because ppl asked me to include Smartassv2. (ppl = baadnwz xD)
2. Android 2.3.4 has a bit of Honeycomb in it. It supports Multithreading.
Click to expand...
Click to collapse
it added features for better support, but the OS is still not anything close to what Honeycomb can do with multiple cores. 2.3.4 mainly improved support for multithreaded apps.
vladnosferatu said:
smartassv2 is working good
Click to expand...
Click to collapse
set the governor and then run a bench like cf-bench then in adb shell type this:
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
it should return the set governor if it still says ondemand then its not setting it for both cores. Also if you change cpu1 to cpu0 it will show you what the primary core is doing.

[KERNEL][JUN.24]Bricked-3.0-AOSP|3.0.36|v1.31|cmdline|Sweep2Wake|mpdecision|ba dass

AOSP Bricked-Kernel-3.0 Sensation (pyramid)
The first kernel with kernel mpdecision & 3-phase kernel thermal control
no need for those binaries anymore ​
Highlights:
Default clocks: 1566Mhz max / 192Mhz min
OverClockable till 1944Mhz !NOT ALL DEVICES CAN HANDLE THIS!
3D GPU Overclock @ 320Mhz (if selected during install)
2D GPU Overclock @ 266.667Mhz (if selected during install)
5 Stages 3D GPU scaling, variable io_fraction
3 Stages 2D GPU scaling, io_fraction 100
Increased bus bandwidth
L2 Performance Boost
cmdline options!
maximum screen off frequency
(configurable through cmdline options)
Sweep2Wake! (if selected during install)
>badass governor<
3-phase kernel cpu thermal control
>100% kernel based mpdecision<
The first kernel with interactive install using Aroma Installer by amarullz!
and more customizations than you can dream of on any other kernel!​
Features:
Code:
* 3.0.36
* based on HTCs-3.0.16-Sources
* Command Line Options - innovative!
__ Rename the zip to change your settings!
* Sweep2Wake
* badass governor
* phase kernel cpu thermal control
* 100% kernel based mpdecision
* KSM support
* Optimized
* Built with highest Optimization Level (O3)
* Strongly improved UI-performance
* KGSL Early Suspend GPU slumber
* Increased 3D/2D-Performance (GPUOC)
* CAF Bluetooth stack (newer) - faux123
* CIFS
* UTF8 encoding (included for CIFS)
* wifi pm=fast
* Tweaked ondemand governor
* Undervoltage
* Overclocking to 1566Mhz default
* Min Clock @ 192Mhz default
* Boot time optimization. CPU will have 1566Mhz clocks during boot to ensure a fast bootup
* Flashlight and Camera-Flash will now be useable until battery reaches 5%
* Tree-based preemptible RCU
* Fast scheduler for CPU hotplug
* optimized preemptive settings
* basic NTFS support
* Userspace driven configuration filesystem
* Allow CPU-supported unaligned accesses
* Global CPU Voltage table used for adjusting voltage table for SnapDragon Dual Core. Inspired by Snq- modified by faux123 for SnapDragon fixed by show-p1984
* Improved Mobile Connection (fixed possible freezes introduced by HTC)
* ~8% Undervolted till 1566Mhz
* L2 Performance Push
* 3D GPU Overclock @ 320Mhz
* 2D GPU Overclock @ 266.667Mhz
* 6 Stages 3D GPU scaling, variable io_fraction
* 3 Stages 2D GPU scaling, io_fraction 100
* Tweaked ondemand to raise frequencies with higher load only (should contribute to battery life)
* Increased writing performance (lowers that annoying lag when updating 2 apps at the same time)
* Git's Sha1 implementation significantly decreases boot time
* CRC-optimizations
* ZRAM
* Fudgeswap
* [URL="http://dl.dropbox.com/u/44206202/CallRecorder_v.1.0.20_alpha_2.apk"]Two-Way-Call-Recording[/URL]
* basic NTFS support
* increased bus frequency
* Improved WIFI - WLAN detection
* Automatic process group scheduling
* Lowered wifi-voltage
* cleaned code, improved performance
* Dropped debug code, was slowing things down
Changelog @ bricked.dehttp://bricked.de/compat.php?action=changelogs&device=pyramid&type=aosp
What is sweep2wake?
How to change your frequency/governor before flashing?
!!!! READ THIS !!!!​
That's new. Sounds strange, but it works. I am proud to present a truly innovative concept:
cmdline_khz / cmdline_gov / cmdline_maxscroff
What does this do for you?
Have you ever wished you could set the default min/max/gov/scroff frequency on your own?
Without having to rely on the dev to recompile?
Or doing it yourself?
Or even bothering to learn how to do that?
Or using OC apps that are just in the way?
(governor set able in setup from version 1.0)
Well, your prayers have been heard!
It simplifies any kernel install to the bare minimum. You download the zip, and just change the values to your liking. The kernel will obey you, it's magic!
you will download this file for example:
Bricked-3.0-v0.61-ics-maxkhz=1566000-minkhz=192000-maxscroff=432000.zip
now it is possible that you don't want to oc to 1566Mhz, or your preferred min freq is higher, or or or...
Just rename the file!
Bricked-3.0-v0.61-ics-maxkhz=1188000-minkhz=384000-maxscroff=540000.zip
The kernel will now boot from second 0 with this settings:
Max freq: 1188Mhz
Min freq: 384Mhz
maxscroff: 540Mhz
Cool, isn't it?
Now one could say, hell that's too dangerous, what if I write something wrong in there? No problem, your show-p1984 thought of everything. I have built in that much security measures that it is not even remotely imaginable that something could go wrong. I am serious. Whoever manages to break it gets a golden pile of **** from me.
Now what does it "autocorrect" exactly?
It corrects mhz instead of khz values for you, so you can actually flash this:
Code:
Bricked-3.0-v0.61-ics-maxkhz=1188-minkhz=384-maxscroff=540.zip
and it will still work.
Or it corrects wrong acpu frequencies. You can find a table @ the second post, but if you mistype sth, no fear, it will still work!
Code:
Bricked-3.0-v0.61-ics-maxkhz=1190-minkhz=390-maxscroff=545.zip
for example will let the kernel boot with 1188Mhz max and 384Mhz min (maximum screen off frequency 540Mhz). It always falls back to the next lower step. Actually you won't need to bother for the acpu table anymore, just type anything in there, it will automatically correct it for you! If you still want to enter the correct values, just look in the second post
Now what if you write a letter in there? Like this:
Code:
Bricked-3.0-v0.61-ics-maxkhz=II88000-minkhz=38A000-maxscroff=5A0O00.zip
Well, the kernel will detect that and fall back to default settings read out of my .config. Which means the kernel will boot @ 1566Mhz max and 192Mhz min and maxscroff will be set to 1566Mhz (=disabled).
What to do if you just want to change your clocks?
Rename the zip file, boot into recovery, flash, and enjoy
There is also a sysfs interface for the maxscroff frequency, for simplicity I kept the common name for it.
/sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
Currently there is only one limitation:
You can't have two files with the same base on your scard. that means:
Code:
Bricked-3.0-v0.61-ics-maxkhz=1566000-minkhz=192000-maxscroff=432000.zip
Bricked-3.0-v0.61-ics-maxkhz=1188000-minkhz=384000-maxscroff=540000.zip
are not allowed to be on the sdcard at the same time, the kernel would boot with defaults: 1566/192 if you flash either one of those files.
The "base" of the filename is this: Bricked-3.0-v0.61-ics-
So you can have 2 files (or more) on the sdcard with names like this:
Bricked-3.0-v0.55-b4-ics-****
Bricked-3.0-v0.7-ics-****
Bricked-3.0-v0.8-ics-****
(****=etc etc etc etc)
Furthermore it must be followed by maxkhz=VALUE-minkhz=VALUE-maxscroff=VALUE.zip It is not possible to switch the positions of the options. But you can leave them out of there completely, the kernel will then boot with 1566/192/1566.
Ah btw: We now see our set max mhz under Settings->About Phone->HW->Cpu (it actually changes when you change your maxkhz)
And since 0.6 comes with the awesome Aroma installer you can now choose from 3 gpuoc versions!
GPU OC disabled, [email protected] & [email protected]
GPU low overclock, [email protected] & [email protected]
GPU high overclock, [email protected] & [email protected] + Bandwidth push
The source for this is split into two parts, Kernel & bash script. The script finds the zip on your sdcard, parses the filename and modifies the kernels cmdline inside the boot.img. The Kernel is parsing the cmdline, checking if everything is valid and setting your options.​
How to install?
Just flash from recovery. Because it creates a boot.img out of the one on your phone while flashing, it should work with the majority of ROMs out there.
Interactive install, enjoy the ride! ​
Where to complain about errors/bugs?
Please use the Issuetracker for bugs/errors/feature wishes!
Issuetracker @ https://code.google.com/p/bricked/issues/entry
[email protected]
IRC Chat: Freenode IRC #bricked​
Download:
No Guarantees! If it kills your grandmother or your device, I am NOT responsible! If you understand this:
(If you download, please hit Thanks below my post! Thank you!)
>>> DOWNLOAD <<<
Old Downloads (gcode): Click Me​
Use System Tuner to undervolt!
Setting min/max frequencies should be done over the zips name instead.
​
Donor List:​
> Hall of fame <
With special thanks to all piggy bank donators!
Thank you very much!​
Source:
​
Some more information @ http://forum.xda-developers.com/showpost.php?p=17430308&postcount=2
Thanks, WORKS AWESOME!
Still works pretty good, makes my battery drain even less on CM9 while using no S2W!
#reserved
10chars
You stole my second post!
Thank you
Show, i don't really know about all and i think i mght be a "noob" user compared to you or lot of members here but well i'm not blonde
Could you please explain the difference beetween CM7 kernel and the V0.86 ? i don't get what CM7 is and if it's better than the V 0.86 v on our other post ?
Catpoule said:
Show, i don't really know about all and i think i mght be a "noob" user compared to you or lot of members here but well i'm not blonde
Could you please explain the difference beetween CM7 kernel and the V0.86 ? i don't get what CM7 is and if it's better than the V 0.86 v on our other post ?
Click to expand...
Click to collapse
CM7 is CayanogenMod 7 = AOSP kind of Android.
You can download it here: Sensation CM7 SelfKang Alphafied
man, sounds awesome! i'll give it a go... thanks
edit:
very very nice! super smooth man... great job!
edit 2:
BT no workie for me at least, can't even get it to turn on.
May be alpha but it flies - no glitches so far.
mweulink said:
Thanks, WORKS AWESOME!
Good job!
Click to expand...
Click to collapse
+1 to that.
I've done the run of the ROMS last 6 weeks and it's been fun so I decided to try CM7 again (MyTouch4G) and boy am I reminded of what smooth and simple feels like!
and that was before flashing shows kernel.
Now? Wow!
Yup it flies! and the scores below were taken without using a daemon or app to overclock - only the Alpha V0.1 kernel doing its thing.
Nice work. One thing I notice right off the bat is BT is totally killed with this kernel.
Sent from my Sensation using XDA App
Have a St. Pauli Girl or two
Hey man enjoy the beers 54S273734X9251808 and thanks again...
-Punisher- said:
Hey man enjoy the beers 54S273734X9251808 and thanks again...
Click to expand...
Click to collapse
Thank you very much!
Sleepytime28 said:
Nice work. One thing I notice right off the bat is BT is totally killed with this kernel.
Sent from my Sensation using XDA App
Click to expand...
Click to collapse
Can you pair with bt and there is just no audio or can you not pair and its completely non functional? The only reason I ask is my bt has always worked with cm7 even though there are reports it doesn't. I guess I have a lucky bt headset.
Sent from my Sensation 4G
BT is not working at all, can not even turn it on.
Overall this kernel is very fast and very smooth.
Downloading. will report back .. nice work mate.
been one day since i asked about cm7 version and you already smoked one out... excellent work!
You are the man show! If this is anything like your sense kernels we are all in for a treat. You def. are great adittion to our Sensation Community! Thank you again, bro!
Does this work with the leastest cm7 alpha3???
DroidRC1 said:
Does this work with the leastest cm7 alpha3???
Click to expand...
Click to collapse
I'm using it on alpha 3, no problems yet.
Sent from my Sensation using Tapatalk
quierotacobell said:
I'm using it on alpha 3, no problems yet.
Sent from my Sensation using Tapatalk
Click to expand...
Click to collapse
Thanks! Downloading now
Nice work. Ever since I've started running OC'd kernels I just can't stand going back to normal.Even just at your default speeds the whole UI experience just feels snappier. Thanks!
--edit-- I can verify that bt will not power up anymore. With the oe kernel it used to start (hands free calling didn't work with my car), but it started lol. Now I got zip...
Anyone here able to compare this to fauxs cm7 kernels? I am on cm7 version 1 with fauxs kernel.
Matt

[KERNEL][GB SENSE][05/10-2011]tristan202-gb-desire v05 (OC/UV/HAVS/BFS/CFS/V(R))

This is my personal kernel, that I decided to release now. It is extremely lean to minimize memory footprint and optimize perfomance. It is built from HTC official GB sources, with some of bananacakes, siberes, snq-s and my own patches. I intend to keep it at 2.6.35.10, as I see more problems than advantages in upstreaming to newer revisions.
Features:
-Hybrid adaptive voltage scaling (HAVS)
-V(R) i/o scheduler
-TinyRCU
-Overclock up to 1190
-Undervolt
-Ondemand, Virtuous and SmartassV2 governors (I use Virtuous for wake and Ondemand for sleep)
-AXI
-Lowered WiFi voltage
-EXT4 support
-snq-'s Autobrightnessmod (Enable all 10 levels)
-sibere's Battfix
-USB fast charge
-Optional 2 way call recording
-Hardcoded SD Speed Patch to 2048. No need for init script anymore
-Hardcoded highly tweaked Lowmemkiller (3584,4096,8192,20992,23040,25088). Throw away Autokiller and/or init scripts.
To make it more lean, I have disabled EXT2 support. SWAP isn't supported either, as I find it completely useless.
I have added CIFS and TUN as modules. To install, download and extract the file and push it to /system/lib/modules like so:
Code:
adb remount
adb push cifs.ko /system/lib/modules/cifs.ko
adb push tun.ko /system/lib/modules/tun.ko
And add the following line to your modules init script:
Code:
insmod /system/lib/modules/cifs.ko
insmod /system/lib/modules/tun.ko
The kernel comes in 2 flavors. BFS and CFS. Differences between them are here:
BFS - Brain F**k Scheduler
The scheduler essentially handles CPU resource allocation. It controls how the CPU ramps up in frequency and down again when not needed. The BFS version is generally very snappy (possibly more so than CFS) but is an older scheduler. It is designed to minimise latency on low spec'd machines (desktops generally)
Further details here:
http://en.wikipedia.org/wiki/Brain_****_Scheduler
CFS - Completely Fair Scheduler
This particular scheduler is newer than BFS. It is designed to make the best of High end machines (desktops again). In the early days, CFS seemed much laggier than BFS but now there is not too much in it. I am quite happily running a modern CFS kernel and I don't experience any lag issues.
Further details here:
http://en.wikipedia.org/wiki/Completely_Fair_Scheduler
I am aware that the BFS version throws some errors about 'bad cgroup data' in logcat, I haven't been able to get rid of them. I have disabled everything cgroup related in the kernel, but vm still throws the errors. Don't know why. Doesn't seem to impact performance.
I personally use the BFS version, as I find it somewhat faster than the CFS one. I have absolutely no wake lag, and I get good battery time.
Thanks go out to: snq-, bananacakes, sibere, tobi01001, thalamus, eviollet. If I forgot anyone, pls inform me.
CHANGELOG:
V05:
XZ compression
Fixed Wifi sleep
Tweaked OJ settings for better responsiveness (bananacakes)
Changed ramdisk compression method to gzip.
Rebuilt tun.ko and cifs.ko
v04b:
Fixed WIFI. (My bad. Forgot to adapt install script after including new ramdisk.)
v04:
Added Lowmemkiller tweak to ramdisk (3584,4096,8192,20992,23040,25088) No need for Autokiller or init scripts anymore. Over time I will move more tweaks into the ramdisk to minimize the need for init scripts.
Updated BFS to 0.406
Reverted battery gauge polling to 60 secs.
Added Virtuous governor. Virtuous is a highly tweaked SmartassV2.
Removed Lagfree governor again, as I found OndemandX better.
v03:
Hardcoded SD Speed Tweak to 2048. No need for init script anymore
Made 2-way call recording optional. Check downloads
Reduced battery gauge polling from 60 to 5 secs. (Untested)
A few bits more, can't remember it all.
v02:
Added Lagfree governor. Gives me a wee bit better battery, but sometimes lags when listening to music. Maybe I'll remove it again. Tell me what you think.
Added a minor change from tobi01001 to the lightsensor driver. Details here
Hopefully fixed USB fast charge.
Compiler optimizations
Link to my github: https://github.com/tristan202
Earlier i heard lot's of people complaining about reboots / hang up's when browsing internet with lowered WIFI voltages, i will give it a try today anyway thanks.
k3lcior said:
Earlier i heard lot's of people complaining about reboots / hang up's when browsing internet with lowered WIFI voltages, i will give it a try today anyway thanks.
Click to expand...
Click to collapse
I have been running with lowered wifi voltage for a few days without any problems at all. Doesn't browse much though, but market another wifi stuff have been working fine.
I'll give you feedback soon.
Thx and congratz.
Tapatalking.
tristan202 said:
I have been running with lowered wifi voltage for a few days without any problems at all. Doesn't browse much though, but market another wifi stuff have been working fine.
Click to expand...
Click to collapse
I've been using your kernel for several weeks now (tried all the rest) is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?
Thanks a lot mate the combination of HAVS, BFS, 1190 OC with UV to 825 working very nicely for me
beanbean50 said:
is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?
Click to expand...
Click to collapse
Just ask HTC they know everything about your phone
beanbean50 said:
I've been using your kernel for several weeks now (tried all the rest) is this the same as your other one or have you tweaked it some more? and is there any chance you can add Sib's battfix?
Click to expand...
Click to collapse
siberes battery fix is included, and I have been making some tweaks to since the last release. Some minor stuff, but still some improvement.
tristan202 said:
siberes battery fix is included, and I have been making some tweaks to since the last release. Some minor stuff, but still some improvement.
Click to expand...
Click to collapse
wow, many thanks....
is there much difference between the 2 governors ondemandx and smartassV2...?
Autobrighness mod is included (10 positions in arrays.xml)???
Tapatalking.
ziggy1001 said:
Thanks a lot mate the combination of HAVS, BFS, 1190 OC with UV to 825 working very nicely for me
Just ask HTC they know everything about your phone
Click to expand...
Click to collapse
haha...!
Yes, HTC, Google and every other Tom, **** and Harry...
beanbean50 said:
wow, many thanks....
is there much difference between the 2 governors ondemandx and smartassV2...?
Click to expand...
Click to collapse
Ondemand:
The ondemand governor is the default option used by Android. It scales the CPU speed between the minimum and maximum speeds depending on CPU load. If the system needs more speed, the kernel will rapidly scale up the CPU speed. This is available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point, ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
Smartass:
This is based on the concept of the interactive governor. This is included in some custom kernels. The smartass governor effectively gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.
Interactive:
The 'interactive' governor has a different approach. Instead of sampling the cpu at a specified rate, the governor will scale the cpu frequency up when coming out of idle. When the cpu comes out of idle, a timer is configured to fire within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer fires then we assume the cpu is underpowered and ramp to MAX speed.
If the cpu was not 100% busy, then the governor evaluates the cpu load over the last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down to.
This is available in newer kernels, and becoming the default scaling option in some official Android kernels. The interactive governor is functionally similar to the ondemand governor with an even greater focus on responsiveness.
ironjon said:
Autobrighness mod is included (10 positions in arrays.xml)???
Tapatalking.
Click to expand...
Click to collapse
tobi's autobrightnessmod is included. Adding to OP.
Thanks, I'll be testing this! I've been using snq-'s kernel builds but since the OC/UV ones have freezing problems, and gingercakes won't work for me without MASSIVE lag, I look forward to seeing how this works out.
ironjon said:
Autobrighness mod is included (10 positions in arrays.xml)???
Tapatalking.
Click to expand...
Click to collapse
It seems to work, yes. I've just pushed my patched framework-res.apk, and auto-brightness seems to do exactly what it did on snq-'s patched kernel.
EDIT: Ah, ninja'd. Well, there you have it then.
tristan202 said:
Ondemand:
The ondemand governor is the default option used by Android. It scales the CPU speed between the minimum and maximum speeds depending on CPU load. If the system needs more speed, the kernel will rapidly scale up the CPU speed. This is available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point, ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
Smartass:
This is based on the concept of the interactive governor. This is included in some custom kernels. The smartass governor effectively gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.
Interactive:
The 'interactive' governor has a different approach. Instead of sampling the cpu at a specified rate, the governor will scale the cpu frequency up when coming out of idle. When the cpu comes out of idle, a timer is configured to fire within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer fires then we assume the cpu is underpowered and ramp to MAX speed.
If the cpu was not 100% busy, then the governor evaluates the cpu load over the last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down to.
This is available in newer kernels, and becoming the default scaling option in some official Android kernels. The interactive governor is functionally similar to the ondemand governor with an even greater focus on responsiveness.
Click to expand...
Click to collapse
but we only have the first two governors to choose from, Interactive is not an option (in setcpu) or am I being stupid as per usual ...?
is usb fast charge enabled?
ZeGuitarist said:
Thanks, I'll be testing this! I've been using snq-'s kernel builds but since the OC/UV ones have freezing problems, and gingercakes won't work for me without MASSIVE lag, I look forward to seeing how this works out.
It seems to work, yes. I've just pushed my patched framework-res.apk, and auto-brightness seems to do exactly what it did on snq-'s patched kernel.
EDIT: Ah, ninja'd. Well, there you have it then.
Click to expand...
Click to collapse
where can I find the patched framework ?
beanbean50 said:
where can I find the patched framework ?
Click to expand...
Click to collapse
You have to patch your own framework-res
Tapatalking.
ironjon said:
You have to patch your own framework-res
Tapatalking.
Click to expand...
Click to collapse
can you guess my next question ...? hehe
Here you go i like helping the aged especially when, poor eyesight, liver damage, and tropical diseases have taken their toll
[How to] Adjust auto-brightness on GB Sense ROM
beanbean50 said:
where can I find the patched framework ?
Click to expand...
Click to collapse
You can't find it anywhere, you need to patch your own framework. The framework apk differs for each ROM, and contains each individual user's UOT kitchen mods too... So to be safe, you really shouldn't use someone else's framework.
Anyway, here's how to do it:
http://forum.xda-developers.com/showthread.php?p=17713587
It's pretty easy, as long as you know where your ROM's framework apk is (in internal /system, or in /sd-ext). Also, the thread suggest you put your framework mod in a flashable zip, but it's easier to just boot in recovery, and use adb to remove your old framework and push the new one.

[KERNEL][S4][SENSE][4.0.4] Fusion Ultimate v2.1 | CPU Settings Fixed! | (9/2/12)

Fusion Ultimate Kernel for all Sense-based 4.0.4 ROMs (Yes, including ViperOneS)
Latest Version: v2.1 (9/2/12)​
Disclaimer:
Code:
#include
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed.
* YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you. :P
* blah blah blah you get the point.
*/
This kernel is built from the new HTC RUU 2.31 kernel sources, which means it's compatible with any Sense 4.0.4 ROM (including ViperOneS). This is the kernel everybody has been asking for!! :victory:
Click to expand...
Click to collapse
CPU settings now stick! Use SetCPU for CPU settings and System Tuner for voltage settings. The settings WILL stick!
Features
init.d scripts support
CPU frequency control from 192Mhz 1.89Ghz
voltage control (use System Tuner Lite/Pro)
SmartassV2, Interactive, Conservative, LagFree, Lionheart, Brazilianwax, Intellidemand, Interactivex, SavagedZen, Smartass(V1) CPU governors added
Simple IO (SIO) and V(R) scheduler added
capacitive LED lights dimmed to 2mA
improved media scanning times (increased readahead buffer)
good multitasking
enabled zRam
greatly improved I/O performance (disabled fsync() )
overall good battery life and performance
XZ kernel compression
optimized and tweaked
much more; check the changlog or my GitHub if you want to know the specifics
Click to expand...
Click to collapse
Downloads
All downloads are HERE
How to Install
For hboot 1.09 and below:
1. Download the .7z package.
2. In it you will see a "stock" and an "overclock folder". Extract the boot-xxxxxx.zip you want.
3. Then flash the zip in TWRP recovery. It will automatically flash the boot.img for you.
For hboot 1.13 and up:
1. Download the .7z package.
2. In it you will see a "stock" and an "overclock folder". Extract the boot-xxxxxx.zip you want.
3. You have two options:
Option #1
Use TWRP's HTC Dumlock feature. It is a pretty neat workaround that allows you to flash boot.imgs in recovery even on a higher hboot.
Look here for instructions from TeamWin. If you are not comfortable with this method, then follow option #2 to manually flash in fastboot.
Option #2
In addition to flashing the zip, you will have to extract the boot.img from the package and flash it manually with fastboot. Blame HTC for the half-assed 'unlock bootloader' offering they give us. Hopefully we will get S-OFF soon...
Code:
adb reboot bootloader
fastboot flash boot boot.img
fastboot erase cache
fastboot reboot
Look here for a guide.
Sources
kernel: https://github.com/klin1344/kernel_ville_2.21
Enjoy
Changelog/Complete Feature List
Changelog
v1.0 (Initial Release 8/24/12)
based on HTC RUU 2.21 kernel source code
overclock and stock options
enabled overclocking up to 1.89Ghz
added CPU 192Mhz step
added LionHeart, Conservative, Interactive, LagFree, and SmartassV2 CPUfreq governors
implemented adjustable voltage table via sysfs and allow controlling through CPU apps
tweaked CPUfreq governors
disabled GENTLE_FAIR_SLEEPERS
disabled fsync() calls
added vR and SIO schedulers
adjusted VM ratios
enabled zRam
compiled with NEON and Snapdragon optimizations
reduced capacitive LED lights to 2mA
increased readahead buffer
much more...
v2.0 (9/1/12)
added BrazilianWax, Intellidemand, InteractiveX, SavagedZen, and Smartass (V1) governors
XZ kernel compression
optimized SmartassV2 CPU governor
tun.ko and cifs.ko now built into kernel
tweaked deadline I/O scheduler for better performance
make kernel use AC charging mode for unknown chargers
various lowmemorykiller fixes
fixed and tweaked a few other things
v2.1 (9/2/12)
updated to the latest HTC RUU 2.31 kernel sources
includes many performance and stability changes
Click to expand...
Click to collapse
need this too..
FAQ
Frequently Asked Questions​
What ROMs is this kernel compatible with?
As stated in the OP, this kernel is compatible with all S4 devices running a 4.0.4 Sense-based ROM. It is 100% compatible with ViperOneS even though that uses the 2.31 RUU base. I'm betting that there were no changes in the kernel source for 2.21 and 2.31.
What is the best governor for me to use?
It really depends on what you're looking for. If you want performance, go with Lionheart or Ondemand. If you want battery life, go with Conservative. And if you are looking for a balance between battery life and performance, then use either SmartassV2, Interactive, or LagFree. These are just my opinions. Look here for a great reference of all the CPU governors. Test them out and decide which works best for you.
Which I/O scheduler is the best?
I personally use SIO, but you can test and decide which is the best for you. Read here to find the pros and cons of each one.
How do I overclock?
The kernel should default at 192Mhz 1.5Ghz CPU clocks. To overclock, use SetCPU, No-Frills CPU, System Tuner Lite/Pro, or any similar CPU control app. Some apps don't allow the settings to stick properly. I recommend using No-Frills or System Tuner.
CPU govenors won't stick/CPU0 stuck at max frequency????
Yes, that is a known issue with the non-default governors. I have worked hard on a fix, but I still can't figure out the problem. So basically, if you want to use a governor other than the defaults ones from a stock kernel, make sure you check up on it and make sure the settings stuck and CPU0 isn't locked at max frequency.
How do I undervolt?
Right now, the only app that works for voltage control is System Tuner. Both the Lite and Pro versions allow you to change the voltages. Do not use SetCPU as it doesn't work.
Here is the voltage table I am currently using:
Code:
1890mhz: 1250 mV
1809mhz: 1225 mV
1728mhz: 1200 mV
1674mhz: 1175 mV
1512mhz: 1150 mV
1458mhz: 1137 mV
1404mhz: 1125 mV
1350mhz: 1125 mV
1296mhz: 1100 mV
1242mhz: 1100 mV
1188mhz: 1075 mV
1134mhz: 1075 mV
1080mhz: 1025 mV
1026mhz: 1000 mV
972mhz: 1000 mV
918mhz: 975 mV
864mhz: 975 mV
810mhz: 950 mV
756mhz: 950 mV
702mhz: 900 mV
648mhz: 900 mV
594mhz: 875 mV
540mhz: 850 mV
486mhz: 800 mV
384mhz: 725 mV
192mhz: 650 mV
Please just take these as a grain of salt; not all chips are created equal! Some devices can become an ass when it comes to undervolting, while others can starve the CPU to death and still run fine. Experiment little by little until you find your perfect voltages.
What is zRam and how does it work?
Originally Posted by faux123
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.
Click to expand...
Click to collapse
Sweet! Trying on Viper, will report back in a few days.
Sent from my HTC One S using Xparent Blue Tapatalk 2
I installed it on Viper as well. UV settings were applied as set on 3.2 for 4.0.3 kernel.
I'll report back
invasion2 said:
Sweet! Trying on Viper, will report back in a few days.
Sent from my HTC One S using Xparent Blue Tapatalk 2
Click to expand...
Click to collapse
Let us know the results, lab rat!
Bitten by One S Viper...
Nice job. I didn't think this Rom could get any better. I haven't even oc or uv yet and I can feel a big difference. Curious to see how it effects battery life.
Sent from my ViperOneS using Tapatalk 2
I hit my Thanks Limit for the day Klin
So, :good:
Seems to work OK on Viper, however still having problems with Smartass as on Axiom... config folder in sys/devices/system/cpu/cpufreq is sometimes not created (no smartass folder) or randomly gets deleted, so CPU0 gets locked at max freq
SnowToad said:
Seems to work OK on Viper, however still having problems with Smartass as on Axiom... config folder in sys/devices/system/cpu/cpufreq is sometimes not created (no smartass folder) or randomly gets deleted, so CPU0 gets locked at max freq
Click to expand...
Click to collapse
Ahh...so that is the source of the issue. I will have to take a look at my code then. Also, it seems to happen regardless of any governor, especially during the first few minutes after startup.
Sent from my HTC One S using Tapatalk 2
runs fine here klin
smartass folder created on reboot
smoooth
will test for a couple days
klin1344 said:
Ahh...so that is the source of the issue. I will have to take a look at my code then. Also, it seems to happen regardless of any governor, especially during the first few minutes after startup.
Sent from my HTC One S using Tapatalk 2
Click to expand...
Click to collapse
Klin is the best. Thanks for all your work man.
Sent from my HTC VLE_U using Tapatalk 2
Set to smartass, rebooted, folders were there and worked fine.. but then randomly the whole folder was deleted again and cpu is locked at max all the time. Would like smartass working!
SnowToad said:
Set to smartass, rebooted, folders were there and worked fine.. but then randomly the whole folder was deleted again and cpu is locked at max all the time. Would like smartass working!
Click to expand...
Click to collapse
Same here, on Viper Rom right now. Can set everything but smartass.
SmartassV2 works great for me...
same here--ok
flashed thru fastboot and erased cache
then rebooted
Hmm...I think the issue with smartassv2 is only with the first few minutes of booting. After that, it seems to work fine and not only stick to 1.5Ghz. Can anyone confirm?
klin1344 said:
Hmm...I think the issue with smartassv2 is only with the first few minutes of booting. After that, it seems to work fine and not only stick to 1.5Ghz. Can anyone confirm?
Click to expand...
Click to collapse
I can. My frequencies are 384MHz and 1670GHz. They stay like that and my smartassV2 governor stays.
invasion2 said:
I can. My frequencies are 384MHz and 1670GHz. They stay like that and my smartassV2 governor stays.
Click to expand...
Click to collapse
What app are you using?

Categories

Resources