[Tut] Milestone OC Application [Tut]
This is a discussion on [Tut] Milestone OC Application [Tut] within the Cyanogenmod forums, part of the Custom Roms category; Edit: 01/14/11 to add third methodology. Please see below.
Edit: 01/17/11 to add info on link for Milestone OC v. 1.4.7
Synopsis: Thanks to Tiago ...
-
[Tut] Milestone OC Application [Tut]
Edit: 01/14/11 to add third methodology. Please see below.
Edit: 01/17/11 to add info on link for Milestone OC v. 1.4.7
Synopsis: Thanks to Tiago Sousa (the developer), we now have at our disposal an application that will make the flashing of alternative kernels unnecessary for overclocking and voltage selections to optimize
the battery life and speed of our original Droid phones. The application is completely compatible with the SetCPU application which many of us have grown to love, and allows for on-the-fly adjustments of speed slots and voltages. Historically, to achieve changes in slots and voltages it was necessary to flash alternate kernels, many times with the end results being unsatisfactory due to uncertainties about voltage, the disruption of other kernel associated features and last but not least the dreaded boot loops. "What or who's the best kernel to run with my phone?" The answer is now the stock CM kernel, where you set the speed slots and voltages to match your desires.
The complete information about this application can be found at the following link, and should be read:
milestone-overclock - Project Hosting on Google Code
This page is the home page to the application, and I will not try and cover the ground in this post. While this application was developed to assist the Milestone phone with overclocking, Mr. Sousa saw fit to create an almost portable version compatible with our droid phones. Almost, as the application may require slight adjustments to suit particular kernels. In the case of our Droid's running CM6.1, 6.11 or 6.1.2, DF member Prime recompiled the application to be compatible with our phones. Prime was instrumental on recompiling the stock CM kernel to repair the non-functioning Compcache settings in CM6.1, and has offered his continued support to maintain functionality of the Milestone program. If member Prime is ever in northern New Mexico the meal and drinks are on me. Currently it is functional on CM 6.1, 6.1.1 and 6.1.2. Perhaps some of you have noted the length of this original compcache thread
http://www.droidforums.net/forum/kou...omp-cache.html
this was due to Primes work in fixing compcache and recompiling the Milestone application. There is much valuable information on Milestone in this thread, and thanks to many DF members, Captdroid, Wingdo, Furbearingmammal and many others, we have confirmed functionality and begun to explore values and share results. In a nutshell, if you want to explore minimum voltages to increase battery life then this is your program. If you want to try to push your Droid to 1.3gigs for that
ultimate Screenshot in Quadrant then this is your program. Or if you are like many of us who want to explore the possibilities of maximizing performance and battery life while keeping heat levels to a minimum, then this is for you. It can be set up with just a few screen strokes, or you can tear into the nuts and bolts of your processor with terminal commands. You choose.
Note: While the application is available in the android market, the market version is not compatible with CM. Same for the files available for download on Mr. Sousa's wiki page. This should not deter you from perhaps donating to Mr. Sousa. There is a link on his wiki page.
I have hosted Prime's modified application file. My hosting ablilities are pretty weak, DF member Prime has ok'd additional hosting:
MilestoneOverclock145.apk - download now for free. File sharing. Software file sharing. Free file hosting. File upload. FileFactory.com MilestoneOverclock145.apk from FileFactory.com
Edit:01/17/11
For latest modified MSOC modded apk by member Prime, see post number 146 of this thread for link. Per post:
New version was available....primed and ready.
Milestone Overclock 1.4.7 for Cyanogen Mod 6/7: http://db.tt/71f4R3T
end edit
I have included the link to the stock CM6.1 kernel for those of you who may be using another's kernel.
Stock kernel download - CyanogenMod Forum
To install, move the file to your sd card root. Be sure to enable install from unknown sources (setting/applications check unknown sources)
Using Astro, Root Explorer or your prefered method, press on the file and install
Once installed, reboot the phone.
There are basically three ways to modify your slots and voltages. One being just the application whereby you have default values for lower slots
with the ability to change the upper slot and voltage. The second is to run a terminal command (or scrpit file) to set all slots and volatges. the third method requires a bit more work whereby you determine specific addresses for your processor to run terminal or batch commands to make adjustments. I will cover the first two methods here. And I will assume you have spent a little time on the wiki page getting a basic understanding of terminology and theory.
In the program, rate is defined as your slot or khz or speed (125, 250, 400, 550 etc). Vsel is your voltage defined as
voltage= 0.6v + (vsel value x 0.0125v), with our TI processors rated to 1.6V max. But the program comes with stock vsel values that are safe, so you do not need to worry about making slight changes. The formula is provided for those who want to know.
Method 1:
Open the Milestone application.
You will see a screen with load module, refresh, the slider for settings, apply and autoload on boot.
1) load module. You should see in the message at the top the module is loaded.
2) move the slider to the right. As you do you will see the slot mhz reported as well as the vsel. As move to the right you will see your slot increase as well as a changing vsel value. These are all safe to use. When you press apply, you will see a message indicating your clock speed and vsel setting. You have just overclocked your phone, overridding the stock CM top speed, and when you check setcpu you will see the reported values are indeed working. You have just discovered
the first breakthrough of this application. Your stock CM6.1.2 kernel of 800 tops can be overclocked to 1000 and beyond, with no additional kernel flash.
If you move the slider all the way to the right, you will see custom in the message field. At this point press your phone menu button, then press settings and you will enter the custom screen. Here you can change the custom rate and vsel value, the first two screens. ignore the mpu_opps_addr and cpufreq_stats_table_addr boxes, as they are not needed. You can change the slot and vsel, effectively changing speed and voltage. Press ok to return to the main screen, then apply.
Congratulations, you have just set your max speed and corresponding voltage. And here is the beauty. On the main screen, autoload on boot should not be checked. You can run your phone, test whatever you wish (run that Quadrant at 1.3gig), and if your settings create an unstable condition, the phone will reboot with no ill effect. the autoload on boot is used once you have tested your combination of top slot and voltage. Long gone are the days of flashing those top speed kernels, waiting for the dreaded boot loop.
Method 2:
Open the Milestone application.
Load the module
In your favorite terminal program type:
echo "60" > /proc/overclock/max_vsel
echo "1000000" > /proc/overclock/max_rate
echo "1 125000000 22" > /proc/overclock/mpu_opps
echo "2 250000000 26" > /proc/overclock/mpu_opps
echo "3 400000000 32" > /proc/overclock/mpu_opps
echo "4 550000000 38" > /proc/overclock/mpu_opps
echo "5 600000000 40" > /proc/overclock/mpu_opps
echo "6 700000000 46" > /proc/overclock/mpu_opps
Edit 12/21/10: per advice from DF Member captdroid, below is a list of the CM stock kernel values which
might provide a more stable beginning script. Insert numbers in above terminal (batch commands):
700 vsel=62
600 vsel=62
550 vsel=56
400 vsel=50
250 vsel=39
125 vsel=39
Congratulations, you have just set 7 slots of speed, with a corresponding voltage for each slot. The commands I have listed are safe and were pulled from the Milestone wiki page. The first "60" is the vsel value for the 1gig slot, with each of the subsequent slots having the associated vsel value. 550 is a vsel of 38, for example.
If you pop into Setcpu's info screen you will see time in state for these values, indicating proper functioning. And the sliders/settings in Setcpu do work. Optionally in Terminal you can type:
cat /proc/overclock/mpu_opps
to verify the status.
I have created a script file that I run after boot with the above table. If you set the Milestone OC module to autoload at boot with one of the
lower settings, you boot the phone, run the script and preserve your slots and voltages.
Alternately, DF member Wingdo provided a nifty little fix to run these commands at boot. Similar to the old compcache loading methodology.
create a 99init batch file, and insert in /system/etc/init.d
edit 12/21/10 99overclock file does not need .sh extension
From Wingdo:
(99overclock file)
#!/system/bin/sh
sleep 180
echo "60" > /proc/overclock/max_vsel
echo "1000000" > /proc/overclock/max_rate
echo "1 125000000 22" > /proc/overclock/mpu_opps
echo "2 250000000 26" > /proc/overclock/mpu_opps
echo "3 400000000 32" > /proc/overclock/mpu_opps
echo "4 550000000 38" > /proc/overclock/mpu_opps
echo "5 600000000 40" > /proc/overclock/mpu_opps
echo "6 700000000 46" > /proc/overclock/mpu_opps
The 99 overclock file is placed in /system/etc/init.d , where it is run at boot. The sleep 180 tells the script file to sleep for 180 seconds (3 minutes) before finishing. If you have the Milestone module set to auto load at boot, the 3 minutes lets the Milestone application load, then the script file finishes loading your slots and voltages. I have reduced to 90 seconds and it works with my boot. You may need to experiment. Again, you can check with (terminal),
edit 12/21/10
and please see post #20 in this thread for additional information on sleep settings:
cat /proc/overclock/mpu_opps
to confirm.
From the Milestone Wiki page:
The following table lists frequencies/voltages that appear to work well together, albeit with very conservative voltages.
These are the values available in the app by default (thanks to kabaldan for corrections):
Frequency (KHz) vsel Voltage (V)
550000 56 1.3
600000 62 1.375
800000 68 1.45
1000000 74 1.525
1200000 80 1.6
max_vsel
Frequency Stable (>=) Possibly unstable Probably unstable (<=)
550 56
800 58 56 .. 54 52
1000 60 58 .. 56 54
1100 64 62 .. 60 58
1200* 76 74 .. 70 68
1330* 84
This should be enough to get started. Some of us here have been testing and sharing results using the Setcpu stress test, Quadrant and other apps to test for stability. In the wiki there is mention of the camera and video app being a large stress to your settings, as well as some of the games availabale to us. There is a lot of information in the mentioned Compcache thread here in this forum. I hope that perhaps we can move the discussion of this application to this thread, to isolate this application. I was "voluntered" to put this together, and am in testing mode right now, but we have a handfull of extremely talented folks here who should be able to answer any questions.
Right now I can run my phone at 1 gig with a vsel of 60, and browse the web with videos and my phone runs at 86 degrees F. Battery life is great for my use. What's not to like?
Thanks, and for those of you who have been invaluable to me (take a bow captdroid) answering my silly questions needed to start this ball rolling, please make corrections,
Craig
Edit: 01/14/11
For those playing along so far, you have probably discovered the possibility to run the MSOC with scripting, after boot, to load values. In the Compcache thread linked above, Df Member Prime has taken the process to the third level, inserting the modules and slots via a boot script, that will run at boot, and does not need the Milestone OC application to load or run. As a matter of fact, if you have Milestone loaded, you will specifically want to unload or uninstall. The process is similar to the script loading methodology described above, with a change to the actual script used in the init file. member Prime figured the way to manually force the speeds to the proper addresses for the D1 phone's frequency table and values.
THIS METHOD MAY BE SAFE FOR PHONES OTHER THAN THE D1, BUT YOU WILL NEED TO DETERMINE YOUR FREQUENCY TABLE ADDRESSES. AND THEN TEST.
As described above, you need to create a 99init batch file, and insert in /system/etc/init.d which will run at boot. You will also need to chmod properly. I will not go into detail here, as this is certainly advanced phone tweaking, and this can be done in several ways. And again you want to first disable MSOC from loading at boot, and/or uninstall.
The following are the lines that need to be in the new 99init file:
MODULES_DIR=/system/lib/modules
MODULE=overclock.ko
MODPARM="omap2_clk_init_cpufreq_table_addr=0xc003e 094 mpu_opps_addr=0xc0530064 cpufreq_stats_table_addr=0xc052208c"
cd $MODULES_DIR
insmod $MODULE $MODPARM
echo "6 200000" > /proc/overclock/freq_table
echo "1 200000000 28" > /proc/overclock/mpu_opps
echo "5 400000" > /proc/overclock/freq_table
echo "2 400000000 32" > /proc/overclock/mpu_opps
echo "4 500000" > /proc/overclock/freq_table
echo "3 500000000 38" > /proc/overclock/mpu_opps
echo "3 600000" > /proc/overclock/freq_table
echo "4 600000000 48" > /proc/overclock/mpu_opps
echo "2 700000" > /proc/overclock/freq_table
echo "5 700000000 54" > /proc/overclock/mpu_opps
echo "1 800000" > /proc/overclock/freq_table
echo "6 800000000 58" > /proc/overclock/mpu_opps
echo "60" > /proc/overclock/max_vsel
echo "900000" > /proc/overclock/max_rate
Obviously the lines above need to be used as a template for the slots that you have previously tested, along with your vsel settings. WARNING: once this file is modified and inserted into your init folder, it will run at boot. If you bork this in any way, you could produce an unstable boot situation, which will REQUIRE a backup restore from recovery. There is one other recovery possible using the default phone feature whereby plugging your phone in will default Setcpu to a higher slot than your lowest loaded, but this ability should not be relied upon in lieu of establishing proper slots and vsel settings using MSOC. and would likley only help with a too low vsel setting in your lowest slots.
The following are notes describing a bit more behind the process, from member Prime:
Notice the 'mpu_opps_addr=0xc0530064' and 'cpufreq_stats_table_addr=0xc052208c' lines I added to the module parameters (the MODPARM line), this is the reason milestone overclock correctly reports TiS to SetCPU...it feeds this information to the overclock module upon loading.
To get (or test to see if they are the same) the mpu_opps_addr= and cpufreq_stats_table_addr= values load the module with milestone overclock, run "dmesg | tail" (no quotes) in a terminal and you will see the values listed.
*edit*
Saved the above script as 99overclock, placed script in /system/etc/init.d, rebooted, SetCPU TiS (Time in State) reports changes correctly...let me know if there is anything else that needs more work or information and I will do my best to help.
Here is the above script: Download 99overclock.zip
Last edited by Bear in NM; 01-17-2011 at 04:49 PM.
-
-
Craig, thanks for the writeup. I'm looking forward to playing around with this.
I really have no sense of what the vsel values correspond to. Do you have any idea what the defaults are for the CM kernel? Or for Chevy's ULV or LV kernels? I just want some reference point. Thanks again!
-
Wow -- extremely good news here -- and thanks for the great writeup. Just more crap for me to play with!!
-
Virtue,
I'm not sure what CM comes with stock, but the Milestone app defaults are:
550 56
600 60
800 66
1000 74
1200 80
These are safe for our phones. This differs slightly from the table in my post, but either work. The app values were settled upon after scads of testing by the Milestone folks (same processor), as they have been tweaking this since about May of this year, I think.
As to the other kernels, herein lies our historical "issue" with voltage. Is brand x ulv really a lv when compared to brand y. If you can find reports of the actual voltage from these other kernels, v= 0.6v + (vsel x 0.0125v) will give you their corresponding vsel number. But honestly, I would suggest using the stock values as a starting point, and let heat, speed and battery life tell the tale. If you read through just the last 3 or so pages of the big compcache thread, you will see some screens shots of stunning battery life.
My phone will run with 1000 at vsel of 60. Doing the math, I am running at 80% of even the suggested low stable stock vsel in the app. And web videos, 86 degrees F max temp. I tried a slew of other kernels over the year, and no one could touch that.
Craig
-

Originally Posted by
Bear in NM
I'm not sure what CM comes with stock, but the Milestone app defaults are:
550 56
600 60
800 66
1000 74
1200 80
Awesome, thanks. I have looked through the Wiki page, do you have suggestions for reasonable voltages for the low slots, like 125 and 250 MHz? Also, has anyone tried going below those frequencies? I have found that I can get a lot of extra battery life out of using those low slots on standby.
-
As always great writeup Bear!
Concerning defaults on lower end slots. Without running any script to set lower end slots a cat /proc/overclock/mpu_opps shows these default values (these are not my current vsel settings for low end slots, mine are lower, these are just defaults showing with Prime Overclock.ko module loaded):
Slot 6 - 700 vsel=62
Slot 5 - 600 vsel=62
Slot 4 - 550 vsel=56
Slot 3 - 400 vsel=50
Slot 2 - 250 vsel=39
Slot 1 - 125 vsel=39
I have slot 7 overclocked to 1100 (1.1Ghz) vsel=66 (this is my current setting for top custom slot #7 and may not work on your phone)
I used these default values for lower end slots as a starting point to bump down the vsel values and then run for each slot setCpu stress test continuous for a period of time, Quadrant, etc to look for any problems with stability and benchmark performance with those settings.
Getting much better battery life with bumped down vsel settings for low end slots I am currently using then I was with 'out of the box' CM default kernel, system is stable and really fast!!!
Last edited by captdroid; 12-18-2010 at 10:53 AM.
My first smartphone was a Droid 1. Then I found the Nexus... Galaxy Nexus LTE unlocked & rooted
AOKP 4.0.4 build37 ROM/Franco nightly Kernel
Root Apps - Titanium Backup, Root Explorer, SetCPU, Busybox, ROM Toolbox, Boot Manager Pro, WiFi Tether, Rom Mangler/ClockworkMod, CWMR Touch, Lightflow, Cachemate, SD Maid, Metamorph, Superuser elite, Nova Launcher
-
Virtue,
These are the values I have been a using a bit. You can see this differ from capt by quite a bit, but that is the whole point. You can test anything, and as long as you do not have the module set to autoload, you will never see a bootloop. And the ol' every phone is unique really shows itself.
DF member Wingdo posted his testing protocol in the other thread. Condensed, he sets the min and max in setcpu for the slot he is testing, even the 125. Run some tests, setcpu quadrant, your favorite game etc. But bear in mind that most folks use the lowest slots for simple idle, with a gov. bump to your higher speeds once the phone awakens. So the best low vsel test could just be whether the phone wakes properly, or your alarm goes off, messages come in etc.
echo "60" > /proc/overclock/max_vsel
echo "1000000" > /proc/overclock/max_rate
echo "1 125000000 22" > /proc/overclock/mpu_opps
echo "2 250000000 26" > /proc/overclock/mpu_opps
echo "3 400000000 32" > /proc/overclock/mpu_opps
echo "4 550000000 38" > /proc/overclock/mpu_opps
echo "5 600000000 40" > /proc/overclock/mpu_opps
echo "6 700000000 46" > /proc/overclock/mpu_opps
And capt, thanks for stopping in. Without your help I likley would have put off the post.
Craig
-

Originally Posted by
Bear in NM
Virtue,
These are the values I have been a using a bit. You can see this differ from capt by quite a bit, but that is the whole point. You can test anything, and as long as you do not have the module set to autoload, you will never see a bootloop. And the ol' every phone is unique really shows itself.
DF member Wingdo posted his testing protocol in the other thread. Condensed, he sets the min and max in setcpu for the slot he is testing, even the 125. Run some tests, setcpu quadrant, your favorite game etc. But bear in mind that most folks use the lowest slots for simple idle, with a gov. bump to your higher speeds once the phone awakens. So the best low vsel test could just be whether the phone wakes properly, or your alarm goes off, messages come in etc.
echo "60" > /proc/overclock/max_vsel
echo "1000000" > /proc/overclock/max_rate
echo "1 125000000 22" > /proc/overclock/mpu_opps
echo "2 250000000 26" > /proc/overclock/mpu_opps
echo "3 400000000 32" > /proc/overclock/mpu_opps
echo "4 550000000 38" > /proc/overclock/mpu_opps
echo "5 600000000 40" > /proc/overclock/mpu_opps
echo "6 700000000 46" > /proc/overclock/mpu_opps
And capt, thanks for stopping in. Without your help I likley would have put off the post.
Craig
No problem Bear, glad you did the writeup!
I have not posted my current settings for low end slots since each phone is different. The low end settings for vsel I just posted are defaults without running any script.
Edit: updated my post #6 to clarify
Last edited by captdroid; 12-18-2010 at 10:54 AM.
My first smartphone was a Droid 1. Then I found the Nexus... Galaxy Nexus LTE unlocked & rooted
AOKP 4.0.4 build37 ROM/Franco nightly Kernel
Root Apps - Titanium Backup, Root Explorer, SetCPU, Busybox, ROM Toolbox, Boot Manager Pro, WiFi Tether, Rom Mangler/ClockworkMod, CWMR Touch, Lightflow, Cachemate, SD Maid, Metamorph, Superuser elite, Nova Launcher
-
I opened notepad on my computer, pasted in the default values, and saved as "99overclock.sh" (without quotes). I then used root explorer to drop the file in /system/etc/init.d.
Now what isn't clear to me is how the Milestone Overclock app needs to be setup for this file to run proprely. Do I need to click load module on the default frequency with autoload on boot checked?
Edit: I downloaded Gscript lite, and I have no issues using it to change the frequency and vsel values. I'd like it make it automatically load when I reboot my phone though
Last edited by racketier; 12-20-2010 at 07:54 AM.
-
Thanks for the great write-up. This is great!
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
Forum Rules
Similar Threads
-
By droidavie in forum Droid Applications
Replies: 10
Last Post: 02-02-2011, 03:48 PM
-
By m698322h in forum Motorola Droid
Replies: 3
Last Post: 10-13-2010, 11:52 AM
-
By brb in forum Android Forum
Replies: 3
Last Post: 09-21-2010, 10:03 AM
-
By jk3kx in forum Droid Applications
Replies: 4
Last Post: 01-20-2010, 10:27 AM
-
By zinny0753 in forum Droid General Discussions
Replies: 3
Last Post: 01-02-2010, 11:21 AM
Search tags for this page
'nsmod: can't open
,
cm7 milestone overclock
,
cm7 overclock milestone
,
milestone 2 toolbox overclock autoload boot
,
milestone oc
,
milestone oc app
,
milestone oc v
,
milestone overclock app
,
milestone overclock autoload on boot not working
,
milestone overclock cpufreq stats table addr
,
milestone overclock failed to load module
,
milestone overclock failed to load module cm7
,
milestone overclock tut
,
mpu opps addr
,
oc app
Click on a term to search our site for related topics.