[krn.modules] overclocking for Arc (ICS) without custom kernels [now released!]

Search This thread

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
What is difficult then :) or not clear ?

I suggest you do the following:

a) on your desktop, extract the .zip.
b) delete the overclock_14.ko file (you can redownload the zip if you want to go higher, for now let's say you only want 1.2Ghz).
c) rename overclock_12.ko to overclock.ko
d) copy to phone on your SD card.
e) open terminal and execute:

insmod /sdcard/overclock.ko

That's it.

If you don't have a terminal, use Script Manager and create a script with the same text as above and execute through Script Manager (although Android Terminal emulator works best).

If you want to go back to stock for whatever reason:

rmmod /sdcard/overclock.ko
 
  • Like
Reactions: tRippinthehead

ascariz

Senior Member
Jul 31, 2008
640
127
my report:
both frequency works. that's all. LOL. :D
run asphalt HD 6 smooth as my ass skin. :p
Reboot my phone, max cpu stick at 1.2GHz & 1.4GHz.

ROM: JJ Hybrid with Rom control
Kernel: Cobrato
Insmod with Viulian modules (Overclock 1.2GHz + Smartassv2)
 

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
my report:
both frequency works. that's all. LOL. :D

No drama, huh =))

Glad it works, I spend a while to make them stable. The 1.4Ghz will draw a bit more power than 1Ghz / 1.2Ghz; it rebooted my phone - so I upped the voltage to the Arc S values - 1250mV instead of 1200mV and no issues since.

The phone is now much more responsive. With custom home screen launcher (dunno why, I have coleagues that like the Sony launcher but I find it very slow so I switched). I also removed all junk .apk and installed a firewall so only what I want will connect to Internet.

So nothing moves there and thus phone is blazing fast.
 
  • Like
Reactions: ascariz

ascariz

Senior Member
Jul 31, 2008
640
127
No drama, huh =))

Glad it works, I spend a while to make them stable. The 1.4Ghz will draw a bit more power than 1Ghz / 1.2Ghz; it rebooted my phone - so I upped the voltage to the Arc S values - 1250mV instead of 1200mV and no issues since.

The phone is now much more responsive. With custom home screen launcher (dunno why, I have coleagues that like the Sony launcher but I find it very slow so I switched). I also removed all junk .apk and installed a firewall so only what I want will connect to Internet.

So nothing moves there and thus phone is blazing fast.

1250mV, you are right. that voltage is stable. if you don't set it 1250mV, run HD game like asphalt, boom, crash. lol. so, what's your next mission? :D
I love how it skip 1GHz. 800MHz straight to 1.2GHz, that's just brilliant.
 
Last edited:

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
Well, I was wondering if the 384Mhz frequency had any meaning in fact. No governor makes use of it, it is just useless.
I would just give it up and shift everything down one level so we can have both 1200 and 1400.

Maybe I should try one game or something now :)
 

ascariz

Senior Member
Jul 31, 2008
640
127
Well, I was wondering if the 384Mhz frequency had any meaning in fact. No governor makes use of it, it is just useless.
I would just give it up and shift everything down one level so we can have both 1200 and 1400.

Maybe I should try one game or something now :)

yeah. you should try. i install game just try my phone performance. not a game fan at all. about useless frequency, i already thought about that. it's good idea to skip it. 1 for deep sleep, 1 for usb connected (100MHz), 1 for scrolling/browsing speed (800MHz), 1 for gaming speed (>1GHz)
 

tRippinthehead

Senior Member
Dec 8, 2010
301
37
viulian,

Do I understand correctly that you just changed the frequency of 1024mhz by 1401mhz and rised voltage? 1024mhz not present now.

Anyway 1.4ghz module works fine on my Arc with Arc S fw :) big thanks!
 

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
Guys, please check below the answers:

a) for Xperia Play - it is very well doable, but I don't have access to the phone so I can't dump its kmem to find the addresses. Either somebody has to send the files (but it will take a bit to analyze). It can work for GB as well as ICS.

@tRippinthehead:
a) Yes, I had to replace the frequency - no more 1024 unless you unload the module. As opposed to other modules, mine also reverts to stock when you unload.
b) Yes, you can modify the values to save some CPU cycles :) which could be valuable if you interact with the phone a lot from standby (screen off) to normal.
 

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
I will send the instructions for xplay shortly .. dumping whole kmem is not useful, but maybe we can find a way. Don't know if it has the same PLL rates as Arc though .... but we'll see.
 

viulian

Inactive Recognized Developer
Apr 6, 2011
419
411
hex.ro
Ok guys, if you have the Play with ICS please tell me the output of the following commands:

cat /proc/kallsyms | grep cpufreq_cpu_get
cat /proc/kallsyms | grep cpufreq_frequency_get_table
cat /proc/kallsyms | grep -A 1 acpuclk_set_rate
cat /proc/kallsyms | grep -A 1 show_time_in_state

This is just the beginning.

After I get the output, I will calculate what required addresses from kmem and then there will be other commands (to really dump the contents of acpuclk_set_rate and show_time_in_state)

It will take few days in total .. since I also have work to do ..
 
  • Like
Reactions: sirkay

Top Liked Posts

  • There are no posts matching your filters.
  • 16
    Update:

    Use at your own risk, nothing is guaranteed!! Overclocking is dangerous and could brick your phone so be aware of what you are about to do!

    If you want to take the risk, the files are below:

    overclock_arc_ics_v1.zip

    Install procedure:

    1. The zip contains two files, overclock_12.ko and overclock_14.ko.
    2. Unpack the two files onto your /sdcard folder
    3. Insert one or the other using:

    Code:
    insmod /sdcard/overclock_1X.ko

    where X is 2 or 4 depending on what frequency you want, 2 for 1200MHz or 4 for 1400MHz.

    You can create a small script with the same contents and have Script Manager run it at boot time.

    IMPORTANT: About frequency managers:

    The CPU Managers are not perfect (I've tried SetCPU and No Frills).
    They do not read the frequency tables from kernel - but as far as I can tell, they rely on the time_in_state file to see what frequencies are available. But if a frequency is changed, they remain disorientated.

    THUS.

    a) When booting the phone with any of the overclocking module there should be no problems, as long as SetCPU / NoFrills did not start and did not read the time_in_state file. Then no changes needed.
    b) But if you start them and THEN you insert / remove the modules, etc - please go back to them and select again minimum frequency and maximum frequency EVEN IF they appear as already selected.
    Just drag the first slider to the max and the second one to the min.

    Also IMPORTANT:

    Do not set the module at boottime unless you are absolutely sure the phone is stable with the frequencies. Otherwise you might end up in a boot loop.

    PS: To other members trying to help: PLEASE DO NOT REPACK the archive and to offer it as update.zip or init.d scripts, etc.
    I will do it in the next few days. The reason is that people get confused what to choose and then they ask questions about those .zips and so on. Better keep things simpler with minimal changes to the system (even these modules, they are very small, ~30kb :) ).

    Enjoy guys - and thank you very much for your support!

    Do not forget: for anyone interested, I posted a lengthly tutorial on my blog on how overclocking is achieved (disassembly and so on): http://hex.ro/wp/blog/overclocking-an-android-phone-running-with-an-msm-core/

    --

    I've managed to overclock my Arc (running Arc S latest ICS ROM) to run at 1200Mhz - all this WITHOUT a custom kernel and without the bootloader unlocked and so on.

    I've read oppinions like this one: http://talk.sonymobile.com/message/184828#184828:
    To Overclock you need to use a custom Kernel[ DoomKernel]. with Stock kernel overclocking not possible. To use a custom kernel you need to unlock the bootloader. [which is little bit sensitive]

    This is plain wrong.

    I will offer the module, but now is still in development, since the time_in_state table is still wrong (but that doesn't mean CPU doesn't go to 1200Mhz with any governor installed). Also, I don't know if I will ever fix the time_in_state since it is boring to disassemble - but it can be done.

    Here are some screenshots:

    1) Running at 1200MHz, but SetCPU insists the maximum frequency is 1024MHz - it probably uses some other values instead of the one on the /sys/devices/system/cpu ..

    20120525230120.png


    2) SetCPU Native Benchmark (at 1200Mhz it is around 600, and at 1024MHz it is arround 800 - lower is better)

    20120525230229.png
    20120525230311.png


    Although things could have been easier if the kernel would export some symbols - nonetheless it can be done by using the /proc/kmem dump in a similar process described here http://code.google.com/p/milestone-overclock/wiki/Disassembly (but adapted to msm instead of omap2).

    I will post a full article too - but I have to write it first - on how to do this...

    If you guys are interested or having any questions, just post below ..
    5
    thanks for the support guys :)

    I did not try to go to 1.4 Ghz since I believe I need to up a bit the voltage and I did not yet identified kernel memory spaces where this has to happen.

    I'm still looking to see if time_in_state can be adjusted - the table seems dynamically allocated and it makes its detection a bit more tedious since it doesn't have a fixed address in memory upon each reboot.

    I'm wondering if it is needed to know what time in state is, seems more useful for battery saving but since the goal is to overclock ..
    5
    VICTORY!!!

    First, for happy side, here are the benchmarks:

    a) AnTuTu 3373 vs 3069 (about 10% increase according to it).

    20120527102337.png
    20120527082548.png


    b) Linpack 38.05 vs 33.5

    20120527102542.png
    20120527080543.png


    Second, for drama side:

    SetCPU native results from the initial posts above ended up to be fake. Don't know what SetCPU was doing but were incorrect. I'll explain.

    Wanting to put some screenshots of OC improvements, I tried out Antutu and linkpack. To my surprise / shock, they were both offering the same values for the two speeds, 1200MHz and 1024MHz. I could not believe, how come the speed was now 1200 but results the same ???? Also, SetCPU did report an massive improvement, right ? From 800 down to 600 ...
    Unconvinced, I found a PI Calculator, and tried it out with 10000 digits, it also reported same results 10.3 seconds .....

    So ... going back to the source code I found out that frequency was actually controlled by the PLL rates and I was not modifying those, the CPU was actually phisically running at 1024Mhz. I lost trust in SetCPU with it's native tests (which now return about 500 when I finally fixed the code).
    I thus dug more and found the correct PLL rates - and changed them to the real 1200MHz. Indeed the phone switched to the correct frequency and all performance tests above show the increase.

    Tests were done with Performance governor on (max speed).

    PS: PI Calculator now reports 9.3 seconds for 10.000 digits, and improvement of 10%.

    :)

    I will release the module very soon now.
    5
    The overclock.ko will come in two flavours :)

    One for 1200000Hz another one for 1401600Hz.

    I have posted an article on my blog on the procedure followed to create the module: http://hex.ro/wp/blog/overclocking-an-android-phone-running-with-an-msm-core/

    I've tested the 1.4Ghz frequency with 1200mV voltage and it resets in Antutu towards the end of the 3D test. However, I've upped the voltage to 1250mV and I've ran 3 Antutus with no problems! But boy it gets hot.

    Here are some benchmark results from 1024000Hz up to 1401600Hz
    a) 37% in CPU Integer operations
    b) 41% in CPU Floating Point operations.

    This generates almost 20% increase in total performance!

    20120528130850.png
    20120528130922.png
    4
    I have released the modules - please check first post on the topic!