[Module] X8Overclock | v004 - Multiple freq | X8 | X10 mini | X10 mini pro | 11-04-11 - XPERIA X8 Original Android Development

Rom cookers: if you include this module in your ROM, please make a link to this post in your release post, so your users can know how to work with it and update the module themselves
Intro: (dev post)
Since the X10 kernel is working, we might have a hope that someday we will have our custom kernels. If we can have custom kernels, we can do the overclocking easily.
Until that day, we will still have to overclock with modules. To make overclocking works with our current kernel, as far as I can see, we need to do the following things:
1. Patch cpufreq data to change maximum reported freq (these value will be read by Android for further controls). cpufreq will then call the low-level acpuclock functions to change real cpu freq.
2. Patch acpuclock data + code to change real cpu freq.
Right now I'm working a proof-of-concept module, with finished 1 and half of 2. I will need to patch acpuclock code in the running kernel to make the frequency applicable.
That means, right now, Android reported that I have a 800MHz MSM7227, although it's running at 600MHz, and cpufreq's governor accepts to change to the maximum 800MHz (it's 600MHz for real). We will need to patch acpuclock code to change PLL and apply the correct divisor.
Source on github : https://github.com/doixanh/X8Features
Release history
April 11. v004. Default to 691MHz. Multiple frequencies are available for SetCPU: from 614MHz to 826MHz. You can now change frequencies with SetCPU - much like with custom kernels! You can even SetCPU freq at boot.
April 07. v003. Compatible with SetCPU. Easier for code maintenance.
April 06. v002 for mini pro. x8oc module for x10 mini pro released! Be warned: I didn't have your x10mini pro hardware so I didn't test it throughoutly.
April 06. v002 for mini. x8oc module for x10 mini released! Be warned: I didn't have your x10mini hardware so I didn't test it throughoutly. 710MHz was reported not too stable. A lower freq is more stable.
April 06. v002. Experimental! It maybe very unstable! Undervoltage for all frequencies except the max freq (Reduced voltages for 128MHz, 245MHz, 320MHz, 480MHz). This can potentially save battery. I need test results for saving battery from you guys
April 05. v001. Default to 710MHz.
Requirements:
- Rooted
- Baseband x15
- xRecovery (for automatic installtation)
- Dare!
Installation:
a. Manual installation : it will be better if you can do this way.
- Download appropriate x8oc-vXXX.zip (for X8), or x8oc-vXXX-x10m.zip (for X10 mini), or x8oc-vXXX-x10mp.zip (for x10 mini pro) below, unzip
- Remount /system as rw
- Push x8oc.ko in to /system/lib/modules
- Edit /system/etc/hw_config.sh, add one line at the beginning
Code:
insmod /system/lib/modules/x8oc.ko # x8 overclock
For people who want to set specific freq at boot, write the following instead of the code above:
Code:
# x8 overclock
insmod /system/lib/modules/x8oc.ko
sleep 2
echo xAB > /proc/x8oc
Where AB is your desired code for that frequency. Test the frequency carefully before applying it at boot!
(you can edit hw_config.sh by pulling it to your PC, edit, and push it back)
- Reboot your phone
b. Automatic installation : much like x8gesture, I will have to prepare update.zip for each ROM. I'm pretty busy now, so be patient.
General instruction
- When you install x8oc, SetCPU will not recognized the new max frequency. Don't touch the slide and/or change the governor. If you do that, the new frequency will be lost. You will have to reboot your phone to get the new freq.
- For geeks only: it is possible to change maximum frequency after you install x8oc. With following command, you can replace AB to other values to change max freq:
Code:
echo xAB > /proc/x8oc
20 to change to 614MHz
21 to change to 634MHz
22 to change to 653MHz
23 to change to 672MHz
24 to change to 691MHz
25 to change to 710MHz
26 to change to 730MHz
27 to change to 749MHz
For example, set to 749MHz:
Code:
echo x27 > /proc/x8oc
This feature still works with v004
Somebody asked about the meaning of AB above. If you look at the source you will understand
In short :
- AB is stored in hexadecimal
- Max frequency = AB (in decimal) * 19.2MHz
Example:
AB = 27 means AB = 0x27 = 39 (in decimal)
Real frequency = 39*19.2 = 748.8 MHz
You can put 28, 29, for even higher frequency... but I don't recommend to do that. It was unstable for me.
x10 mini / x10 mini pro users:
Support for x10 mini / x10 mini pro has been added since 06-04-11. However, I don't have your hardware so you must test this module before install it:
- Push x8oc.ko to /system/lib/modules
- Run the following command
Code:
insmod /system/lib/modules/x8oc.ko
If the phone is still working, no crash, no black screen, then it works.
Until you're sure that it works with your hardware, don't install it to hw_config.sh or you will get boot loops and may severely damage your hardware
Disclaimer
This module is dangerous! It may cause severe damage to your hardware. I'm not responsible if this module kills your lovely phone. Use it at your own risk!
Donations are welcome
PLEASE DON'T SPAM IN THIS THREAD WITH UNCONTRIBUTED POSTS.

Can you share the source code of your module?

I was too lazy to build a separated module for OCing Everything is a mess inside my current x8gesture module
I'll try to do something more and then separate OC into a new module.

info about MSM7227 CPU:
http://pdadb.net/index.php?m=cpu&id=a7227&c=qualcomm_msm7227

Holy sh*t. They included bunches of controllers inside this MSM 7227
Max. 800MHz Qualcomm MSM7227 Turbo, Embedded 320MHz DSP (GSM, GPRS/EGPRS Multislot Class 12, EDGE, UMTS Release 6, 7.2 Mbps HSDPA, HSUPA 5.76 Mbps, MBMS baseband), 400MHz modem processor, Adreno 200, OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2, DirectDraw,
Click to expand...
Click to collapse

Is there anyway to enable that turbo mode by moding? It must be locked somewhere, the safe clock is 600mhz, but it might run 800mhz or more stable too, might be battery draining issue, or overvoltage necessity but with scaling that should not be a real issue, if only used to extreme situations, and, for a bit of time.

f.e. Samsung Galaxy Ace has same CPU and it run at 800Mhz

This is a great project and it looks very promissing.
ZTE Blade has same cpu and they had problems overclocking just the main core, but in the end they solved it, I guess you could take a look at their solution as well.
And thanks again for the dualtouch module.

I read many overclocked kernel sources for MSM7227 in difference devices. What they did was to modify acpuclock.c :
1. add new freqs to freq_table
2. add new freqs to clkctl_acpu_speed arrays
3. modify acpuclk_set_div to set PLL for overclocked freqs
Because acpuclock is initialized very early during boot process, cpufreq (initialized much later) will read those available freqs from acpuclock to apply to its governors.
In our case, because we cannot modify acpuclock in the kernel before it's initialized, our module will be loaded much later than both acpuclock and cpufreq. Therefore, my approach is to modify (inline patch) both acpuclock and cpufreq in memory, while the kernel is running.
So far, as mentioned in OP, I modified cpufreq and acpuclock data (as in 1. and 2.), so that Android thinks that max freq is set at 800MHz. We will have to do some inline memory patches to acpuclock function to change PLL for freqs more than 600MHz during runtime. More precisely, we need to patch acpuclk_set_div function.
I did a quick study about ARM instruction set, looked for branch (and branch with links) instructions. I managed to redirect calls to acpuclk_set_div to my own function in module, so that acpuclock_set_rate calls to my function, instead of the original one. However, it seems that the param received by my function is always NULL.
Looking for reasons and solutions. Any suggestions?
@racht: no, we thank you for your hard work in your Hackdroid ROMs.

It seems that I made a mistake. acpuclk_set_div was not separated as a function. Instead, the compiler included it in the caller function (acpuclk_set_rate). This will be a big big big problem for us to hijack the call.....

Hope everything works out! 200mhz is a big jump

Can u share your sources?
Maby i can help you
Sent from my U20i using XDA Premium App

I will need to rewrite the module, because everything is placed in my x8gesture I will do it soon.

The initial commit is pushed to github at : https://github.com/doixanh/X8Overclock
All contributions are welcome.

as an example of omap3
http://code.google.com/p/milestone-overclock/
This project consists of a kernel module for OMAP3 phones with Android to unlock any processor frequency/voltage combination and a companion graphical app to ease the configuration. The phone must be rooted so that the kernel module can be loaded.
The module has an interface in /proc/overclock/* that allows enabling and disabling of overclock in runtime without rebooting. No flashing of custom roms or kernels is needed, since that is not even possible with the Milestone, Droid X and others.

andrej456 said:
as an example of omap3
http://code.google.com/p/milestone-overclock/
This project consists of a kernel module for OMAP3 phones with Android to unlock any processor frequency/voltage combination and a companion graphical app to ease the configuration. The phone must be rooted so that the kernel module can be loaded.
The module has an interface in /proc/overclock/* that allows enabling and disabling of overclock in runtime without rebooting. No flashing of custom roms or kernels is needed, since that is not even possible with the Milestone, Droid X and others.
Click to expand...
Click to collapse
Thats good idea but edit is needed because X8 does not have 1,2 processor
EDIT: With 800 processor thats so close x10 1000 processor,cant imagine how fast x8 will be

as-mario said:
Thats good idea but edit is needed because X8 does not have 1,2 processor
EDIT: With 800 processor thats so close x10 1000 processor,cant imagine how fast x8 will be
Click to expand...
Click to collapse
to not fit in the x8, but the wiki to be useful
if we take this as an example you can write a module
sorry for my english

It seems that my approach is like milestone-overclock. Their CPU is different, but we can know that we're having a good direction.

Good news: I managed to hijack calls to acpuclk_set_rate (the function contains acpuclk_set_div). This way, we can write our own set_rate and set_div function.
Destination is not too far away

YES, YES and YES! It's running at 684MHz! Will upload a screenshot soon!
This below screenshot is taken at 710MHz with only CPU test
It seems that our CPU is not stable above 748MHz.

Related

[Module] SmartassV2/ondemandX governors for Rooted/stock ROM | 2012-02-24

This modules are for people with stock kernels because they don't have 'smartass' or ondemandX' governors.
EASY ENGLISH:
Differences between this modules and build in stock kernels:
- allows to set max CPU freq when screen is off (to save battery),
- allows to set starting CPU freq when phone awakes (to speed up awake process),
- allows set/change almost all aspects of governor (to suite needs),
- should be a bit more responsive when parameters are well chosen for smartassv2 governor.
Each governor has some predefinied values - more info in "Available settings".
If governors works or not on other version then 4.0.2.A.0.42 let me know.
Start:
The goal was bring 'smartassv2' and 'ondemandX' governor to work with stock kernel on Neo V.
Most information is in my thread on 'XPERIA X8 Android Development': [Module] | X8 | X10 mini/pro | AX8_SMARTASS v002 | 'smartass' governor | [2011-07-19]
To remind:
SmartassV2 (informal description and comparison with the first smartass)
SmartassV2 is a governor (controls the frequency of the CPU at each give moment) which like the first smartass is generally based on the implementation of interactive with some major changes and the addition of a built in sleep profile (behaves a bit differently when screen is off vs. on).
The smartassV2 improves the very naive scheme which the first smartass had: The first smartass (with the values I set for the hero), would cap the max frequency at 352Mhz for sleep and when screen is on, would do the opposite and keep the frequency at 518Mhz or above. For sleep this was very effective but a bit crude and unclean, and there could be some cases where you would need processing power even when screen is off (something is updating and music is playing and etc.). For screen on, smartass1 was too quick to jump to the max available frequency and again would never go below the 518Mhz, so in a nutshell its was using "too high" frequencies.
SmartassV2, introduce (internally) an "ideal" frequency which is the frequency we are "aiming" for, in some sense. The way I see it is that the "ideal" frequency is a hint to the governor what is a good balance between performance and battery life. Now when screen is on, I set (on the hero) the ideal frequency to 518Mhz which will ensure nice responsiveness but limit unnecessary use of higher frequencies when they are not needed. When screen is off, I set the ideal frequency to 352Mhz (0 will disable the screen state tracking all together). From my testing this will "convince" the governor to spend most of the its time during sleep at the lowest available frequencies. Note, that both during sleep and when awake the entire frequency range (as defined by the "user" - i.e. selected with SetCPU) is used by smartassV2. For example, when the CPU is loaded heavily, the highest available frequency will be used regardless if screen is on or off.
Click to expand...
Click to collapse
ondemandX - ondemand governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic described above. No further optimization is done.
Click to expand...
Click to collapse
Info:
- information about governors is here,
- more information about 'smartass' governor is here or here,
- how different governors work is explained here: [Q] SetCPU governors (explained).
Prerequisites:
- Neo V (if works on Neo - let me know),
- root,
- ondemandX should work on any version,
- smartass was compiled against 4.0.2.A.0.42 version, how run on other version will be explained in manuall installation section,
- desire to replace SetCPU - when used only for 'ScreenOff' profile.
Manual installation:
Unzip file
Run copy.cmd file - this should copy modules to /system/lib/modules
run adb shell or terminal - whatever you like and execute su
Code:
su
If you have 4.0.2.A.0.42 version proceed to step 6
For smartass governor you need to know address for 'kallsyms_lookup_name'
run following command:
Code:
cat /proc/kallsyms | grep kallsyms_lookup_name
result should be as follows:
Code:
80101aec T module_kallsyms_lookup_name
[SIZE="3"][B]801056f0[/B][/SIZE] T kallsyms_lookup_name
Bolded value (801056f0) is address which we need.
Optional step: lower min CPU freq:
Code:
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Insert ondemandX module:
Code:
insmod /system/lib/modules/aneov_ondemandx.ko
in dmesg command should be line:
Code:
<6>[ 431.711517] aneov_ondemandX: module v001 for device Xperia Neo V loaded
Insert smartassV2 module:
for version 4.0.2.A.0.42 just run command:
Code:
insmod /system/lib/modules/aneov_smartass2.ko
in dmesg command should be line:
Code:
<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
for other use 'address' and use following command:
Code:
insmod /system/lib/modules/aneov_smartass2.ko lookup_address=0x[B][COLOR="Red"]801056f0[/COLOR][/B]
in dmesg command should be line:
Code:
<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
Now you can enable desired governor. Execute:
Code:
echo "smartassV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
for smartassV2 or
Code:
echo "ondemandX" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
for ondemandX governor.
Lower min cpu freq a bit:
Code:
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Until you're sure that it works with your hardware, don't install it to hw_config.sh.
Available settings:
Will be added later
v001:
- just initial version fixed to work with Neo V.
Disclaimer
I'm not responsible if this module damages your lovely phone. Use it at your own risk! Think before you do something!
Sources at: GitHub
Thank you!
On .62 firmware, I didn't have to specify lookup_address, since it didn't recognise that option, but it seems to work.
Also a good full article about governors:
http://forum.xda-developers.com/showpost.php?p=19846276&postcount=1
is there any chance to get this as a zip for cwm?
edit:yay! just put it manually into system/lib/modules and changed permissions and it works!
Working .62.
Could you also build an OC module please, that would be awesome.
Sent from my MT11i using Tapatalk
mpiekp said:
Working .62.
Could you also build an OC module please, that would be awesome.
Sent from my MT11i using Tapatalk
Click to expand...
Click to collapse
If I find source somewhere - or someone point me to sources - I can try.
Sources from any custom kernel, just compile against stock.
Thank you
Sent from my MT11i using Tapatalk
Hell yea, OC module for locked BL would be awesome!
Any news about OC or UV modes?
Wysłano z MT11i z użyciem Tapatalk
Will this work with my x8
Sent from my E15i using XDA
Intellidemand please!
Could you please make an intellidemand governor also..
Also please see these commits for some changes to smartass2 (more stable) and working lulzactive
thread dead for more than 2 months...
Zed's dead. but no matter
OK- so I'm planning on installing the module on a different device. with the assumption that the smartassv2.ko drivers are all the same, i figure that only the specifics differ.
e.g. no /sys/lib folder exists in my system, though a /sys/modules folder does.
So, the plan is: i edit the script to point towards the valid directories; place the files in those noted directories (eg create a /sys/lib/modules folder); edit the "scanning_available_governors" to mention those governors; kick back and enjoy.
two things concern me. First, I checked the symsearch.ko file found references to the kallsyms, as well as to the general public license and ARMv7, but haven't found much info online as to what the driver does. since it mentions architecture that may or may not adhere to my device (samsung galaxy player 5),should I go ahead?
Second, OP mentioned:
"result should be as follows:
Code:
80101aec T module_kallsyms_lookup_name
801056f0 T kallsyms_lookup_name
Bolded value (801056f0) is address which we need."
the instructions following that line doesn't mention the kallsyms_lookup_name addy again. so what is the addy good for?
thanks!
Wow IT REALLY WORKED.
i have smartass V2 on My locked bootloader .
Thank you.
(Yes i know i am a gravedigger but more people have to see this.)
Just everyday i find one more reason for not to unlock my BL.
I have the best governor
Best tweaks.
OC is useless (it consumes battery and Destroyes the phone).
WHY THE HECK WOULD I WANT A CUSTOM ROM.
EDIT: Erm guys how do i install it with hw_config.sh
It may be a silly question, but after reading descriptions to both the badass and the smartass v2 governors, but I'm still not quite sure which one will provide better battery life overall.
SmartassV2 is the answer ;P
not working on miui 2.7.13 based on 4.0.4

[Kernel 3.12.rc6][24 OCT][DEV THREAD!] Dorimanx 8.43 ONLY JB I9100 +RECOVERY+ROOTED.

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Dorimanx Kernel for SGII-I9100
Supporting 5 ROM Platforms!
My kernel was based on SiyahKernel 4.0 long time ago in other realty,
Kernel Tree is 3.12.rc6-R101, + Samsung JB updates + my tweaks and lots of tuning!
Thank you Gokhanmoral for your great work in the past!
Warning!!!
Do not install this kernel on any Android version lower than 4.1.Y
Do a Nandroid Backup of your ROM before first try it! just in case
Constant OC will drain more battery! use low speeds on screen off! min 200/100 max 800
CPU will shutdown in case of over-volt or under-volt so be careful
I'm no responsible for any hardware damage or system corruption that can happen after using this kernel,
you are using this kernel from your own will and accept any responsibility by using it.
If you install this kernel your warranty will be void!
Of course you can be relaxed, I'm trying every release on my phone several hours before of release it so,
if something wrong, i will get the damage first, you get a tested and tuned working kernel...​
« Thread rules
« Which kind of posts are allowed in this thread?
Report of bugs after test it personally and including the proper log (Please refer to the Voku's guide of How to report bugs for further information about logs.)
Feedback that could genuinely helps to the development of the kernel, for example tests of a new feature including a complete explanation, documentation and results.
Requests of new features for the next versions of the kernel with the proper explanation of why you expect to see it and why do you think that will be an improve to the kernel.
« Which kind of posts are not allowed here and belongs only to the discussion thread?
Battery life related, which include: Discussion of battery life, statistics of your battery life, screenshots about your configuration, your configuration itself (with the intention of help another users)
Reports of SOD if you undervolt / overclock your phone
General discussion about settings of the kernel, which include: Governors, schedulers, I/O, dual-boot, etc.
Requests of new features for the next versions of the kernel without the proper explanation of why you expect to see it and why you think that will be an improve to the kernel.
Bug reports with the proper attachments like logcat and kernel log (This is the exception, you can post it here and in the development thread, again, only with the log attached, otherwise the report will be ignored), please refer to the voku's guide of How to report bugs for further information about logs.
Deep sleep issues. Mostly of this issues are not kernel dependent, the rogue apps cause wakelocks and other weird behavior so, the first suggestion will be go to the BBS (Better Battery Stats) thread, install the app, and drop the log in there but as complement you can expose your issue here.
« Useful Links and Guides
Official Dorimanx's site
Facebook Fan Page
Kernel GIT Repository
INITRAMFS Repository (recovery)
Dorimanx change logs by kantjer
How to save battery by Voku
All you need to know about UV/OC by the professional chip designer Vikas [Very important to read]
[GUIDE] CPU Governors, TCP algorithms, Android Tips, & IO Schedulers: In my Own Words by MBQsniper
Kernel Governors, Modules, I/O Schedulers, CPU Tweaks, AIO App Configs by droidphile
How to make your own .TAR kernel file to flash with ODIN by dorimanx and a ready to use .TAR by kantjer
How to tune the touch screen if you need it by Crescendo Xenomorph
Kernel Gestures Builder by Flint2
SAMSUNG USB DRIVERS by Daerragh
[Tutorial] How To Logcat by paxChristos
Dorimanx kernel ICS/JB - Dummies Guide by ironass
Kernel is updated to 3.12.Y and beyond.(hybrid)(we have 93% from 3.12.Y kernel!)
Kernel SUPPORT JB 4.1.x/4.2.x/4.3.x
This is JB Tuned Kernel only! not supporting any 2.x.x/4.0.x roms!
Dual CPU support
Default CPU governor: HYPER
CFS CPU SCHEDULER Tweaks.
Default CPU frequency: 200-1200 MHz (MAX OC up to 1.6Ghz speed!)
Kernel Support STweaks and 5 Profiles.
Overclocking to 1600 MHz. (via ANY CPU Tweak Apps or STweaks)
Kernel support 16 CPU steps! 1600Mhz->100Mhz by static default!
You can set MIN/MAX CPU Freq in STweaks app! + lots of CPU tweaks.
Kernel will sleep in deep sleep on 200Mhz->800Mhz as Samsung requesting to prevent SOD.
Support undervolt/overvolting via sysfs interface/apps interface. and STweaks (800-1500mV) (all set to best)
Be very careful with voltage settings! (all set already)
Default I/O Scheduling: BFQ
More I/O Scheduling present in kernel: DEADLINE, VR, NOOP, FIFO, CFQ, SIO, ZEN, BFQ
Native USB Tethering.
Native Wi-Fi Tethering
File systems support: Ext3/4, FAT32, CIFS, NTFS, EXFAT
Added tweaks to increase I/O Speed.
Added tweaks to increase CPU speed
Removed all the debuggers to free kernel from unneeded jobs, and logs.
More Govs present, HYPER, conservative, performance, pegasusq, nightmare, darkness, zzmoove, ondemand(default sleep gov), sleepy.
ZRAM SWAP add more 150/300/600MB compressed RAM, activated by STweaks, set to off by default.
Tweak camera (better picks quality)
Kernel Include Siyah Recovery with Dual ROM support!
In Recovery you have section to select kernel profile. Performance, default, battery, the default is DEFAULT.
Kernel will Auto ROOT your device!
You can disable ROOT in STweaks app!
Tuned for I/O Mega Speed SQLite is injected to ROM after install.
BLN by GM! lights time out, and blink/breathing effect, see STweaks BLN tab to activate! (READ ABOUT BLNWW!)
New Kernel Management app STweaks by GM! installed with kernel.
BLN without Wakelock to save battery when BLN active till timed out. by GM.
Touch Keys Light change with the screen brightness! by GM.
Massive script for kernel/ROM management made by Voku,Alucard and me
It's will work by auto and set lots of tweaks: NET tweaks, GPU tweaks, CPU management, Deep Sleep Tuning, Charging states, and more!
It's name is cortexbrain-tune.sh
WE SAFE (MMC_CAP_ERASE not present) in kernel MMC Code!
MMC code merged with SAMMY Update 10 + 3.10.y updates!
FM-RADIO WORKING! (you need Spirit FM PAID!!!!) or Sammy ROM with FM APP.
Touch screen color + touch thresholds are in STweaks,
Kernel Cleaning Script is build IN! by VOKU.
BT Support for SAMMY 4.1.2 and all 4.2.X + 4.3.x
Video(GPU) + Camera Driver from SAMMY JB/CM10.1 + patches
WIFI Driver 1.61.56 ported from SG4
Modem Driver from SAMMY JB SOURCE
SMP Processor code updated from Kernel 3.12.Y
RCU + SRCU Processor code updated from Kernel 3.12.Y
Kernel Code for on screen gestures by Tungstwenty fixed by MARIO1968
All FS used Code merged with 3.12.Y kernel
SLUB fully merged with 3.12.Y Google Android kernel
SCHED CORE fully merged with 3.12.Y kernel.
RAM merged with 3.12.Y + Google Android kernel.
VFP updated to MAX from 3.12.Y
Slide2Wake by FLUXI, (swipe from left to right on turned off screen to wakeup device, tweak can be turned on/off in STweaks, this mod use 5% battery! (Modded by GM for less battery drain)
Sound boost controls by FLUXI in STweaks.
New Mali V2 Video Driver combined with old to support JB STOCK in one kernel(8.X branch) by Gokhanmoral/me/CM-TEAM!
In 9.X branch we have MALIv2 ONLY video driver for CM/AOKP new ROMS! no STOCK SUPPORT!.
Added mdnie interface and made hardcore’s sharpness tweaks optional by GM!
5 GPU FREQ Steps from 108Mhz to 520Mhz by GM!
Ultra KSM from 3.9.y kernel.
Powered by SuperSU "Please support SuperSU" dev Chainfire!
Recovery can backup/restore STOCK ROM! include the preloaded partition!
NOTE: This kernel is for JB AOKP / CM10.1 / MIUI(STOCK JB BASE) / SAMSUNG STOCK JB ROMs
WARNING:
It's not possible to dual-boot with the JB SAMMY ROMs in any combination.
So, please! don't try it and don't report it as a bug, it's a known issue.
---------------------------------------------------------
Disclaimer:
Every user must use his / her own criteria to report the off-topic posts,
The rules are just a guide to what is expected to see in a development thread,
But if you don't want report posts at least don't answer the repeated questions,
This open the door to the spoon feeders to ask again and again and again...​
Live Change Logs from GITHUB:
Initramfs
Kernel 8.x
Kernel 9.x
(To download kernel, go to links at bottom of >this page!< YES the OP PAGE!)
ICS is no longer supported!
for ICS ROMS use 5.x/7.x/8.1 only!
Discussion, Q&A Dorimanx Thread Go >HERE< For Help.
Change logs:
24/10/13 time 12:50
Kernels 8.43 + 9.43 <Stable>
Kernels 8.42 + 9.42 <Major BUG found and fixed in x.43>
Kernels 8.41 + 9.41 <Stable>
03/09/13 time 16:10
Kernels 8.40 + 9.40 < NEW BETA TEST! >
Kernels 8.39 + 9.39 <stable but with small bugs in ram count>
Added 4.3 support!
Kernels 8.38 + 9.38 <STABLE BUILD!>
15/08/13 time 04:00AM
NO 4.3 SUPPORT!
Kernels 8.37 + 9.37 <DELETED! BUGGED>
"Declared as 3.10.rc5 in X.36 build"
Kernels 8.36 + 9.36 <DELETED! BUGGED>
Kernels 8.35 + 9.35 <MASSIVE UPDATE! V2 Stable for most users>
Kernels 8.34 + 9.34 <MASSIVE UPDATE! Stable for most users>
Kernels 8.33 + 9.33 <Stable for most users! BUT do backups! to PC>
Kernels 8.32 + 9.32 <Considered stable by many, but still some got SODS(for some users). (bugs fixed)>
Kernels 8.31 + 9.31 < test V7, STABLE 90% but low vibrate and small bugs.>
Kernels 8.30 + 9.30 < test V6 STABLE 93%, OOM profiles still broken.>
Kernels 8.29 + 9.29 <new beta test V5, OOM FIXED! stable, but oom profiles broken.>
Kernels 8.28 + 9.28 <new beta test V4, half stable, 80% OK.>
Kernels 8.27 + 9.27 <STILL SODS, OOM Broken!>
Kernels 8.26 + 9.26 <STILL SODS, OOM Broken!>
Kernels 8.25 + 9.25 <DELETED, SYNC BUG>
27/05/13 time 02:50
Kernels 8.24 + 9.24 <Reported as 90% Stable release!>
Kernels 8.23 + 9.23 < DELETED SOD BUG>
Kernels 8.21 + 9.21 < DELETED SOD BUG>
kernels 8.20/9.20 < DELETED SOD BUG>
Kernels 8.19 + 9.19 < DELETED SOD BUG>
Kernels 8.18 + 9.18 < DELETED SOD BUG>
Kernels 8.17 + 9.17 < DELETED SOD BUG>
04/05/13 time 14:45
Kernels 8.16 + 9.16 <Reported as 95% Stable release!>
16/04/13 time 11:35
Kernels 8.14 + 9.14 <STABLE and WORKING OK!>
04/04/13 time 00:10
Kernels 8.13 + 9.13 <STABLE and WORKING OK!>
Kernels 8.12 + 9.12 <STABLE, but with WIFI BUG!>
23/03/13 time 23:40
Kernels 8.11 + 9.11
Kernels 8.10 + 9.10
Kernels 8.4/9.2 -> 8.9/9.9 DELETED! <MEM SOD BUG>
Kernels 8.3 + 9.1
Kernel 8.2 + 9.0
Kernel 8.1 <LAST ICS SUPPORTING KERNEL>
Old History:
24/02/13 time 05:22 (Advanced BETA II)
ICS+JB-MALI+CM10.1+JB SAMMY LEAK+OFFICIAL(from 7.44)
Kernel 7.50 <FINAL VERSION! MALI V1 is END OF LIFE!>
Kernel 7.49 <Advanced Beta Tuning FIX>
Kernel 7.48 <Advanced Beta Test>
Kernel 7.47 <Improved Beta Test>
Kernel 7.46 <MEGA BETA TEST>
01/12/12 time 19:15 (STABLE)
Kernel 7.26 ICS+JB-MALI
Kernel 7.26
20/10/12 time 16:15
Kernel 5.90 / 7.4 JB-MALI
Change Log for 5.90 ICS / 7.4 JB-MALI ONLY!
2/10/12 time 22:48
Kernel 5.84
*VOKU and me, we restored function that check DATA + CACHE file system before boot, for errors and damaged blocks and more.
it's can be requested for one time run by user via extweaks misc tab.
DO NAN DROID BACKUP VIA RECOVERY BEFORE ANY ATTEMPT TO USE IT! (if your phone will not boot, and you don't have backup, don't blame me for that)
If your data has allot of corrupted files. then first boot with this kernel will take longer! do not panic. let it work.
no more than 10MIN, if still no boot, then you need to restore your nand backup and never use this function!
your hardware is not ready for DATA partition clean up. forget it.
you will get new file /log-data and /log-cache
after boot you can check if you had any errors in data or cache.
To activate just "push the ATOMIC button " or push again to ABORT!
function will work after reboot, and never again, till requested by user.
If you do nan droid backup and then restore it, you restore all the errors and junk with it. (just for the info)
Goals for next builds:
Debug and find more code errors! (always something new)
Add cool features and tweaks
Extend battery life.
Boost performance.
« Installation
Download the file
Place it on your SD card
Reboot into recovery
Flash the file
Reboot
In case of a new installation on a non rooted or non recovery device:
You can Download ODIN 3.04 attached to page.
Reboot to Download mode (Hold Power + Home + Vol down, then vol up when you see the download menu)
Connect USB, wait until the drivers be installed
Install kernel via ODIN, choosing the option PDA, search for the file that you downloaded and push start
If all going fine the phone will reboot and you done
Mirror #1 by Bmbm
Mirror #2 by Willflint
Mirror #1 Here
Mirror #2 Here
Dev-Host mirror (just in case that main mirror be overloaded)
Alternative mirror provided by Looki75
> Server in standby, no content <​
« Credits
Gokhanmoral (Siyah Kernel)
Myfluxi (xxICSKernel)
Pinpong (Thoravukk_i9100)
Voku1987(This Kernel)
Alucard_24(This Kernel)
STANTRC(This Kernel)
Halaszk (siyahkernel-sgs3)
AndreiLux(Perseus-S3 Kernel)
Teamhacksungb (CM Kernel)
Pershoot (Galaxy-2636)
Dror2169 (KernelSanders-OMAP)
Faux123 (Great Mega Elite Dev, many kernels)
Simone201 (Neak-ICS kernel)
Angelom (Abyss kernel)
DerTeufel (Samsung kernel - Aries)
Entropy512 (CyanogenMod)
Talustus ( Dream Kernel - ICS)
Tungstwenty (On screen gestures addon)
Renaudallard (GNexus kernel)
Torvalds (Kernel 3.6.Y maintainer)
Robertobsc (Siyah kernel 3)
Second kernel developer voku1987, GIT
Please treat him as full time developer for this kernel, any of his answers are considered as if i have answered.
Thanks a lot for your help and support!
Third Kernel developer Alucard_24 GIT
Please treat him as full time developer for this kernel, respect his answers as he know much and helping in development!
Thanks a lot for your help and support!
Forth Kernel developer StanTRC GIT
Please treat him as full time developer for this kernel, respect his answers as he know much and helping in development!
Thanks a lot for your help and support!
Great Fearless Beta Test Team!
Eskriminal
Rkoby13
Infatality
Shahan_mik3
Computoncio
Metalgearhathaway
PSyCh¤_O_O
Crazy-Silver
Cybernetus
Bogdan1980
Markox89
Stopro
Misk77
The most active and honored team members are:
Voku1987 ★
Alucard_24 ★
StanTRC ★
THE RED BLUR ★
Manulemaboul ★
GaboWinter ★
Johnbeetee
Xanthrax
Cybernetus
Big_bum
Rkoby13
Unexist6969
Bologna
Kantjer
Crazy-Silver
Sybregunne
#illidan
It_ler
Flint2
Wonsky21
Zeppelinrox
Fhasovic
Lyndonguti
Nasty_z
Krishnadusad
Crescendo Xenomorph
Jgcaap
Bleuxeon
Respect them and read there posts, ask them questions, and you will be happy and safe with us
TO DONATE CLICK HERE
Donators:
Donation from a XDA Guests x36
Bmbm (Huge donation! Great Main Mirror!)
Willflint(Huge donation! Great Second Mirror!)
Bleuxeon x5
Sun90 X3
Rkoby13 X3
THE RED BLUR x2
Xanthrax x2
Kantjer x2
Flint2 x2
PigMachine x2
Nuclear******* x2
Jgcaap X2
Didgesteve X2
Toffiko X2
Ercxar X2
NeGriTa79 x2
O0boiboi0o x2
Axonn x2
Bologna, Avinashadvani, Ciribaski, Freewind29, Johnbeetee, Malavan, , Pender666, Ale.gu, Duykhang524, Fictisio, Americoz, Den15, Jomaga, GregX80, Nokia-xxx, Steili, Ulver7, Mr_omega, Haramizuki, Mofeywalker, Puppyko, Computoncio, Ophirb, [email protected], Sasho36, ADABman, Follettoverde, AMDPOWERFIST, Quijote1, GeScha, Trevfee, Cybernetus, Drinky, JulianXhokaxhiu, Thijssie909, **** Gordon, Gippy2, Mario1968, Godzifa, Maulattu, Manczyslaw1], Fakhersidhu, Davidb89, Dynomot, MrMastodon, Calanizzle, Nogo8888, Dongerado, H4cker77, GieltjE, Blaex, N1m0Y, Lukign0, Ruk_design, Bubble-be, Chivas112, Vexxx, ,Spinik, Minidou-77, Amber_Oomb, Oriundo, Imilic, Liorreem, GieltjE, Knהההrz, TrallaP, LegnaDegna, Fliron, Mrjl, Mmca, Adyjl, KqK, Xsycox, Gatsu84, Oshmoun, Poseben, R3dDr4g0n, Walter White, Arpinacio, TyDraniu, Livefortoday, Dox81, BigGiantFish, Blaex, Metalgearhathaway, HorstiG, Sgauge, ZeroLight, Leo2589, Cr3ck3r5, FaTa1-Err0r, 99x, Pitzyper[FONT=&quot], [/FONT]1.000.0000Dollar, Renemt, Cool1007, Sibero80,
« Extras
GESTURES!
Here you can download the app to set the gesture_set.sh script to make your own gestures.
*Added gestures script that connected with cortex and can be managed by user and system in harmony!
The script is located at /data/gestures_set.sh do not move it, if you have already any gestures scripts in init.d delete them and move your custom stuff to this script.
It will work with the screen on, and be shut on screen off, to get rid of one more loop that wait forever, we dont need it on screen off! So i give you 5 preconfigured gestures! max supported is 10! max finger touches supported also 10.
Script will be copied to data if not exist on boot, if exist then, nothing. You can shut this function in STweaks or restore to default gestures if you mess with it
On restore you will get backup of your current running file at /data/gestures_set.sh.bkp + gesture_set.sh.sec just in case.
PICK FOUND IN GOOGLE! It's not me
I am here for you so, ask, debug and comment!
Help me to make this kernel as good as possible!
Recognized by followers
Great Developer DORIMANX
Page modifications by GaboWinter!
​
Kernel Info about Tweaks / Mods
Here I will post about things that exist in kernel.
First of all here are some guides made by VOKU also developer for this kernel.
Android: How to report bugs
How to use "ADB" - Command Line Tool
You get ZRAM SWAP.
In short, it's compressed RAM, that by using our mighty CPU compress 150MB of Real RAM into 300MB ZRAM!
This is simple math:
we have 848MB RAM, + 300ZRAM - 150 Needed for ZRAM = 1GB RAM
You can see it work by entering terminal app, or connection by ADB
And type:
free
you will see this..
Code:
[email protected]:/ # free
total used free shared buffers
Mem: 848164 801800 46364 0 13456
-/+ buffers: 788344 59820
Swap: 292968 23420 269548
in SWAP filed you see it exist and works!
Also there is one more advanced check
type:
su
zram_stats
you get:
Code:
127|[email protected]:/ # zram_stats
Swaps Status
Filename Type Size Used Priority
/dev/block/zram0 partition 97656 7804 20
/dev/block/zram1 partition 97656 7804 20
/dev/block/zram2 partition 97656 7808 20
ZRAM STATS
/sys/block/zram0
disksize: 100003840
num_reads: 474
num_writes: 2013
invalid_io: 0
notify_free: 61
zero_pages: 105
orig_data_size: 7565312
compr_data_size: 3465633
mem_used_total: 3563520
avg_compr_ratio: 45 %
mem_overhead: 2 %
/sys/block/zram1
disksize: 100003840
num_reads: 473
num_writes: 2013
invalid_io: 0
notify_free: 61
zero_pages: 106
orig_data_size: 7561216
compr_data_size: 3447524
mem_used_total: 3584000
avg_compr_ratio: 45 %
mem_overhead: 3 %
/sys/block/zram2
disksize: 100003840
num_reads: 477
num_writes: 2014
invalid_io: 0
notify_free: 61
zero_pages: 99
orig_data_size: 7593984
compr_data_size: 3444863
mem_used_total: 3559424
avg_compr_ratio: 45 %
mem_overhead: 3 %
You see 3 ZRAM swaps each 100MB and they work in load balance!
All filled/released in one push, it's fully auto! it's will help on heavy RAM load!
==================================================================
Touch Recovery:
Made by ELITE DEVELOPER Gokhanmoral!
I have added tweaks and my configurations.
You can move in menu by finger, and by pushing arrows at the bottom, also hard keys work.
You can have 2 ROMS installed in one phone
See menu and check for full instruction on Developer Thread!
You can backup and restore / format / mount / install from ZIP / or from zImage!
You can set / reset your kernel profiles
there are 3:
Battery saver: reduced performance, but long battery life.
Default: normal performance, normal battery life
Performance: Boosted allot for performance, but faster drain of battery.
In order to use performance profile and not to drain your battery too much,
you need to set profiles in any app for CPU tweaking, that can give you profiles for:
Screen ON
Screen OFF
ON CALL
ON LOW Battery.
For screen ON you can use Full OC (200-1500) and have fun.
On Screen OFF: use 200-800/1000 speed
On Call use: 200-800 to save power.
On low battery use 200-1000/800/500 as you like..
================================================
You get tuned SQLite for CM9 or PURE ICS ROMS.
Its set to reduce the "sync command" when writing and reading tables in apps and system data.
So it's will "sync" on finish write, and not every small operation that its doing.
By this, read/write ( I/O) performance boosted allot!
If you install any other kernel after my, the sqlite will remain in ROM till ROM will be replaced.
================================================
More to be added later.
​
22/7/12 time 19:00
Kernel 1.0 -> 5.2
Code:
*Restored lot's of code that i and voku ported, to restore stability, much from that code was exp, so it's moved to EXP branch, i will test it offline.
*Changes to cortex for stability, see git.
*Messed with profiles save, should be ok now.
*Improved stability!
*Improved performance!
*Updated to 3.0.38!
*Fixed GPS
*Added wifi supplicant tuning to extweaks and to cortex.
*Added FIX for Korean GPS
*Added BT fix for SAMMY 4.0.4 ROMS by Gokhanmoral! TNX!
*More code porting for better deepsleep! and network fixes.
*Tuned hyper gov and renamed to HYPER!
*Updated to Samsung Update 5 + 6
*Lots of changes to TVOUT driver, it's may now work on custom roms!
*Removed ondemand, HYPER is the same gov but more advanced!
*Fixed intellidemand now it's stable.
*Ported more code fixes from 3.5-rc7
*Added new tweaks in extweaks and converted many to checkboxes.
*More patches to WIFI driver.
*Battery life improved allot! thanks to code changes that put more drivers to sleep!
*Removed KSM and ZCACHE from config, ZCACHE is damaged after merging with kernel 3.5-rc7 and KSM eat battery and dont really help. no big change in performance, still fast and smooth. (zcache no longer used in 3.x.x so we disable it too)
*Kernel is stable! 2 days with full cortex and performance profile.
*Updated to 3.0.37!
*I have ported lots of code changes from kernel 3.5-rc7 (about 2000+ code lines changed)
all about file system and cache memory and compression.
*VOKU has ported lots of new code for process control and kill + memory control. from 3.1.Y
*Fixed wakeup booster, it's more smart!, now i boost the freq to max but with your GOV not with performance, and add +25mV to all steps for time that wakeup booster works, then it's will set speed to normal and reduce voltage by -25 and all will be as you set.
*Cleaned code from unused functions.
*Extended light sensor and battery sensor pulling time, to reduce battery use, and CPU use (done by voku)
*Tuned voltage for HIGH steps 1000 --> 1500 added more +25mV each. for stability.
*Fixed the Touch keys timeout stuck at 5 sec. now should obey your settings.
*Added check if cortex background process is OFF or ON for real.
*Added new GOVs intellidemand and wheatley they are good for battery save, and can be fast if tuned via setcpu app! or they SLOW by default but very smart.
*Fixed all GOVS code about idle time statistics and wait for IDLE, should help reduce battery drain.
*Restored some define values to default, this small things can make big problems, we made some changes to them without fully understanding if it's OK or may damage some thing, like front camera!
*Kernel size is FULL, 8.10MB so very soon i will have to cut some tuning to gain more room for code changes...
*Fixed BLN still ON after main BLN switch off!
*Fixed small bug in kernel optimization.
*Tuned brightness for simple auto brightness (modded by VOKU)
*Improved stability and performance.
*File system corruption protection. by using FSYNC function to sync all changes to file system more often.
Added extweaks MISC option to disable the FSYNC to get little more performance, but reduce to less safe from damage file system (DEFAULT for all KERNELS!) this function is external! option will be updated only on reboot! not as you set it.
*Removed cortex background process for default and battery profiles, so user can use it or not. see extweaks, (without cortex, wake up booster + sleep gov change + dynamic GOV modding will not work!) for some ROMS, it's GOOD! since they get SOD all day with cortex ON, so try without, if OK, try with, if OK, have fun, if SOD, disable again.
It's ON for performance profile!
*Battery life improved.
*Added code fix that reduce CPU usage on idle to 1~15% on 100Mhz! was 15~30% now more battery will be saved.
*Rebuilded the root add/remove now it's used as buttons. install , remove , check
*Retuned Touch screen CODE, screen will not stuck now, 70% of SOD, not really stuck the phone, it's only the screen stuck! via adb i see that all OK! and system working as was, so now problem is fixed!
*New code fix for WIFI, now if not used and disabled in ROM, driver will cut power to WIFI chip! till now it's was still idle and drained power. not any more
*Finally i made my kernel STABLE! no more SOD and great battery life!
I have reverted from Linaro 12.06 GCC 4.7.1 builder to Android GCC 4.3 builder
that used to build all ROM and Default kernels!
So no more SOD! and battery is 1.1%/h -15mA :)
*Added more fixes to code from FLUXI kernel, TNX Myfluxi!
*Set 15 CPU freq steps for all profiles and removed settings to change it, there are many code trigers that depend on 15 freq steps, so best to have all for all profiles, then reduce the MAX freq to what needed, (already set)
*if you have added any INIT.D scripts that mess with my settings, REMOVED THEM, then test my kernel,
For some phones to low settings will always kill the phone,
I am asked all people that post INIT.D scripts in this thread, STOP/REMOVE. keep them to your self. thanks.
*Found and removed SOD bug on screen off/on and in deepsleep.
OK for me, need more people to test!
*Ported some stuff from GM SG3 kernel, better video sharpness and some restores for Video driver GPU freq lock on screen ON.
*Tuned all profiles, with min/max cpu on suspend, now we can use 200 to 700, please do not change it for now.
*Lots of new code ported by VOKU from 3.1.Y kernel! see GIT
*Some clean ups, and kernel optimizations FLAGS.
*Removed hotplug and interactive govs, we have lot better govs to use.*fixed small but critical bugs! (reuploaded kernel last at 18:59)
*I have reverted all CODE for CPU Idle and Suspend from Source (GM Thanks again!) now i hope the SOD will be wiped!
*Reduced Kernel size thanks to VOKU new reconfiguration of Kernel flags.
*Added new CPU calibration code form 3.4.y tree.
*Added more fixes for Kernel scheduler.
*Tuned all profiles, now sleep gov is pegasuq for all!
Fixed all missing config triggers and added more protection from battery gauge reset by extweaks without need.
*New Updates to SLUB scheduler that we use for memory management.
*Added new stuff to extweaks!
Now we have:
bln tab:
SWITCH to turn of BLN!
SWITCH to turn ON led lights on touch! it's use the led time out!
Fixed BLN test button.
cpu tab:
SWITCH to turn on/off wakeup booster and set the boost delay!
*Reverted last USB code update from NOTE, found that driver stuck after long charge and we can get to storage via USB, we have SG3 driver, so to mix them probably bad idea,
*Restored CPU code that needed for SAMMY rom stability to prevent SOD, so i hope it's will be ok now.
*Small fixing and cleaning. see GIT's
*Fixed WIFI wakelocks by removing latest patches, need to work on them first.
*Added CPU patches from GM
*Added Audio Amplifier GAIN for headphones 0DB 1.5DB 3-6DB addon by GM! see extweaks.
*Tweaked all profiles! set the suspend freq to min 700 max 800! as Samsung request! lest stop the SOD! please do not change that settings.
*Added new Patch for WIFI filter found by Entropy512 seems that we had an open packet filter that helped to drain battery with wakelocks!
*Fixed some cortex code, all should be good. and fast!
*Removed EXP ver, need to work on it.
*For now this kernle not include new Power Manager by VOKU, we still testing!
*Fixed Wakeup booster script, now will wake and power the phone for 10 sec on max we can get! the reduce to normal as user set in extweaks! will work only if background process is ON,
*Changed all profiles! boosted GPU freq and voltage for all, after testing with heavy games! now stable! + govs change.
*Cleaned and updated HYPER + ONDEMAND govs to 3.0.Y tree + mods.
*Lots of new stuff ported by voku for WIFI driver, so test it as much as you can.
*Fixed some bugs in cortex script, removed not used stuff from crypto module.
*Fixed SAMMY boot (reverted some stuff)
*Fixed led_timeout bug in extweaks.
*Fixed zram stats info for roms without BASH, it's temp solution till we can fix the main script.
*Added new tweaks, Negative mod On/Off via checkbox + advanced wakelock mod, will show all wakelocks that was ON and ended! so we can debug, who drained battery! it's OFF, by default, see MISC tab! added by GM! :)
*Updated New USB drivers from NOTE Update 3, need to test all we got (usb devices and external storage via usb)
*Reduced compression via XZ and reduced memory used for it, kernel bigger but little faster on boot.
*Small new fix to WIFI driver.
*Added interactive to govs, updated to max by myfluxi
*Added code correction for suspend freq + max freq for performance gov.
*Tuned touch screen wakeup and responce, very smooth now.
*Fix to pegasusq by GM
*Fixed GPU undervoltage script, (by myfluxi)
*And more, see GIT's
*Fixed boot for SlimICS!
*Fixed Battery charge low power mode + updated images from SG3
*Added full support for JellyBean ROM from working source thanks for huge help on that with the INIT root files!
*Fixed lots of mall bugs / syntax / descriptions, in all kernel scripts (extweaks and more)
*Added new stuff to extweaks (usb mod change, auto brightness)
*New fix to WIFI driver.
*Improved I/O latency
*Improved disk write to USB storage
*Improved screen wakeup
*Improved screen off state battery saver. (cortex)
*Lots of code fix and porting as always
*Reduced logs to dmesg and logcat, less chat, maybe less drain..
*Restored luzactive gov and removed tweaks for it on screen on/off now people can use the app for it to control settings.
If someone using apps like SETCPU with his own profiles, please do DISABLE in extweaks cortexbrain tab for CPU-TWEAKS! then your profiles will make difference, if it's enabled, then internal script do the work.
*Improved brightness levels, now more bright, was too dark on min..
*Updated to last released recovery by gokhanmoral!
*Reworked all boot structure to support 4 major branches and still give all that i have to all.
*Small change for kernel name, now it's better to find the last update in recovery!
*Tuned the background control process to wait 10 sec on screen off before do all the system/cpu/voltage/and more changes, just give us time to think if we finished with phone :) before it's shutdown to minimum :)
*Uploaded also in .TAR as promised.*Made lots of code fix and BOOT fix, should be ok now.
*VOKU ported new code for RAM, CPU, Power manager from 3.1.Y good work!
*Added boot progress bar, nice to have :)
*FIXED GPS Activation, deleted 4.1C/D (bugs)
*Fixed New boot order for MIUI and SAMMY and SlimICS
Need to test it.
*Fixed the screen shake on touch hold.
*Huge amount of changes to RAM, CPU, Kernel Operations (merged from 3.1.Y + 3.4.Y)
*Found and removed wakeup bug on lock screen!
*Tuned all govs and ported pegasusq from last siyah kernel to restore normal operation with it.
*Added tweak in extweak in screen tab for managing the negative color mod :)
*Voku ported lots of good stuff including new patch to WIFI driver, some problems resolved, need to test for long term.
*Fixed luzactive gov from been too slow.
*Added support for JellyBeens ROM branch! (by gokhanmoral)
*Lots of tuning and code fix, see GIT, it's too much for change log page*Massive PORT and adapt from 3.1.Y kernel by VOKU!
New code for: CPU, RAM, FS, Kernel operations and lots more! see GIT!
Now cpu used 1~10% on 100Mhz! and was like 25~35% so more battery save and more performance.
*Fixed Voltage for cpu reset on screen on/off
*Added new LOGO :) by Crazy-silver
*Arranged CPU govs by performance for awake, and by power save in deepsleep
See Extweaks CPU tab.
*Fixed battery reset on recovery.
*Added new Tweaks to CFS scheduler in CPU tab. tune it only if you know what is it and what it's set.
*Added more tuning, now we get more performance!
*Battery drain reduced due to low cpu use, and allot of stuff.
*Fixed oom_kill_allocating_task set to 0, now it's 1 as recommended.
*Fixed CFS tweaks activation.
*Added CORTEXBRAIN tab in extweaks, now you can control it, best not, but if you like to mess with stuff, then see what it do in initramfs git and change.
*Tuned scary gov should be better now, and removed it from defaul/battery just in case. added abyssplug.
*Switched to more stable compression and optimization level -O3 from Ofast
Should be more stable now. i even see some better benchmarks.
*Improved ROOT Install/Remove in extweaks + check button :)
*Fixed SCARY gov to be more adapted for this kernel.
*Allowed Abyssplug gov to control second CPU on/off
*Ported fix for vibrate for Samsung roms, TNX Gokhanmoral.
Need to test it! so please do.
*FIXED the BATTERY fuel gauge bug! now it's stable as should!
Give it some time to recover from bug to show good drain results.
but it's will stay correct after reboot, (did 10! no problemo!)
*New CPU idle code ported from 3.1.y kernel by VOKU! we now have the most advanced CPU code for SG2 :)
*Lots of changes and restoring and tuning CPU,GOVS,RAM,TWEAKS.
*Tuned data partition to be more resistant to sudden power loose (sod/batt pull and stuff) this is the android default, data=ordered, we had data=writeback, it's faster but less recommended for phones...
So now its safe again.
*Kernel Cleaning Script is build IN! by VOKU no need to run any external clean scripts.
*Small change to BLN, now will obey touch key voltage! only on blink and steady.
*Locked vibrate to min 25% (max 100%) and added code, if less than 25% set 75%, lets see if OK now after long sleep.
*More code updates from mainstream 3.0.y (some stuff was lost, so now i have my own mainstream kernel to update from)
*Tuned MAX freq for standby to 700Mhz
*Fixed UV reset after screen on/off
*Small config changes in INIT scripts / profiles.
*Added scary gov :) it's SLOW gov, good for battery save and will be used for deepsleep, also tuned it to wakeup fast!
added it to all profiles for deepsleep, and to extweaks
*Added more Voltage to CPU, now it's default ICS kernel voltage.
You can now reduce it by using asv group 4 or undervolt by -25 / -50 but test some time if no SOD. or just leave it alone.
*Updated to 3.0.36
*Added TNT to many bugs :laugh:
*Fixed slow wakeups
*Added more +25mv to lower cpu freq ranges to add more stability.
*boosted boot speed.
*Voku helped allot! he added lots of code fixing and updates to filesystem drivers and memory.
*Added new button at extweaks for checking current gps zone config.
*if you like to fix permissions, just push the button at extweaks misc and turn off the screen! fix will begin instantly! if you really need the phone, use it, but best to let it work top 2~3 min, depending on amount of mess and installed apps, it's done my 450 apps in 2 min :)
*we tuned profiles and voku added new stuff to conservative gov! so it's now the most saving battery gov! try it only for deepsleep (screen of gov)
it's slow, but this is what we need! less activity more battery!
*Vibrate should be OK now.
*now if phone is over 50c heat, and you turn off and on the screen. it's will auto drop to 1Ghz and to hotplug gov to cool off..
after temp will drop, and you turn screen on/off all your extweaks settings will be active again! so if was oc to max then you get it back :)
I care about my people :)
*Fixed the vibrate low after some time. + added extweaks interface for it.
*Added touch screen tuning
*Added screen color tuning (extweaks SCREEN tab)
*fixed WIFI driver
*Reduced batt drain
*Added HYPER gov, it's the most powerful gov in my kernel. :)
*Added New BLN from Myfluxi, it's works with aokp and cm9, need to check with original ics.
Lots of new tweaks in BLN tab
*Added lots of new code/bug fix for CPU / RAM / SYSTEM
*Corrected small bugs in extweaks,
*Updated to 3.0.35
*Reverted some commits that i think we can ignore for now. too much experimental.
*Added some more code fixes,
*Ported updated Vibrator driver code.
*Restored USB drivers, usb otg/disk-on-key should work.
*Added ZCACHE and CLEANCACHE this will boost I/O performance and help with heavy loads!
*Added massive amount of code fixing and tuning to RAM, CPU, NET.
*Added ability to boot in to DOWNLOAD(odin) mode from ROM->bootloader (credits to gokhanmoral)
*Tuned all profiles,
*Fixed ZRAM / GPS settings in extweaks!
*Added Fix permissions to extweaks MISC
*Added to system tweak to check if you have AD blocker file already, and if you do, then my adblocker will not be installed, if you dont, then you get one :)
*Added Zram turn off! not recommended, it's will shut down the zcache also. (no battery save from it, just little amount of cpu.)
*Added to GPSREGION option to restore your ROM default config! and one for not to change any config. (default!)
But restore will really work after you reinstall your rom, if you already changed it with my previous kernel version, (if not, new kernel users, then you set to go)
*Added lots of WIFI driver fixing! now Ch 13/14 will work as planed, and 5GHZ band will work as should.
*Added more pressure to save battery tweaks on screen off.
*Added ability to change the sleeping gov in extweaks + sleeping charging gov.
*Rearranged the extweaks CPU tab. now all in good order.
*Restored the Undervolt menu option. use it with care..
*Reduced undervoltage groups from 7 to 5, 6+7 are to low for our CPU.
*Updated to newest Linaro 12.05 GCC 4.7.1 ICS kernel builder! :) + patches to kernel for it to work.
*Patched All GOVS for more speed and battery save on screen off.
*Removed lots of logs generated from kernel to dmesg and logcat, now more quiet kernel and i hope it's will reduce some small battery drain.
*Blocked access to some logs that are written all the time to flash to save the flash and reduce internal cpu operations that we dont need.
*Fixed permissions to /data/anr! (no reboots any more)
*Ported more CPU code fixes.
*Fixed all kind of functions that can crash kernel and stuck the phone. there are more... there are always some more left... but we will get to them :)
*Updated to 3.0.34 Tree
*Added More EXtweaks Options:
Bus Freq, Bus Thresholds, Under voltage Groups, Suspend Freq, Zram Settings, Zram Stats, GPS Time Zone, GENTLE_FAIR_SLEEPERS, ARCH_POWER.
*Fixed and tuned lots of things in cortexbran-tune.sh script Cleaned old unused settings from extweaks xml
*Tuned all profiles.
*Tuned Network scripts, now i get a lot faster data connection!
*Added changes in CPU cores/voltage based on screen on/off
*Added cleaning of lost+found folders on each boot.
*Added WIFI fast sleep on standby.
*Code fixes and charge voltage config.
*Looks like the DATA partition fix at boot working great, and no serious problems, so i removed warning from change log, all cool :)
*Updated to 3.0.33 Tree
*Added Sec Rom NAND backup by gokhanmoral.
*Added lots of updates from SG3 kernel and NOTE(n7000) kernel.
*Added Abyssplug gov from Abyss kernel :) it's set as sleep gov in kernel operation script.
*Added one more level to BUSFREQ 100MHZ was lowest 133Mhz, may save some battery.
*Added LAZY gov and Hotplug
*I have reduced CPU global voltage! to save more power!
*Tuned all GOVS for less freq jumps and more stability,
*Added lowest power to GPU to 700mv by Myfluxi
In my profiles i use MIN 800mv, just in case, but you can test it.
*Made lots of profiles changes, please reset in recovery and set your preferred.
*Added changes to ADB operation, and lots of updates to USB and Misc code fixes.
*Massive script for kernel/rom management made by voku and me :)
It's will work by auto and set lots of tweaks: NET tweaks, GPU tweaks, CPU management, Deep Sleep Tuning, Charging states, and more!
It's name is cortexbrain-tune.sh :)
*Added DATA, CACHE, PRELOAD(sec-rom-system) partitions scan for errors and FIX! every boot!
I hope you want clean partition! there is no kernel / rom that will do that for you. :)
So errors are gathering slowly and some weird problems appear!
Well not any more :)
If no damage then no problems :) and no boot delay!.
*Added TAR kernel 3.2 for ODIN install to fix the recovery.
*Added new WIFI driver from SG3 :)
*Added ported changes to pegasusq GOV
*Tuned all profiles, (please reset and use one that you prefer.)
*New SD FAT32 driver from N7000 ported by Gokhanmoral
*CPU code restore, as was in 2.9 (no sod any more)
*Added fix_permissions script, you can run it via any terminal app or adb.
*Many drivers fixed by many devs, i have ported all :) Thanks to voku, gokhanmoral, myfluxi!
*New ZRAM compression from google, called snappy, it's use very little CPU to work. so ZRAM driver improved allot.
*Updated from source, recovery files and busybox.
*Reduced video ram from 32MB to 16MB, we had 9MB as default, so now more free ram shown. (try to run 1080p video and report if ok, or crap :) )
*Replaced WIFI driver from NOTE N7000 + fixes from lot of sources.
*Added BT drivers (more support, i hope it's will give someone any better compatibility with other devices.)
*Updated CPU code from source (siyah kernel)
*Tuned govs for more power save and performance. (ondemand + pegasusq) now back to ONDEMAND as DEFAULT.
*Added new option to dual mount sdcard+emmc via USB cable, and be able to use them in process of connection :) (one click connect)
See MISC tab in extweaks app :) after you disconnect usb, setting is released.
*Added new voltage code for GPU card and updated to source 3 N7000(NOTE) by myfluxi!
*Fixed STUCK after install on AOKP roms! (if you wait 60 sec with 2.8, rom will boot! now no wait, will boot as normal)
*New WIFI driver ported from N7000 (NOTE phone)
*New updated GPU driver (mali update 3)
*Tuned profiles, switched to pegasusq as default, (i am working on cool tweaking for it)
*Restored ntfs-3g if any one need it, + tweaks for it by gokhanmoral
*Some code fixing and settings tuning.
*Updated to 3.0.32 (lots of fixing)
*Updated new WIFI driver. (siyah kernel)
*Updated CPU code fixes from SOURCE(siyah kernel)
*Added all kind of tweaks and code fix from main line kernels.
*Improved support for SAMMY ROMS (ICS original)
*Improved battery drain, (Now Less drained on standby)
*Removed some addons that made SOD in many cases, now stable.
*Tuned my tweaks and scripts. (see initramfs) + updates from (siyah)
*Fixed init for MIUI roms, (restored + small changes)
*Added more cpu stability code from faux123
*Fixes to logger code and android binder.
*Messed allot with WIFI driver, work ok now.
*Tuned GPS permissions, should work now with non aokp roms.
*Added all new updates from all great devs :)
*fixed the init scripts to remove the encryption on boot.
*changed the charger voltage to 700mv and misc charger to 650, usb to 500.
cant be changed to different state via extweaks.
*compressed with XZ compression to allow moving all the modules inside the kernel image, now it's can be used as tar for odin.
*Added siyah in kernel name to activate dual boot support, as requested by Gokhan.
*tuned touch screen.
*tuned cpu
*tuned network
*updated recovery from ghokan.
*many new/updated drivers.
for full log see my git for initramfs and kernel.
kernel compressed with zlo the lowest compression for max speed.
so its was to big to fit the boot partition, i had to move the modules out of kernel.
so from version 2.3 you cant update via tar and odin.
so use recovery only.
or update the supplied modules to /system/lib/modules/
if you install via recovery, nothing needs to be done.
in case of emergency use 1.1 kernel in tar, then go to recovery and update to 2.X :)
*Tuned kernel for more battery saving
without reducing performance,
Now kernel will hold more in deep sleep.
*Switched to Linaro 12.4 gcc 4.7 toolchain. kernel is smaller now.
*Added CPU power management ported from NEXUS kernel.
*Made all kind of fixing and function exporting and cleaning warnings,
*Battery life improved by reducing activity in deep sleep, changes by myfluxi
*Added WIFI code fixes
*Added Network code fixes
*Tuned kernel tweak
*Added touch screen control by user, ground base code by myfluxi , now i need to put it to extweaks, still work to do..
*Updated to 3.0.31!
*Lots of cleanup and tuning to system tweaks,
*Lots of changes to recovery by gokhanmoral all for second rom and options to control it.
*Ported massive amount of code from sensation device kernel!
it's common Linux changes only, lots of bug fixing and function speedups!
see git, if you like something to read before bed :)
*Added some change to wifi to preserve more battery on sleep and wifi on.
*Fixed support for voodoo louder driver/app.
*Added lots of fixing to WIFI driver. see git.
*Fixed code for USB host and mouse/keyboard plug in.
*Added ability to change cpu min/max frequency in extweaks app.
*I have made huge amount of changes to kernel code, lots of ports from other great developers!
*tuned all profiles! you MUST clear profiles in recovery after install, and set one you like.
*For now we have static 15 CPU freq steps 1500->100, no change can be done without hot boot, so for stability i set it static.
*Added fix for cpu stats and stalls(hangs).
*New WIFI driver + lots of changes to it already.
*support for NTT-Docomo variant (you will need to “echo 16 > /proc/sys/kernel/rom_feature_set” to get gps working.
Step Table:
=========
5-steps: 1200, 1000, 800, 500, 200
6-steps: 1400, 1200, 1000, 800, 500, 200
7-steps: 1500, 1400, 1200, 1000, 800, 500, 200 (default.)
8-steps: 1600, 1400, 1200, 1000, 800, 500, 200, 100
9-steps: 1600, 1500, 1400, 1200, 1000, 800, 500, 200, 100
15-steps: 1500, 1400, 1300, 1200, 1100, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100
Have fun
Information Page​
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 3.0.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.
Info about Cortexbrain-tune.sh and more!
# ==============================================================
# Logic Explanations
#
# This script will manipulate all the system / cpu / battery behavior
# Based on chosen EXTWEAKS profile+tweaks and based on SCREEN ON/OFF state.
#
# When User select battery/default profile all tuning will be toward battery save!
# But user loose performance -20% and get more stable system and more battery left.
#
# When user select performance profile, tuning will be to max performance on screen ON!
# When screen OFF all tuning switched to max power saving! as with battery profile,
# So user gets max performance and max battery save but only on screen OFF.
#
# This script change governors and tuning for them on the fly!
# Also switch on/off hotplug CPU core based on screen on/off.
# This script reset battery stats when battery is 100% charged.
# This script tune Network and System VM settings and ROM settings tuning.
# This script changing default MOUNT options and I/O tweaks for all flash disks and ZRAM.
#
# TODO: add more description, explanations & default vaules ...
#
# ==============================================================
# Explanations
# ==============================================================
#
# oom_kill_allocating_task: If this is set to zero, the OOM killer will scan through the entire tasklist and select a task based on heuristics to kill.
#
# This normally selects a rogue memory-hogging task that frees up a large amount of memory when killed.
# If this is set to non-zero, the OOM killer simply kills the task that triggered the out-of-memory condition.
# This avoids the expensive tasklist scan.
#
# echo XXX > /proc/sys/vm/oom_kill_allocating_task;
# dirty_expire_centisecs: This tunable is used to define when dirty data is old enough to be eligible for writeout by the pdflush daemons.
#
# It is expressed in 100'ths of a second. Data which has been dirty in memory for longer than this interval will be written
# out next time a pdflush daemon wakes up.
#
# echo XXX > /proc/sys/vm/dirty_expire_centisecs;
# dirty_writeback_centisecs: The pdflush writeback daemons will periodically wake up and write "old" data out to disk.
#
# This tunable expresses the interval between those wakeups, in 100'ths of a second.
# Setting this to zero disables periodic writeback altogether.
#
# echo XXX > /proc/sys/vm/dirty_writeback_centisecs;
# drop_caches: Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
#
# To free pagecache:
# echo 1 > /proc/sys/vm/drop_caches
#
# To free dentries and inodes:
# echo 2 > /proc/sys/vm/drop_caches
#
# To free pagecache, dentries and inodes:
# echo 3 > /proc/sys/vm/drop_caches
# page-cluster: page-cluster controls the number of pages which are written to swap in a single attempt. The swap I/O size.
#
# It is a logarithmic value - setting it to zero means "1 page", setting it to 1 means "2 pages", setting it to 2 means "4 pages", etc.
# The default value is three (eight pages at a time). There may be some small benefits in tuning this to
# a different value if your workload is swap-intensive. (default 3)
#
# echo XXX > /proc/sys/vm/page-cluster;
# laptop_mode: laptop_mode is a knob that controls "laptop mode". When the knob is set, any physical disk I/O
#
# (that might have caused the hard disk to spin up, see /proc/sys/vm/block_dump) causes Linux to flush all dirty blocks.
# The result of this is that after a disk has spun down, it will not be spun up anymore to write dirty blocks,
# because those blocks had already been written immediately after the most recent read operation.
# The value of the laptop_mode knob determines the time between the occurrence of disk I/O and when the flush is triggered.
# A sensible value for the knob is 5 seconds. Setting the knob to 0 disables laptop mode.
#
# echo XXX > /proc/sys/vm/laptop_mode;
# rr_interval: rr_interval or "round robin interval". This is the maximum time two SCHED_OTHER (or SCHED_NORMAL, the common scheduling policy)
#
# tasks of the same nice level will be running for, or looking at it the other way around, the longest duration two tasks
# of the same nice level will be delayed for. When a task requests cpu time, it is given a quota (time_slice) equal to the
# rr_interval and a virtual deadline, while increasing it will improve throughput, but at the cost of worsening latencies.
#
# echo XXX > /proc/sys/kernel/rr_interval;
# dirty_background_ratio: Contains, as a percentage of total system memory, the number of pages at which the pdflush background writeback daemon will
# start writing out dirty data.
#
# echo XXX > /proc/sys/vm/dirty_background_ratio;
# dirty_ratio: Contains, as a percentage of total system memory, the number of pages at which a process which is generating disk writes will itself start writing out dirty data.
#
# echo XXX > /proc/sys/vm/dirty_ratio;
# iso_cpu: Setting this to 100 is the equivalent of giving all users SCHED_RR access and setting it to 0 removes the ability to run any pseudo-realtime tasks.
#
# echo XXX > /proc/sys/kernel/iso_cpu;
# ===============
#
# Kernel-Settings
#
# ===============
# msgmni: The msgmni tunable specifies the maximum number of system-wide System V IPC message queue identifiers (one per queue).
#
# echo XXX > /proc/sys/kernel/msgmni;
# sem: This file contains 4 numbers defining limits for System V IPC semaphores. These fields are, in order:
#
# SEMMSL - the maximum number of semaphores per semaphore set.
# SEMMNS - a system-wide limit on the number of semaphores in all semaphore sets.
# SEMOPM - the maximum number of operations that may be specified in a semop(2) call.
# SEMMNI - a system-wide limit on the maximum number of semaphore identifiers.
#
# The default values are "250 32000 32 128".
#
# echo XXX XXX XXX XXX > /proc/sys/kernel/sem;
# ===============
#
# CPU-Settings
#
# ===============
# scaling_governor: Using Frequency Scaling Governors -> cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#
# -> http://publib.boulder.ibm.com/infoc...?topic=/liaai/cpufreq/TheOndemandGovernor.htm
#
# conservative - Increases frequency step by step, decreases instantly
# ondemand - Uses the highest CPU frequency when tasks are started, decreases step by step
# performance - CPU only runs at max frequency regardless of load
# powersave - CPU only runs at min frequency regardless of load
#
# echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# sched_latency_ns: Targeted preemption latency for CPU-bound tasks.
#
# echo XXX > /proc/sys/kernel/sched_latency_ns;
# sched_batch_wakeup_granularity_ns: Wake-up granularity for SCHED_BATCH.
#
# echo XXX > /proc/sys/kernel/sched_batch_wakeup_granularity_ns;
# sched_wakeup_granularity_ns: Wake-up granularity for SCHED_OTHER.
#
# echo XXX > /proc/sys/kernel/sched_wakeup_granularity_ns;
# sched_compat_yield: Applications depending heavily on sched_yield()'s behavior can expect varied performance because of the way CFS changes this, so turning on the sysctls is recommended.
#
# echo XXX > /proc/sys/kernel/sched_compat_yield;
# sched_child_runs_first: The child is scheduled next after fork; it's the default. If set to 0, then the parent is given the baton.
#
# echo XXX > /proc/sys/kernel/sched_child_runs_first;
# sched_min_granularity_ns: Minimum preemption granularity for CPU-bound tasks.
#
# echo XXX > /proc/sys/kernel/sched_min_granularity_ns;
# sched_features: NO_NEW_FAIR_SLEEPERS is something that will turn the scheduler into a more classic fair scheduler ?!?
#
# echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features;
# sched_stat_granularity_ns: Granularity for collecting scheduler statistics. [1/0]
#
# echo XXX > /proc/sys/kernel/sched_stat_granularity_ns;
# sched_rt_period_us: The default values for sched_rt_period_us (1000000 or 1s) and sched_rt_runtime_us (950000 or 0.95s).
#
# This gives 0.05s to be used by SCHED_OTHER (non-RT tasks). These defaults were chosen so that a run-away realtime
# tasks will not lock up the machine but leave a little time to recover it. By setting runtime to -1 you get the old behaviour back.
# threads-max: Gets/sets the limit on the maximum number of running threads system-wide.
#
# echo XXX > /proc/sys/kernel/threads-max;
# ===============
#
# Memory-Settings
#
# ===============
# swappiness: Swappiness is a parameter which sets the kernel's balance between reclaiming pages from the page cache and swapping process memory.
#
# The default value is 60. If you want kernel to swap out more process memory and thus cache more file contents increase the value.
# Otherwise, if you would like kernel to swap less decrease it. A value of 0 means "do not swap unless out of free RAM",
# a value of 100 means "swap whenever possible".
#
# echo XXX > /proc/sys/vm/swappiness;
# overcommit_memory: Controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.
#
# 0 - Heuristic overcommit handling.
# Obvious overcommits of address space are refused. Used for a typical system.
# It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage.
# root is allowed to allocate slighly more memory in this mode. This is the default.
# 1 - Always overcommit.
# Appropriate for some scientific applications.
# 2 - Don't overcommit.
# The total address space commit for the system is not permitted to exceed swap plus a
# configurable percentage (default is 50) of physical RAM. Depending on the percentage you use,
# in most situations this means a process will not be killed while attempting to use already-allocated memory but
# will receive errors on memory allocation as appropriate.
# overcommit_ratio: Percentage of physical memory size to include in overcommit calculations.
#
# Memory allocation limit = swapspace + physmem * (overcommit_ratio / 100)
#
# swapspace = total size of all swap areas
# physmem = size of physical memory in system
# vfs_cache_pressure: Controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects.
#
# At the default value of vfs_cache_pressure = 100 the kernel will attempt to reclaim dentries and inodes at a "fair" rate with respect
# to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches.
# Increasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes.
#
# echo XXX > /proc/sys/vm/vfs_cache_pressure;
# min_free_kbytes: This is used to force the Linux VM to keep a minimum number of kilobytes free.
#
# The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved
# free pages based proportionally on its size.
#
# echo XXX > /proc/sys/vm/min_free_kbytes;
# ===============
#
# I/O-Settings
#
# ===============
# read_ahead_kb: Optimize for read-throughput (cache-value).
#
# example of C-program for finding correct vaules for Linux
# -> http://pastebin.com/Rg6qVJQH
#
# fifo_batch: Controls the maximum number of requests per batch.
#
# This parameter tunes the balance between per-request latency and aggregate
# throughput. When low latency is the primary concern, smaller is better (where
# a value of 1 yields first-come first-served behaviour). Increasing fifo_batch
# generally improves throughput, at the cost of latency variation.
# back_seek_max: This parameter, given in Kbytes, sets the maximum גdistanceג
#
# By default, this parameter is set to 16 MBytes.
# This distance is the amount of space from the current head location to the sectors that are backward in terms of distance.
# This idea comes from the Anticipatory Scheduler (AS) about anticipating the location of the next request.
# This parameter allows the scheduler to anticipate requests in the גbackwardג
nextג
# back_seek_penalty: This parameter is used to compute the cost of backward seeking.
#
# If the backward distance of a request is just (1/back_seek_penalty) from a גfrontג
# the seeking cost of the two requests is considered equivalent and the scheduler will not bias toward one or the other
# (otherwise the scheduler will bias the selection to גfront direction requests).
# Recall, the CFQ has the concept of elevators so it will try to seek in the current direction as much as possible to avoid the latency associated with a seek.
# This parameters defaults to 2 so if the distance is only 1/2 of the forward distance, CFQ will consider the backward request to be close enough
# to the current head location to be גcloseג
# fifo_expire_async: This particular parameter is used to set the timeout of asynchronous requests.
#
# Recall that CFQ maintains a fifo (first-in, first-out) list to manage timeout requests.
# In addition, CFQ doesnגt check the expired requests from the fifo queue after one timeout is dispatched (i.e. there is a delay in processing the expired request).
# The default value for this parameter is 250 ms. A smaller value means the timeout is considered much more quickly than a larger value.
# fifo_expire_sync: This parameter is the same as fifo_expire_async but for synchronous requests.
#
# The default value for this parameter is 125 ms.
# If you want to favor synchronous request over asynchronous requests, then this value should be decreased relative to fifo_expire_asynchronous.
# slice_sync: Remember that when a queue is selected for execution, the queues IO requests are only executed for a certain amount of time (the time_slice) before switching to another queue.
#
# This parameter is used to calculate the time slice of the synchronous queue.
# The default value for this parameter is 100 ms, but this isnגt the true time slice.
# Rather the time slice is computed from the following: time_slice = slice_sync + (slice_sync / 5 * 4 ג io_priority)).
# If you want the time slice for the synchronous queue to be longer (perhaps you have more synchronous operations), then increase the value of slice_sync.
# slice_async: This parameter is the same as slice_sync but for the asynchronous queue.
#
# The default is 40 ms. Notice that synchronous operations are preferred over asynchronous operations.
# slice_asyn_rq: This parameter is used to limit the dispatching of asynchronous requests to the device request-queue in queueגs slice time.
#
# This limits the number of asynchronous requests are executed (dispatched).
# The maximum number of requests that are allowed to be dispatched also depends upon the io priority.
# The equations for computing the maximum number of requests is, max_nr_requests = 2 * (slice_async_rq + slice_async_rq * (7 ג io_priority)). The default for slice_async_rq is 2.
# slice_idle: This parameter is the idle time for the synchronous queue only.
#
# In a queueגs time slice (the amount of time operations can be dispatched), when there are no requests in the synchronous queue CFQ will not switch to another queue
# but will sit idle to wait for the process creating more requests. If there are no new requests submitted within the idle time, then the queue will expire.
# The default value for this parameter is 8 ms. This parameters can control the amount of time the schedulers waits for synchronous requests.
# This can be important since synchronous requests tend to block execution of the process until the operation is completed. Consequently,
# the IO scheduler looks for synchronous requests within the idle window of time that might come from a streaming video application or something that needs synchronous operations.
# quantum: This parameter controls the number of dispatched requests to the device queue, request-device (i.e. the number of requests that are executed or at least sent for execution).
#
# In a queueגs time slice, a request will not be dispatched if the number of requests in the device request-device exceeds this parameter.
# For the asynchronous queue, dispatching the requests is also restricted by the parameter slice_async_rq. The default for this parameter is 4.
# ===============
#
# BFQ-Settings
#
# ===============
# timeout_sync, timeout_async: The maximum amount of disk time that can be given to a task once it has been selected for service, respectively for synchronous and asynchronous queues.
#
# It allows the user to specify a maximum slice length to put an upper bound to the latencies imposed by the scheduler.
# max_budget: The maximum amount of service, measured in disk sectors, that can be provided to a queue once it is selected (of course within the limits of the above timeouts).
#
# According to what we said in the description of the algoritm, larger values increase the throughput for the single tasks and for the system,
# in proportion to the percentage of sequential requests issued. The price is increasing the maximum latency a request may incur in.
# The default value is 0, which enables auto-tuning: BFQ tries to estimate it as the maximum number of sectors that can be served during timeout_sync.
# max_budget_async_rq: In addition to the max_budget, limit, async queues are served for a maximum number of requests, after that a new queue is selected.
# low_latency: If equal to 1 (default value), interactive and soft real-time applications are privileged and experience a lower latency.
# more Informations can be found here -> http://doc.opensuse.org/documentation/html/openSUSE/opensuse-tuning/part.tuning.kernel.html
NEW KERNEL NEW KERNEL \/
ram3n said:
Hey welcome matey,
Nice to see another awesome kernel.
Hope you the best!
Sure this one will rock against siyah.
Cheers
Sent via my s2 monster
Click to expand...
Click to collapse
You fast!
I added 2 post for more info..
If you took the second page, i will ask you in future to add some stuff about kernel for all people
thanks dorimanx
now i will try your kernel
can i use setcpu to set cpu Govs?
thank you
robertus23 said:
thanks dorimanx
now i will try your kernel
can i use setcpu to set cpu Govs?
thank you
Click to expand...
Click to collapse
yes you can, all that you want, will work
Freedom for all
thank you dorimanx
dorimanx said:
yes you can, all that you want, will work
Freedom for all
Click to expand...
Click to collapse
If I remember your kernel from the htc hd2 then I'll expect nothing less
Will test it and report back as soon as possible :]
Welcome!
Have a good day :]
Good to see you here dorimanx. Loved the hd2 kernels!
Sent from my GT-I9100 using xda premium
This is bomb ... Bomb kernel for all ics Rom... see its benchmark...!! Its really a beast of all kernel...
What about zram? How to check and activate..? Till today I cud not get it to work on your pre release kernel... sorry..!! I will wait for it..
TapaTalk Gnex Galaxy Sii
so far everything work perfect-it's mega speed kernel,no UV,no set cpu and bench is 4813 on quadrand
fantastic
thanks
The king of Kernels is here.
Needless to say I'm another old HD2 user, and i regard you as one of the main Developers responsible for the HD2's longevity.
The S2 community is in for a treat.
Welcome and thanks....(Again).
dorimanx said:
You fast!
I added 2 post for more info..
If you took the second page, i will ask you in future to add some stuff about kernel for all people
Click to expand...
Click to collapse
Haha, Yep others always call me The Fast
No problem mate, I will do it
buzzboy said:
The king of Kernels is here.
Needless to say I'm another old HD2 user, and i regard you as one of the main Developers responsible for the HD2's longevity.
The S2 community is in for a treat.
Welcome and thanks....(Again).
Click to expand...
Click to collapse
thanks! it's nice to be remembered!
My HD2 kernel and ROM still supported by me.
I am now in two fronts
Enjoy new power for SG2
I will try to make it best for all to enjoy!
Please report any bugs or suggestions,
I will do my best to add/fix all i can.
Do this kernel works on AOKP based roms?? Thanks
GLunPy said:
Do this kernel works on AOKP based roms?? Thanks
Click to expand...
Click to collapse
Yes !
10 chars
Sent from my GT-I9100 using xda premium
how about aosp? i tried it now but unfortunately almost bricked my device. installed via cwm, restarted and screen went all pixelated and stuck on bootscreen with battery heating up fast
buzzboy said:
The king of Kernels is here.
Needless to say I'm another old HD2 user, and i regard you as one of the main Developers responsible for the HD2's longevity.
The S2 community is in for a treat.
Welcome and thanks....(Again).
Click to expand...
Click to collapse
Sounds good I'm currently so satisfied with my setup that I ain't flashing nothing, but I will definitly keep an eye on this thread.
dead0 said:
how about aosp? i tried it now but unfortunately almost bricked my device. installed via cwm, restarted and screen went all pixelated and stuck on bootscreen with battery heating up fast
Click to expand...
Click to collapse
what rom do you have?
is it ICS based?
I have tested on CM9, and Original Samsung ICS,
It's configured for MIUI also.. (I didnt tried yet)

[KERNEL] Bricked-Kernel Grouper/Tilapia

Welcome to the most customizable N7 kernel on xda
Bricked-Kernel Nexus 7 (grouper)
Replaced NVIDIA's strange hotplug manager with my own: tegra_mpdecision​
Features:
Based upon Googles tegra3 source
Fixed section mismatches
Various other fixes (look @ github)
Compiled with gcc4.7.2 toolchain (linaro 09.12)
Replaced NVIDIAs hotplug manager with tegra_mpdecision (better battery life + performance)
Extensive sysfs interface for mpdecision with all the tuneables you want
Highly modified ondemand governor for tegra3 & mpdecision (this is the only recommended governor atm)
Fixed usage of 51Mhz clock
GPU OC (416/484/520Mhz)
Truly variant free CPU OC for all devices (51 - 1600Mhz)
Fixed max cpufreq resets throughout the kernel
All cores now use the max frequency (before: only in singlecore, otherwise -100Mhz)
Undervolting (faux123)
Default clocks: 102min & 1300max (+100Mhz overclocked) & 475 Maxscroff
earlysuspend/lateresume for ondemand including special screen off settings to save power
Aroma Installer by amarullz
cmdline interface for cpu min/max/maxscroff/gpuoc/scheduler/governor
---Just flash the kernel with your desired settings, no more need for oc apps. Reflash if you want to change sth. It's that easy!
FSync Control by Ezekeel
export t3 variant to debugfs by faux123 (adb shell cat /sys/kernel/debug/t3_variant)
lowered panel min brightness to 8
ZRAM
enabled NFSv3&4
Check the compare links for the rest ​
Where is tha Changelog???
There will be no more changelogs.
Instead the download pages were outfitted with compare links to github for each download.​
How to install?
Flash through recovery. #done.​
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 <<<​
Donor List:​
> Hall of fame <
With special thanks to all N7 piggy bank donors!
Thank you very much!​
Source:
​
Benchmark:
Knowledge base:
What is tegra_mpdecision?
100% kernel based multi core decision! (should cpu1/2/3 be online or not, do we need the low-power/ninja core now?)
This replaces the stock nvidia hotplug solution.
Check /sys/kernel/tegra_mpdecision/conf/ for the configuration.
startdelay = time until mpdecision starts doing it's magic (20000)
delay = time between checks (130)
pause = if something else plugs in the cpu, fall asleep for 10000ms (10 secs)
scroff_single_core = Force low-power mode if screen is off (1)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
min_cpus = min cpus to be online, cannot be < 1. Default: 1
max_cpus = max cpus to be online, cannot be > 4. (if you set it to 2 and min_cpus to 1 you will basically have a dualcore) Default: 4
idle_freq = a value against that will be checked if a core +/- is requested. (475000)
lpcpu_up_hsyteresis = minimum number of requests that have to be send in order to switch to low-power mode (4)
lpcpu_down_hsyteresis = minimum number of requests that have to be send in order to switch to g-mode (quadcore-mode). Overridden by a requested freq that is higher than the max supported lp-mode frequency. (2)
If cpu0 is below that value and a core up of another cpu is requested, nothing will happen.
If any other cpu is above that value and a core down of that cpu is requested, nothing will happen. (otherwise it would now put down that cpu even though it is still working, which isn't what we want)
Hot plug thresholds (aka now it gets 'complicated')
This small formula calculates which value will be used: (number_of_cpus_online - 1) * 2
The result of this formula will be the nwns_threshold where a new cpu is hotplugged.
The result of this formula + 1 will be the nwns_threshold where a cpu is unplugged.
nwns_threshold_x = runqueue threshold, if this is reached cpuX will be hot/unplugged
twts_threshold_x = time threshold, this amount of time must have passed for the related action to be taken (hot/unplug)
Example:
One cpu is online.
(1 - 1) * 2 = 0 ergo:
nwns_threshold_0 = cpu1 will be hotplugged at this value
((1 - 1) * 2) + 1 = 1
nwns_threshold_1 = cpu0 will be unplugged at this value
This will regulate when we switch to lp-mode, effectively replacing the quadcore g-mode core with the ninja lp-mode core.
Two cpus are online.
(2 - 1) * 2 = 2 ergo:
nwns_threshold_2 = cpu2 will be hotplugged at this value
((2 - 1) * 2) + 1 = 3
nwns_threshold_3 = cpu1 will be unplugged at this value
etc...
(all times are in ms)
If you want to see the mpdecision magic happening:
Code:
adb shell
cat /proc/kmsg | grep 'MPDEC'
mpdecision's input event boost, aka project butter
This will boost your min cpu speed if you touch the screen or press a button and gives you full control.
In those events the min cpu freq will be risen to a predefined value (look below) on every online cpu. This boosts overall reaction times and smoothness a lot. (works similar to the qcom mpdecision binary)
Configuration files:
[email protected]:/sys/kernel/tegra_mpdecision/conf # ls
boost_enabled
boost_freqs
boost_time
All of them work like the usual sysfs files, except one special case:
boost_freqs will list all frequencies from cpu 0 to cpu x. Cpu 3 and any following cpu will share one frequency.
To change those frequencies echo the cpu number + the frequency in khz. To change the boost freq of cpu3 (and 4,5,6,7,8, etc) the echo would look as follows:
Code:
echo "3 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
for cpu0:
Code:
echo "0 1026000" > /sys/kernel/tegra_mpdecision/conf/boost_freqs
Defaults:
Code:
cat /sys/kernel/tegra_mpdecision/conf/boost_freqs
910000
910000
760000
620000
Recommended governor?
Ondemand.​Why do I have no WLAN?
This kernel is too big for our boot.img with WLAN included into the kernel, so it is built as a module. That means it needs to be inserted into the kernel upon boot up, which needs to be automated for maximum comfort = userinit (init.d) support.
The zip adds init.d support to your ramdisk, if that fails for some reason the wlan module cannot be inserted.
if
Code:
adb shell lsmod
doesn't show this:
Code:
tun 14060 0 - Live 0x00000000
cifs 239646 0 - Live 0x00000000
bcmdhd 433083 0 - Live 0x00000000
Then init.d support is probably missing.
You can test it by going to /system/etc/init.d/ and executing 00wlan.
Code:
adb shell
su
. /system/etc/init.d/00wlan
Wait a few seconds and try to enable wifi and repeat the above lsmod command (should now show bcmdhd as live, you can execute 01cifs and 02tun too).
If WLAN now works, init.d support is missing.
You need to have busybox installed in order to be able to get init.d support going, this shouldn't be a problem for most people, since it is usually installed when rooting your phone anyway (and who does unlock but not root their phone? :/)
It does not matter if busybox is installed in /system/bin or /system/xbin, my script will detect the location upon flashing and patch the ramdisk accordingly.
If no busybox is found, the script will add init.d support to your ramdisk with the default location: /system/xbin/busybox. All you need to do is install busybox there and reboot your phone.
​
show-p1984 said:
Knowledge base:
(under construction)
tegra_mpdecision manual:
coming soon(tm)
Click to expand...
Click to collapse
looks great is this kernal compatible with cm10 based roms such as paranoid android
Flypants101010 said:
looks great is this kernal compatible with cm10 based roms such as paranoid android
Click to expand...
Click to collapse
Yes, ofc
Running cm10 nightlies myself.
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
All AOSP roms work with Bricked
* Hello World *
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Feel like flashing something tonight!
Sent from my Nexus 7 using xda premium
I tried flashing this a few times and it fails with each try.
Dabaum said:
What tweaks did you make to on-demand, if you don't mind me asking? The only thing I've noticed is that frequency switching seems to happen faster & more often.
Click to expand...
Click to collapse
I mostly adapted it to work with the lpcore while the screen is on and also with special power saving setting while the screen is off.
The 2 phase frequency was changed to accomplish that.
It also applies a powersave bias while screen is off.
Additionally I changed the settings to allow faster scaling with less load. (70% > freq incr)
Source is currently being uploaded, but since I kept the history intact it is taking ages. You can look it up there in more detail once the source is up
airmaxx23 said:
I tried flashing this a few times and it fails with each try.
Click to expand...
Click to collapse
With what message?
I guess because your recovery does not identify your device as 'grouper'.
show-p1984 said:
With what message?
I guess because your recovery does not identify your device as 'grouper'.
Click to expand...
Click to collapse
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
show-p1984 said:
It most certainly does not say "failed" and nothing else. Look harder.
Using twrp recovery me and my beta testee had no problems at all.
Click to expand...
Click to collapse
It says "unable to open zip file. Error flashing zip."
show-p1984 said:
Yes, ofc
Running cm10 nightlies myself.
Click to expand...
Click to collapse
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
airmaxx23 said:
It just says failed, I've had no problems flashing anything else and I'm flashing mutilple times a day usually.
Click to expand...
Click to collapse
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
corrupt download? checked md5/sha1?
corrupt phone upload? checked md5/sha1?
friedsonjm said:
And just to be clear, with non-CM based ones as well? I'm running the 'Glazed' ROM....
Click to expand...
Click to collapse
As long as it is AOSP you should be fine.
But just try it and report back, then we are all a bit more enlightened
(Sorry, I can't possibly test all the ROMs out there ^^)
T-junk said:
Nothing wrong with the zipfile, maybe corrupted download? did you do md5 hash check before flash?
It's either your custom recovery or a corrupted download, period.
ps. Happy Flashing.
Click to expand...
Click to collapse
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
airmaxx23 said:
It says "unable to open zip file. Error flashing zip."
Click to expand...
Click to collapse
I get the same.
Sent from my Nexus 7 using xda premium
airmaxx23 said:
If I try downloading it directly to my tablet the resulting file is only 17.51K in size, downloading it with a computer takes care of the problem.
Click to expand...
Click to collapse
StrangerWeather said:
I get the same.
Click to expand...
Click to collapse
I guess same problem for you StangerWeather.
Try downloading on your pc, I will look into that webserver issue tomorrow. (or maybe it's a chrome issue? who knows ^^)

[Q] MTK6589 / MT6589 Overclock - Help building Kernel

I have a Star S9500 with MTK6589 Cortex-A7 Quad Core @ 1.2GHz with PowerVR SGX544 Single Core.
I have the Kernel Source extracted from an Acer smartphone here: https://github.com/varunchitre15/MT6589_kernel_source .
In the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_cpufreq.c file, in the line 127 has the code:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F1; /* default 1.2GHz */
If I change it to:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F0_0; /* OC 1.7GHz */
it changes from 1209000 KHz to 1703000 KHz, as in the line 70:
Code:
#define DVFS_F0_0 (1703000) // KHz
#define DVFS_F0_1 (1599000) // KHz
#define DVFS_F0_2 (1508000) // KHz
#define DVFS_F0_3 (1404000) // KHz
#define DVFS_F0_4 (1300000) // KHz
#define DVFS_F1 (1209000) // KHz
#define DVFS_F2 ( 988000) // KHz
#define DVFS_F3 ( 754000) // KHz
#define DVFS_F4 ( 497250) // KHz
I think I don't need to change de voltage as it is already set to the max supported by the Kernel.
I don't have problems with overheating or extreme battery drain, as I have the CPU Master Pro app and when the screen is off or he is overheating it sets to 500MHz x4.
I want to OC the GPU too, but I can't find the line to change te clock in the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_gpufreq.c file.
I already built the Kernel in Debian OS succefully, but now I don't know how to put to .img to flash it!
Anyone can build the Kernel and publish it or just tell me what must I do?
EDIT: I just want to be able to play Real Racing 3 at 960p. I only get a great performance at standard FWVGA resolution and if I set 960x1708 @ 390 DPI screen the performance is very good except in Real Racing 3 and other graphical intense games.
Best regards,
Ivan Santos.
IvanSantosPT said:
I have a Star S9500 with MTK6589 Cortex-A7 Quad Core @ 1.2GHz with PowerVR SGX544 Single Core.
I have the Kernel Source extracted from an Acer smartphone here: https://github.com/varunchitre15/MT6589_kernel_source .
In the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_cpufreq.c file, in the line 127 has the code:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F1; /* default 1.2GHz */
If I change it to:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F0_0; /* OC 1.7GHz */
it changes from 1209000 KHz to 1703000 KHz, as in the line 70:
Code:
#define DVFS_F0_0 (1703000) // KHz
#define DVFS_F0_1 (1599000) // KHz
#define DVFS_F0_2 (1508000) // KHz
#define DVFS_F0_3 (1404000) // KHz
#define DVFS_F0_4 (1300000) // KHz
#define DVFS_F1 (1209000) // KHz
#define DVFS_F2 ( 988000) // KHz
#define DVFS_F3 ( 754000) // KHz
#define DVFS_F4 ( 497250) // KHz
I think I don't need to change de voltage as it is already set to the max supported by the Kernel.
I don't have problems with overheating or extreme battery drain, as I have the CPU Master Pro app and when the screen is off or he is overheating it sets to 500MHz x4.
I want to OC the GPU too, but I can't find the line to change te clock in the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_gpufreq.c file.
I already built the Kernel in Debian OS succefully, but now I don't know how to put to .img to flash it!
Anyone can build the Kernel and publish it or just tell me what must I do?
EDIT: I just want to be able to play Real Racing 3 at 960p. I only get a great performance at standard FWVGA resolution and if I set 960x1708 @ 390 DPI screen the performance is very good except in Real Racing 3 and other graphical intense games.
Best regards,
Ivan Santos.
Click to expand...
Click to collapse
Why don't you try to upload and share your compiled kernel (i.e zImage) with us, we can test it, and if it's really working, we can work on overclock gpu too..
IvanSantosPT said:
I have a Star S9500 with MTK6589 Cortex-A7 Quad Core @ 1.2GHz with PowerVR SGX544 Single Core.
I have the Kernel Source extracted from an Acer smartphone here: https://github.com/varunchitre15/MT6589_kernel_source .
In the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_cpufreq.c file, in the line 127 has the code:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F1; /* default 1.2GHz */
If I change it to:
Code:
static unsigned int g_max_freq_by_ptp = DVFS_F0_0; /* OC 1.7GHz */
it changes from 1209000 KHz to 1703000 KHz, as in the line 70:
Code:
#define DVFS_F0_0 (1703000) // KHz
#define DVFS_F0_1 (1599000) // KHz
#define DVFS_F0_2 (1508000) // KHz
#define DVFS_F0_3 (1404000) // KHz
#define DVFS_F0_4 (1300000) // KHz
#define DVFS_F1 (1209000) // KHz
#define DVFS_F2 ( 988000) // KHz
#define DVFS_F3 ( 754000) // KHz
#define DVFS_F4 ( 497250) // KHz
I think I don't need to change de voltage as it is already set to the max supported by the Kernel.
I don't have problems with overheating or extreme battery drain, as I have the CPU Master Pro app and when the screen is off or he is overheating it sets to 500MHz x4.
I want to OC the GPU too, but I can't find the line to change te clock in the MT6589_kernel_source/mediatek/platform/mt6589/kernel/core/mt_gpufreq.c file.
I already built the Kernel in Debian OS succefully, but now I don't know how to put to .img to flash it!
Anyone can build the Kernel and publish it or just tell me what must I do?
EDIT: I just want to be able to play Real Racing 3 at 960p. I only get a great performance at standard FWVGA resolution and if I set 960x1708 @ 390 DPI screen the performance is very good except in Real Racing 3 and other graphical intense games.
Best regards,
Ivan Santos.
Click to expand...
Click to collapse
Any news? A Kernel upload could help you and the community.
However. Read this http://forum.xda-developers.com/showthread.php?t=1748297
This helped me to recompile a GNex Kernel... added missing SmartassV2 :laugh:
IvanSantosPT said:
I only get a great performance at standard FWVGA resolution and if I set 960x1708 @ 390 DPI screen the performance is very good except in Real Racing 3 and other graphical intense games.
Best regards,
Ivan Santos.
Click to expand...
Click to collapse
Wow, how you can that? 960x1708 @390 DPI.... can you spend a little more time to explain us how we can? :fingers-crossed:
I have Wiko Stairway with this processor (MT 6589), your kernel will work with my phone ?
Maybe this will help to pack to img:
http://forum.xda-developers.com/showthread.php?t=2364271
---------- Post added at 10:26 AM ---------- Previous post was at 10:15 AM ----------
http://forum.xda-developers.com/showthread.php?t=1587411
I use Virtuous Ten Studio (VTS) you can search XDA for it. Quite popular as it unpacks boot.img, allows edits to ramdisk, and you can swap zimage and pack it back together into a new boot.img
Also, it de-compiles, de-odex, blah blah blah.... Pretty much a 1 stop shop. Runs in windows. Sure beats doing all it from a cmd window!
IvanSantosPT said:
I have a Star S9500 with MTK6589 Cortex-A7 Quad Core @ 1.2GHz with PowerVR SGX544 Single Core.
I have the Kernel Source extracted from an Acer smartphone here:
Ivan Santos.
Click to expand...
Click to collapse
Ivan, I'm curious. You have a Star S9500 device. And you're using kernel source from an Acer smartphone???
Uhm, unless I am mistaken, you really shouldn't use kernel source from a different device, as the results could be bad. Unless the devices are identical and branded under a different name.
I also am searching kernel source for my ExPlay X-Tremer which uses the MTK6589 CPU.
Am quite interested in your results.
MD
Hi
Well, sorry but you cant OC an Mediatek SoC, it doesnt use those freq-values. Its still an mystery how to do it on that brand. since they will never share the FULL sourcecode.
All you will be able to do, by changing that is to display an "value" it will be only Visual, And not actually overclocked.
So just stop wasting your time on that. Will never work
You can also ask varun his also an kernel developer with experience on the MTK platform. Still the answer will be the same.
On an side note, you just build an kernel that will only work on the original acer device, not yours. It doesn't work that way lol
Its not all JUST about having the same SoC, there are other things:
Alps, magnetic sensor, proximity, etc that you need to config on kernel boardconfig to work on your device.
For packing /unpacking, since this is an MTK device, the best tool is Bruno Martins pack and unpack scripts:
forum.xda-developers.com/showthread.php?t=1587411
B.Regards
superdragonpt said:
Hi
Well, sorry but you cant OC an Mediatek SoC, it doesnt use those freq-values. Its still an mystery how to do it on that brand. since they will never share the FULL sourcecode.
All you will be able to do, by changing that is to display an "value" it will be only Visual, And not actually overclocked.
So just stop wasting your time on that. Will never work
You can also ask varun his also an kernel developer with experience on the MTK platform. Still the answer will be the same.
On an side note, you just build an kernel that will only work on the original acer device, not yours. It doesn't work that way lol
Its not all JUST about having the same SoC, there are other things:
Alps, magnetic sensor, proximity, etc that you need to config on kernel boardconfig to work on your device.
For packing /unpacking, since this is an MTK device, the best tool is Bruno Martins pack and unpack scripts:
forum.xda-developers.com/showthread.php?t=1587411
B.Regards
Click to expand...
Click to collapse
Exactly, not to mention trying to install a kernel meant for another device could have disastrous results...
As far as Full kernel source, I'm not even sure if the device manufacturers even have it. I suppose a lot of these devices are just "re-branded" clones, as I have been getting nowhere in answer on anything from Ex-Play, even citing GPL and such. "Somebody" has it, as 2 other ROMs (MIUI and Lewa) have 2 available ROMs, but I would guess they use the same zimage, considering they run the same OS version.
With the source, could check freq tables, and see if they use a speedo id that can be faked. But without current source, just don't know.
Still searching for the elusive kernel source
Moscow Desire said:
Exactly, not to mention trying to install a kernel meant for another device could have disastrous results...
As far as Full kernel source, I'm not even sure if the device manufacturers even have it. I suppose a lot of these devices are just "re-branded" clones, as I have been getting nowhere in answer on anything from Ex-Play, even citing GPL and such. "Somebody" has it, as 2 other ROMs (MIUI and Lewa) have 2 available ROMs, but I would guess they use the same zimage, considering they run the same OS version.
With the source, could check freq tables, and see if they use a speedo id that can be faked. But without current source, just don't know.
Still searching for the elusive kernel source
Click to expand...
Click to collapse
All the available kernel sources for the MTK platform can be found on my git:
https://github.com/dragonpt
And from varunchitre15 git:
https://github.com/varunchitre15?tab=repositories
As for OC, it was already tried in the past, yes after moding the kernel freq it shows OC values, but they are only Visual, MTK code is really weird.
About sourcecode, only some OEM's have release those, and it tooked ALOT of efforts for it (Petitions and so on), and all we got was the kernel source of course, and most of it it's NOT buildable (needs some fixs to compile).
As for my OEM, they said, they never got it, lol funny no?
This is one of the most ANTI-GPL, Closed Source Company i ever saw, in these last years...
Also Mediatek uses alot of Hacks on their code, i.e: the compiled zlmage needs an patch on kernel header to boot.
regards
superdragonpt said:
Also Mediatek uses alot of Hacks on their code, i.e: the compiled zlmage needs an patch on kernel header to boot.
regards
Click to expand...
Click to collapse
Thanks Mate. Yeah, looking over the sources, it's quite a mess in there! Tegra3 is so much more in order.
Will have to check my proc, and see which defconfig I use. Seems like a logical place to start. And talk about strange, they use only the Hotpug governor, although it seems several are available, but clearly they aren't set up for the device correctly as only Hotplug works, and the other configs have horrible performance.
Cheers
Moscow Desire said:
Thanks Mate. Yeah, looking over the sources, it's quite a mess in there! Tegra3 is so much more in order.
Will have to check my proc, and see which defconfig I use. Seems like a logical place to start. And talk about strange, they use only the Hotpug governor, although it seems several are available, but clearly they aren't set up for the device correctly as only Hotplug works, and the other configs have horrible performance.
Cheers
Click to expand...
Click to collapse
If you wanna start kernel compiling in this platform, the usuall config.gz wont work, if you are lucky enought you may find some old configs on kernel source code, then the "make oldconfig" should work, if the source doesnt have it then it will be an pain in the a## to compile.
Also some tips:
MTK kernels usually compile only with linaro toolchain 4.6.x or less, higher that this and its gonna be an mess with alot of compiler errors.
About the govs, yes on my tab(6589 soc) seems that the hotplug is the only one working ok, the other 2 govs seems that are only using the first 2 cores.
On the boardconfig, you can add several other govs, and IO,s, but i never add those, i may try that in the future and check if those extra govs work ok.
Regards
superdragonpt said:
If you wanna start kernel compiling in this platform, the usuall config.gz wont work, if you are lucky enought you may find some old configs on kernel source code, then the "make oldconfig" should work, if the source doesnt have it then it will be an pain in the a## to compile.
Also some tips:
MTK kernels usually compile only with linaro toolchain 4.6.x or less, higher that this and its gonna be an mess with alot of compiler errors.
About the govs, yes on my tab(6589 soc) seems that the hotplug is the only one working ok, the other 2 govs seems that are only using the first 2 cores.
On the boardconfig, you can add several other govs, and IO,s, but i never add those, i may try that in the future and check if those extra govs work ok.
Regards
Click to expand...
Click to collapse
Thanks for the tip on the toolchain. I usually use Google's latest. Never installed linaro as I really haven't seen a lot of difference in other testing comparisons. Generates a bunch of errors, but usually on things not specific to my device. Sloppy programming I guess.My guess is it's up to the device manufaturers responsibility to clean up the code.
Cheers
i am interested in under-voltage! very useful for battery time
I will be really happy is someone explains to me how can i overclock my mt6589?
chenrp said:
i am interested in under-voltage! very useful for battery time
Click to expand...
Click to collapse
Check Varun's Git sources, it's there...
rdlegy said:
I will be really happy is someone explains to me how can i overclock my mt6589?
Click to expand...
Click to collapse
There's nothing to explain at this point. It simply CAN'T be Overclocked, Mediatek Code isn't the same as (i.e)Qualcomm ...
(It's so Messy --...)
Regards
mtk and spd are the two biggest chinese chip companies that don't provide source code, you won't be able to modify your device except root it for some work

[Kernel][3.4.113][DualBoot] Chrono Kernel R5.10

Custom kernel for Samsung Galaxy Ace 2​
Features:
Only one universal kernel for JB, KK and LP-based ROMs
CPU, GPU and DDR OC support
more governors and I/O schedulers
Lite kernel - some kernel features moved to modules
fully working BLN
Sweep2wake && Doubletap2wake
CPU freq settings for suspend
Full F2FS support
SELinux support
UKSM support
ABB-charger tweaks
Credits:
@dh.harald and @hafidzduddin for contribution on codina sources
@ Team Canjica for a base for this kernel
@ Nova Fusion for F2FS implementation
@zwliew for contribution on TC kernel
@cocafe for LiveOPP, GPU OC, abbamp and abb-charger tweaks and many cool patches which I've used from his kernel
@faux123 for dynamic Fsync implementation
@Christopher83 for dynamic management of dirty page writebacks implementation
@KINGbabasula for contribution on TC kernel sources
@boype for SIOPlus tweaks and OndemandPlus governor
@Adi_Pat for abbamp, kernel tweaks
@PolishVodka for initramfs scripts for 4.2.x and 5.0.x
@Rox for help in fixing initramfs scripts for 4.1.2
@ace2nutzer for optimization CPU OC and for whatever scripts which I have used in my kernel
@Meticulus for BLN, Sweep2wake and Doubletap2wake
@mkaluza for huge LiveOPP/Mali improvements and Dynamic governor
@yanpol199 for help with F2FS support in TWRP
@ all users who tests this kernel and directs the development along the right path
@ all those users, who I forgot to mention (PM me if so)
Team Win for TWRP recovery
CyanogenMod Team for CWM recovery
Phil3759 for philz recovery
Samsung for opening kernel source
Linus Torvalds for Linux sources
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!!!
To install kernel with F2FS support read installation method in 3rd post
To install kernel with dual boot support, proceed this method.
Since R2.12.1 has been released, no need to care about bootscripts, kernel package will install it itself.
Source Code:
r6.0
< r6.0
Download:
FTP
Thanks @S.AMU for providing FTP-Server
Thanks @shaqman89 for providing build server
​
XDA:DevDB Information
Chrono Kernel, Kernel for the Samsung Galaxy Ace II
Contributors
ChronoMonochrome, cocafe, faux123, zwliew, mkaluza, Meticulus, KINGbabasula, ace2nutzer, TeamCanjica
Source Code: https://github.com/ChronoMonochrome/Chrono_Kernel-1/commits/master-3.10
Kernel Special Features: Swappable ramdisk, UKSM, dual boot support
Version Information
Status: Stable
Current Stable Version: R5.1
Stable Release Date: 1974-11-11
Beta Release Date: 1974-11-11
Created 2014-06-24
Last Updated 2017-10-27
Changelogs and features
Bug list:
-
Changelog
(old changelog)
R2.10
Build from R2.6 sources with re-added all changes in LiveOPP, cpufreq_limits module, some interfaces from 2.9.x (usb sw reset, PonKey emulator on voldown/up).
R2.9
Mali OC module v2.0:
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
(new interfaces manual)
1) mali_threshold_freq_down/up:
echo new value to tweak it:
Code:
echo 150 > /sys/kernel/mali/mali_threshold_freq_up
2) mali_boost_hispeed(2)
Use command
Code:
echo idx=X > /sys/kernel/mali/mali_boost_hispeed2
to tweak its freq.
following command is to tweak its threshold:
Code:
echo threshold=220 > /sys/kernel/mali/mali_boost_hispeed2
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
R2.8
Mali OC module v2.0(detailed description in 3rd post):
added interfaces boost_hispeed1, boost_hispeed2.
added interfaces mali_threshold_freq_down and mali_threshold_freq_up
partially re-enabled touchboost (it actually was enabled even on 2.7.4, but I forgot to mention)
reverted suspend/hibernate/freezer etc. commits to hopefully fix reboots issue in deepsleep
fixed APE_25_OPP (in suspend it actually used APE50 previously)
minor fixes in cpufreq_limits driver
(2.7.6)
- fixed broken GPU scaling algorithm (removed /sys/kernel/mali/mali_scaling_dynamic)
(2.7.5)
- partially reverted LiveOPP voltage autocalibration
- fixed unstable mali tunables and added interface mali_scaling_dynamic
Code:
echo 1 > /sys/kernel/mali/mali_scaling_dynamic
When mali_scaling_dynamic is used, mali will scale between mali_boost_low and mali_boost_high using all steps between these mentioned. mali_stats provides statistics about mali utilization on each step.
- removed some GPU freq steps
(2.7.4)
- new governor Dynamic (thanks to mkaluza)
- new GPU scaling algorithm (thanks to 1N4148 ) - ondemand-like GPU governor
- LiveOPP: reworked avs-based varm recalibration algorithm
(2.7.3)
added governor OndemandPlus (thanks to boype)
removed governors with hotplugging support
added interface to tweak PLLDDR freq on suspend:
Code:
echo on > /sys/kernel/cpufreq/pllddr_raw
To control freq are used raw PLLDDR register values:
Code:
echo suspend=0x000050158 > /sys/kernel/cpufreq/pllddr_raw # 675 MHz
Code:
echo resume=0x000050168 > /sys/kernel/cpufreq/pllddr_raw # 798 MHz
PLLDDR freq can be checked via
Code:
cat /sys/kernel/liveopp/pllddr
Settings applies after 3 sec after suspend/resume.
Too low suspend or too high resume value may cause reboot. Please note that this setting still experimental and unstable itself, so it's disabled by default.
adjusted some GPU OC defaults
fixed BT issues
(2.7.2)
- fixed pllddr_cross_clocks instability
- removed unneeded DDR_50_OPP requirement on screen on (should prolong battery lifetime).
2.7
many various commits from Linux 3.3 (thanks @faux123)
improved hotplugging mechanism
updated RCU system
kernel scheduler
memory management
etc...
LiveOPP:
recalibrate varm and vbbx on boot (better stability)
added interface to OC some clocks that depends on PLLDDR
reimplemented sweep2wake and doubletap2wake (thanks @Meticulus)
enabled UKSM (thanks @cocafe)
- better RAM performance with tiny cost CPU. Boot time will be increased by 3 sec, it's ok.
uploaded kernel for s6d.
R2.6
ABB-charger:
reverted most of changes. It's only uses custom voltage table, termination current 150 mA and some other tweaks, provided by ace2nutzer.
added tweakable interfaces for termination current(better battery lifetime).
LiveOPP:
added most ape_25_opp switch interface
added steps 85, 350, 450 MHz.
ddrpll interface renamed to pllddr ;D
added input boost support for most of governors (thanks to zwliew for original patch)
R2.5
- only one kernel version for all ROMs/Filesystems/codina(p), please note that installation method is different from usual installation
- Switch to single platform RTC driver - AB500 (finally fixed all problems with clock freeze issue) [golden-guy]
- update LiveOPP from CoCore
- reworked and added DDRPLL boost [WIP]
R2.4
completely rewritten screenoff limits driver
added steps 30, 125, 150, 175 MHz, increased voltage on various steps for stability
enabled SELinux again
various fixes in FAT filesystem
re-added exFat support
re-added ZenX
abb charger fix v2 [ace2nutzer]
zRam script moved to init.d (to be able to change zRam size) on CM11
new package installation script, with little changes by me (thanks to borkins for help with this)
R2.3.2
improved battery live (full credit to ace2nutzer)
reduced liveopp table (too hard to search stable/optimal voltage)
Reverted all commits from tuna kernel (these changes are tested not well, may cause instability)
temporarily disabled SELinux
R2.2
LiveOPP 2.2:
no longer use setting ARM OPP (this previously caused lags)
simple algorithm for setting clock and voltages
use only pll, external clock no longer used
use only 1 varm selection
Big LiveOPP table (51 step: 46, 69,..., 1244 MHz)
Added and optimized new governor ZenX
Added FIFO I/O scheduler
Moved more kernel stuff to modules
TWRP 2.8.0.0
R2.1.5
Huge update from Tuna Hybrid kernel by @faux123 ( a lot thanks to him! ) :
a lot various commits from Linux Kernel 3.3-rc3
various fixes backported from Linux 3.5
fixed 3G/WiFi data arrows again
reduced kernel: 628 Mb RAM is available
Reverted from R2.1:
update of device-specific drivers from Novathor 3.4 kernel
"ARM: 7493/1: use generic unaligned.h"
(R2.0.2)
update from TC kernel
moved all networking modules to kernel (fixed lost data usage, tethering, etc.)
added module autoload (read below)
renamed interface /sys/kernel/cpufreq/screenoff_cpufreq_limits -> /sys/kernel/cpufreq/cpufreq_limits_on_suspend
R2.0-refresh
Cleaned kernel source tree from some doubtful commits
moved some kernel features to modules(thanks to mkaluza for idea and most of changes)
9p, CIFS, NTFS file systems
some unneeded ipv6 features
HID drivers
most of governors
slightly decreased boot time(in my case, from 8500 to 8330 ms)
slightly increased available RAM - 628 MB (thanks to reduced kernel size)
Huge LiveOPP improvement by mkaluza:
improved overclock stability, added all extended steps
UV 100-400 MHz steps to 0x12-0x14 (lower power consumption)
added state APE_25_OPP, used only with screen off(originally introduced by mkaluza, adapted for codina by me)
allowed change APE_OPP and DDR_OPP from LiveOPP
changed step 1228 MHz -> 1248 MHz (may cause reboots, need to find out optimal voltage)
Mali improvements by mkaluza
temporarily removed 25 MHz step (don't know how to add it with new LiveOPP, all attempts is caused boot loop)
(R1.6.3)
revert "update sweep2wake and doubletap2wake by Meticulus"
add cpufreq steps: 25, 500, 700 MHz; remove: 1050, 1100, 1250 MHz (only 12 CPU freq step is allowed)
R1.6
ARM: 7493/1: use generic unaligned.h (This has the
benefit of better code generated especially for ARMv7 on gcc 4.7+
compilers.)
register rear cam flash as LED (for BLN) - thanks to @Meticulus
update sweep2wake and doubletap2wake by Meticulus
add LMK timeout interface - @cocafe
Fix max freq not capped on suspend bug on Lulzactive (it was conflicted with screenoff cpufreq limits driver)
(R1.5.2)
F2FS support in TWRP (thanks to [email protected] for help with this)
R1.5.1
update from TC kernel
enabled SELinux (was disabled in r1.5 for testing)
ARM: 7006/1: Migrate to asm-generic wrapper support
added jRCU (thanks to cocafe)
Bugfixes
reverted to LK 3.2.0
fixed disappeared data usage monitor and probably data arrows also
fixed wifi/usb tethering - hopefully, need tests
fixed incorrect display of RAM occupied by some applications
fixed incorrect phone recognition on codina P in CWM/TWRP - thanks to @ace2nutzer
R1.5
Completely reworked file systems update:
fixed reboots, apps FC
fixed CWM loop
fixed huge battery drain (hopefully)
F2FS backported to Linux 3.2
R1.4
Bumped to Linux 3.2.9
File systems: big update from LK 3.2
Writeback: update from LK 3.2
Reduced wlan_rx_wake wakelock by half - zwliew
F2FS support in /system
Fixed more potential and real memory leaks in kernel
Removed u8500 hotplug driver again
R1.3
added BLN separate configuration of blink on and off delays
added MCDE tweaks (read below)
tweaked PegasusQ governor (based on script by ace2nutzer)
fixes:
reverted commits which caused most of random reboots reasons
finally fixed kernel panic in CFQ I/O scheduler (I hope so)
interactive governor reverted to stock TC
R1.2
workaround for s6d display bug (separate kernel version - soon)
CPU freq settings for screen off
Updates from linux kernel 3.2 (currently updated to 3.2):
File systems
Specific drivers
Security
Various core changes
Reverted:
Proportional Rate Reduction for TCP
Power management update from 3.2
1000 MHz messy workaround, provide another workaround instead
r1.1
Fixed 100 MHz bug
Added 300 MHz CPU step
Added VR I/O scheduler again (thanks to @cocafe for fixes compile errors)
Updates from Linux Kernel 3.2:
Process bandwith controller
Thin provisioning and recursive snapshots in the Device Mapper
I/O-less dirty throttling, reduce filesystem writeback from page reclaim
Proportional Rate Reduction for TCP
Memory management (Cross Memory Attach, "vmscan: add block plug for page reclaim", "thp: mremap support and TLB optimization", etc.)
Networking
Device Mapper
Virtualization
Crypto
Tracing/Profiling
r1
backport new zRam driver from 3.5 LK by @faux123. Also enables LZ4 compressor for zRam.
add u8500 hotplug driver by @zwliew again
revert voltage of display and other regulators to stock
add vpnclient.ko
a somewhat fixes and optimizations from CoCore - thanks to @cocafe
fix lagfree, lulzactiveq and interactive wrong tunables
adjust voltage(0x37) for 1200 and 1250 MHz
17.08.2014
Undervolt display from 1800 to 1400 mV
Undervolt various regulators
Revert CFQ to 3.0 branch to fix reboot issue
Add Lionheart governor, disable InteractiveQ and Hotplug
Support for 4.2.x ROMs (thanks to @PolishVodka for initramfs)
12.08.2014
fixed CFQ reboot issue (i hope so )
reboot into recovery from extended power menu should work (JB 4.1.2)- thanks to Rox
TWRP recovery instead CWM for ext4 kernel versions
Update to 3.1.10
9.08.2014
Fixed reboot issue (I hope so)
Add BFQ scheduler again
Fixed UMS bugs - thanks to cocafe
Upgrade kernel to 3.1.1
4.08.2014
Fixed bug of random change min CPU freq to 1Ghz.
Removed u8500 hotplug driver
Update sioplus from [email protected]
Temporarily removed BFQ and VR I/O scheds because they are became broken for some reasons.
Update LMK from [email protected]
Updates from 3.1 LK:
Sound cards, input devices, watchdogs, networking, staging, multifunctional devices, ... etc. See full list of changes on github.
29.07.2014
Added CPU 100MHz freq step
U8500 hotplug driver - zwliew
Universal exfat driver - zwliew
Switch to SLUB again
Updates from LK 3.1:
SLUB
Memory management (6/7 commits)
VFS (9/10 commits)
Dynamic writepage throttling
21.07.2014
revert CPU voltages to default for 0-3 steps
some changes in memory management
17.07.2014
Switch to SLQB memory allocator
Update BFQ I/O sched from v7r3 to v7r5
Enable UHID support (testing)
Some fixes in memory management
Remove some buggy "fixes" from last build
5.07.2014
fixed headset bug that appeared in last build
fixed the file permissions for CoCore Manager (for JB)
4.07.2014
F2FS support (still only KK version)
Usb drivers from STEXperia sola kernel instead stock samsung
(probably, UMS bug has been fixed. For me it works perfectly now.)
LZ4-compressed kernel support
minor fixes
27.06.2014
sources updated
enabled init.d support in kernel (JB)
added Lagfree governor
added ROW I/O scheduler
23.06.2014
fixed cpu oc via 3rd party apps
lowmemorykiller should be less aggressive
19.06.2014
cwm 6.0.48 instead stock recovery
14.06.2014
initial build
Kernel Tweaks:
(GPU/CPU undervolting and related tweaks)
Undervolting the CPU/GPU will bring battery savings but possible instability.
1) to undervolt CPU use ChronoKernel app or via init.d scripts:
Code:
echo *cpufreq* varm=xx > /sys/kernel/liveopp/arm_summary
for example, following sets voltage varm=0x10 for 200 MHz:
Code:
echo 200000 varm=0x10 > /sys/kernel/liveopp/arm_summary
or
Code:
echo 200000 varm-=10 > /sys/kernel/liveopp/arm_summary
(default varm voltage for 200 MHz is 0x1a but, code above sets 0x1a - 0xa(10) = 0x10 )
2) to undervolt GPU use init.d script:
Code:
echo x vape=yy > /sys/kernel/mali/mali_dvfs_config
Example:
Code:
echo 2 vape=0x1c > /sys/kernel/mali/mali_dvfs_config
"2" stands for DVFS idx (look at mali_boost_high/mali_boost_low).
To prevent overriding of such settings by ChronoKernel app, add line to your init.d script after GPU undervolting
Code:
chmod 444 /sys/kernel/mali/mali_dvfs_config
Don't change voltage of both GPU/CPU at the same time - otherwise if you'll get reboot if won't know what it caused. The same is for different frequencies - if you'll change voltage of too many steps you won't know which frequency caused reboot. It's not easy process, though, following method simplifies it: https://github.com/mkaluza/i9070_kernel_CoCore-E/wiki/Undervolting-janice .
3) Custom LiveOPP table.
By default some LiveOPP steps such as 100, 200, 500 ... MHz aren't used. You can re-enable those by following way:
Code:
echo 200000 enable=1 > /sys/kernel/liveopp/arm_summary
Or use CK app instead. Don't enable it unless it uses the same voltage as 400 MHz. The same is for the rest frequencies - until some of them uses same voltage, no point to enable steps with lower freq. I've added 100 MHz just to further make some tests with it once again. It can't use lower varm than 200 MHz - that's why it's disabled by default. Furthermore, not all phones well keep undervoltage, that's why 100-400 MHz steps uses same stock voltage varm=0x1a.
UPD. thanks to @borkins for this nice editor LiveOPP ARM steps: http://forum.xda-developers.com/showpost.php?p=60311291&postcount=2921
(CPU freq management tweaks)
CPU freq. limiter for screen OFF, adjust it via:
Code:
SYSFS=/sys/kernel/cpufreq/cpufreq_limits_on_suspend
echo min=100000 > $SYSFS
echo max=400000 > $SYSFS
echo on > $SYSFS
Too low frequency may cause freezes after wakeup and sound scrathes. If you use Dynamic govermor, it make no sense to use cpufreq limiter, because Dynamic already takes care about CPUfreq usage optimization. For more, read wiki.
Input boost
This feature has been originally written by zwliew.
Not all governors support input boost. Supported governors: ondemand, interactive, conservative, ZenX, lionheart and some others. Dynamic governor has its own boost interface.
Default boost frequency is 400 MHz.
Code:
echo 450000 > /sys/kernel/cpufreq/input_boost_freq # echo '0' to disable
echo 35 /sys/kernel/cpufreq/input_boost_ms
(BackLight Notification)
To configure time intervals of BLN blinking type(bln_ondelay stands for time of blink and bln_offdelay - delay between two blinks):
Code:
echo bln_ondelay=500 > /sys/kernel/bln/blink_mode
echo bln_offdelay=6000 > /sys/kernel/bln/blink_mode
Make sure BLN enabled:
Code:
echo 1 > /sys/class/misc/backlightnotification/enabled
# to enable bln_wakelock.
echo on > /sys/kernel/bln/bln_wakelock
Use /sys/devices/virtual/misc/backlightnotification/blink_mode to changes modes.
Blink modes:
0 = no blinking
1 = blink backlight only
2 = blink backlight + rear cam flash
3 = blink rear cam flash only
(Module autoload)
Now there is a simple way to load modules at boot. Just move needed modules to /system/lib/modules/autoload and reboot device(or execute /etc/init.d/00autoload)
(DDR overclock)
This feature has been developed by me and allows you to improve DDR and GPU performance. Please note, that DDR OC might work unstable and cause filesystem corruption. Though, DDR clock of 975 MHz has been highly tested and should work fairly stable on most devices.
Overclocking DDR over 975 MHz is highly NOT recommended, especially in case if you not sure that you can deal with possible consequences.
How to OC DDR:
1) by using
this script .
2) by using Terminal Emulator(in example below 975 MHz):
Code:
echo 0x5017f > /sys/kernel/liveopp/pllddr_oc_on_suspend
This setting will be applied right after disabling screen.
(Minimum APE/DDR OPP on screen on)
This feature has been developed by me and allows to set minimum APE/DDR OPP states which are used when screen is ON. APE controls many systems such as an image, video, audio system etc. DDR OPP determines performance of DDR. Default values are APE50 and DDR50. Lower states(APE25/DDR25) reduces power consumption, but may cause graphical glitches like screen blinking or filling it by vertical grey lines. If you don't have mentioned effects, it's recommended to use APE25/DDR25:
Code:
echo ddropp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
echo apeopp=25 > /sys/devices/pri_lcd_ws2401.0/mcde_screenon_opp
* if you don't have folder /sys/devices/pri_lcd_ws2401.0, use /sys/devices/pri_lcd_s6d27a1 instead.
(Screen refresh rate)
This feature has been developed by cocafe and modified by me. Lower lcdclk frequency cause less power usage, but too low values makes system unusable.
Following command allows to change screen refresh rate:
Code:
echo x > /sys/kernel/mcde/lcdclk
use
Code:
cat /sys/kernel/mcde/lcdclk
to see supported lcdclk modes. Default mode is 60 Hz which is recommended in most typical cases. If you've screen tearings, blinking etc. change resresh rate mode to "60+ Hz":
Code:
echo 0 > /sys/kernel/mcde/lcdclk
(ABB charger tweaks)
added tweakable interfaces for termination current. To adjust it type(just an example):
Code:
echo 90 > /sys/kernel/abb-chargalg/termination_curr_1st
echo 70 > /sys/kernel/abb-chargalg/termination_curr_2nd
curr_2nd should be less or same as curr_1st. Lower values prolongs battery lifetime, but also slows battery charging.
Default values are curr_1st == curr_2nd == 150 mA. Please note, too low values maybe aren't usable.
(Dynamic FSync)
This feature has been developed by Faux123 and allows to dynamically manage the synchronous writes performed on file system (FSync).
It uses asynchronous writes when the screen is on, instead of synchronous writes, to have better performance and a slightly lower battery drain, while when the screen is off the synchronous writes are re-enabled to flush all the outstanding writes and prevent possible data loss.
How to enable/disable the Dynamic FSync (default enabled):
1) By downloading and using Trickster MOD
2) By directly editing the file /sys/kernel/dyn_fsync/Dyn_fsync_active and setting 1 to enable the dynamic fsync, 0 to disable it (note that set value will be lost after a reboot/shutdown)
3) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic fsync feature
Code:
su
echo 0 > /sys/kernel/dyn_fsync/Dyn_fsync_active
- Or run this command to re-enable the dynamic fsync feature
Code:
su
echo 1 > /sys/kernel/dyn_fsync/Dyn_fsync_active
Click to expand...
Click to collapse
(Software CRCs)
Disabling software CRCs gives you a slight bump(10-30% is what they say) of MMC performance, at the cost of a possibility of your Ace 2 freezing randomly.
Code:
echo 0 > /sys/module/mmc_core/parameters/use_spi_crc
Click to expand...
Click to collapse
(Dynamic dirty page writebacks)
This feature has been developed by Christopher83 and allows to dynamically manage the dirty page writebacks with two different intervals, one when the screen is on and another when the screen is off.
It is based on a commit of Francisco Franco, but instead of using hard coded values and of disabling at all the dirty page writebacks while the screen is on (possibility of data loss).
By using a higher interval we have better performance and less battery consumption, with a very low risk of data loss.
How to customize the dynamic dirty page writebacks feature (default disabled):
Three new procfs parameters are exposed inside /proc/sys/vm path:
- dynamic_dirty_writeback is the activation status of this feature, set 1 to enable it, set 0 to disable it and use the standard behaviour
- dirty_writeback_active_centisecs is the interval for the dirty page writebacks when the system is active (screen on), the default value is 1500 centisecs (15 seconds)
- dirty_writeback_suspend_centisecs is the interval for the dirty page writebacks when the system is suspended (screen off), the default value is 500 centisecs (5 seconds)
1) By directly editing one of the file written above inside /proc/sys/vm and setting the preferred value (note that set value will be lost after a reboot/shutdown)
2) By using Terminal Emulator (note that set value will be lost after a reboot/shutdown)
- Open Terminal Emulator
- Run this command to disable the dynamic dirty page writebacks feature
Code:
echo 0 > /proc/sys/vm/dynamic_dirty_writeback
- Or run this command to re-enable the dynamic dirty page writebacks feature
Code:
echo 1 > /proc/sys/vm/dynamic_dirty_writeback
- Run this command to set customize the two intervals (30 seconds while the screen is on, 10 seconds when the screen is off)
Code:
echo "3000" > /proc/sys/vm/dirty_writeback_active_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_suspend_centisecs
(Storages switch)
By default, this kernel comes with internal and external storages switched. You can revert this behavior, by changing the line
Code:
use_swap=1
to
Code:
use_swap=0
in file /ramdisk/fstab_specs.txt and flashing the kernel package. This setting will remain until you format /ramdisk partition.
(Tweak app)
ChronoKernel settings
Thanks mars_army for this app!
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Other information
How to install kernel with F2FS support:
For those who don't know what F2FS is, check these links out:
General info
Benchmarks
Warnings
1. Make sure you have a standard kernel for backup that uses ext4 just in case. If anything goes wrong, just install the backup kernel and reboot to recovery.
2. You will have to wipe your /data and /cache partitions for this. Basically factory reset.
3. For 2, you could try to backup data and restore after formatting. I haven't tried this but I could work.
Click to expand...
Click to collapse
Installation method of kernels with full F2FS support:
Before installation make sure that you have at least ~25% free space on each partition that will be formatted to F2FS.
for CWM:
make backup
format /system partition to F2FS (and also /data and /cache if you didn't do it before)
restore /system partition
for TWRP
disable md5 generation
make backup of /system
find backup folder, run terminal and rename file system.ext4.win to system.f2fs.win (it won't work via filemanager)
Code:
mv system.ext4.win system.f2fs.win
format /system as f2fs
restore backup
Then install kernel.
To install kernel on ROM that isn't supported by installer:
(supported ROMs):
Stock ROM 4.1.2
CyanogenMod 10.1*
CyanogenMod 10.2*
CyanogenMod 11*
CyanogenMod 12
* most ROMs that based on this ROM are also supported. Despite of that some ROMs are supported, they can work incorrectly due to difference in their initramfs scripts(ramdisk).
1. Install needed ROM first,
2. Type following command in terminal emulator:
Code:
cd /
find . -xdev | cpio -o -Hnewc | gzip -9 > /sdcard/x.y.z.cpio.gz
where x.y.z is OS version (for example - CM11-based ROM - 4.4.4.cpio.gz)
3. put this file in installer at osfiles/x.y.z/ (e.g. osfiles/4.4.4/4.4.4.cpio.gz)
4. install kernel
To install a new ROM that is not F2FS compatible:
Use EXT4 to F2FS converter script
or edit the updater-script as follows
(manual method)
1. Replace strings
"mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");"
with string
"run_program("/sbin/busybox", "mount", "/system");"
2. Replace string
"format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");"
with string
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
3. Add string
"run_program("/sbin/busybox", "mount", "/data");"
after strings
"run_program("/sbin/mkfs.f2fs", "/dev/block/mmcblk0p3");"
"run_program("/sbin/busybox", "mount", "/system");"
4. Add string
"unmount("/data");"
before string
unmount("/system");
Click to expand...
Click to collapse
Fix for CodinaP, recognized as Codina in recovery (thanks @fluffi444 )
http://forum.xda-developers.com/showpost.php?p=58839849&postcount=2448
Various tweaks (thanks @xo.en )
xo.en said:
do NOT use swapiness more than 30, bigger values can bog machine down!
small advice:
Code:
#!/system/bin/sh
#chmod -R 755 /system/etc/init.d
chown root:root /proc/sys/vm;
echo "30" > /proc/sys/vm/swappiness;
busybox chmod ugo+rw /proc/sys/vm/vfs_cache_pressure;
echo "50" > /proc/sys/vm/vfs_cache_pressure;
echo "2000" > /proc/sys/vm/dirty_expire_centisecs;
echo "1500" > /proc/sys/vm/dirty_writeback_centisecs;
busybox chmod ugo+rw /proc/sys/vm/dirty_ratio;
echo "90" > /proc/sys/vm/dirty_ratio;
busybox chmod ugo+rw /proc/sys/vm/dirty_background_ratio;
echo "75" > /proc/sys/vm/dirty_background_ratio;
echo "512" > /sys/devices/virtual/bdi/default/read_ahead_kb;
echo "10" > /proc/sys/fs/lease-break-time;
echo "4" > /proc/sys/vm/page-cluster;
echo "5360" > /proc/sys/vm/min_free_kbytes;
echo "8" > /proc/sys/vm/min_free_order_shift;
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "1" > /proc/sys/vm/overcommit_memory
busybox sysctl -w kernel.random.write_wakeup_threshold=256;
busybox sysctl -w kernel.random.read_wakeup_threshold=1376;
and
Code:
#!/system/bin/sh
chmod 0644 /sys/module/lowmemorykiller/parameters/adj
echo "0,3,6,10,12,15" > /sys/module/lowmemorykiller/parameters/adj;
chmod 0644 /sys/module/lowmemorykiller/parameters/minfree
echo "1024,2048,2560,4096,6144,8192" > /sys/module/lowmemorykiller/parameters/minfree;
chmod 0644 /sys/module/lowmemorykiller/parameters/debug_level
echo "0" > /sys/module/lowmemorykiller/parameters/debug_level;
works miracles in my case, especially second one, imho it would be hard to use different values, i was trying different setups for YEARS(with this machine), so it is not just random throw. Bigger LMK REALLY makes things worse here. It usually has tremendous influence over fluidity of gui, and whole sys.
Click to expand...
Click to collapse
Odin kernel
with TWRP
with CWM
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Master-ZizO said:
There is no KSM or Low Memory killer or any Performance tweaks ?? Built in CWM ?
Click to expand...
Click to collapse
This kernel based on stock CM kernel by TeamCanjica, and it's have same changes.
Damn, I was so excited to see a new kernel, but I noticed that it's actually for 4.1.2. I almost flashed it on a 4.4.3, not that it would have been such a tragedy.
Is there gonna be a version for the KitKat ROMs?
dragos281993 said:
Is there gonna be a version for the KitKat ROMs?
Click to expand...
Click to collapse
yes, please wait a little bit.
ChronoMonochrome said:
yes, please wait a little bit.
Click to expand...
Click to collapse
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
This is for stock samsung JB?
yes it is
Even if in the download section it says 4.4.2, I flashed the kernel on a Carbon 4.4.3 and it's working like a charm. The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
five attempts and each time bootloop and recovery keys do not work.
dragos281993 said:
The only thing that doesn't show up correctly is both frequency bars in "performance". It shows 0MHz max, 0MHz minimum, but if you set the minimum to 600MHz, for example, the frequency will run at 600 minimum, even if it shows 0.
Click to expand...
Click to collapse
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
dragos281993 said:
OK. I've got another question for you. Are you gonna add "lagfree" between the governors you already added, because that's probably one of the best governors a kernel can have ?
Click to expand...
Click to collapse
Maybe I'll add this Governor.
mPiter said:
five attempts and each time bootloop and recovery keys do not work.
Click to expand...
Click to collapse
please post your last_kmsg log.
@ChronoMonochrome how do I do ksmg log when the phone does not turn on?
ChronoMonochrome said:
It works normally for me. (ROM CM11 by TeamCanjica 4.4.2)
Maybe I'll add this Governor.
please post your last_kmsg log.
Click to expand...
Click to collapse
If you added "lagfree", you'd be the first on to do it, so it would obviously be amazing and it would make you a better developer than others, of course.
EDIT: About the frequency thing, for me it shows 0MHz probably because I've got kitkat 4.4.3. Everything else's working fine.
@mPiter ,
Bug reports:
after experiencing a random reboot, type in terminal:
Code:
su
cat /proc/last_kmsg > /storage/sdcard0/last_kmsg.txt
report it in the thread and attach the last_kmsg.txt
Click to expand...
Click to collapse
p.s. restore stock kernel first.
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
ip3000 said:
there is a new folder in sdcard0 : triggers and files in it ( Cpt log). what is it?
Click to expand...
Click to collapse
I have no idea what caused this problem. Because on stock kernel and CM kernel i did not have this problem. Try to remove this folder and create text file with same name.
Would love to see lag free if anyone could make possible
Sent from my GT-I8160 using Tapatalk
1. Compatible for aosp 4.4.4 or only for CM?
2. Whats is the different with custom kernel by zwliew?
@ChronoMonochrome

Categories

Resources