Droid X 2.2 overclocking

It looks like there’s really nothing that a locked bootloader can hold back. A few days ago, a method to overclock the Droid X was released and it works perfectly.

This has been tested and it does indeed overclock your Droid X’s CPU. I’m currently running at 1.1Ghz with undervolting. That’s right, not 0nly am I running faster than the stock 1Ghz, I’m doing it with less power (54 vsel). I’m hoping this combo yields some savings in the battery department.

The argument of whether or not overclocking is useful or not will not be detailed in this post. Just bear in mind, it does carry a risk and you can toast your handset or send it into an endless boot loop.

Basic adb/terminal knowledge is definitely a requirement. Some background in overclocking will make this easier as well.

It’s not at all difficult and many folks are now clocking in insane Quadrant scores with the bump in CPU speed. I have the basic install guide as well as a quick write up on how to customize your speeds.

Before we start, download this file needed to perform the overclock:


Here’s a direct copy/paste of the steps from Freewell, the person who made this all possible.

Install Instructions

$ su
# cd /sdcard/extracted/droidx_22_oc (or wherever you extracted the files to)
# mount -o rw,remount -t ext3 /dev/block/mcblk1p21 /system
# cp overclock.ko /system/lib/modules/overclock.ko
# cp setscaling.sh /system/xbin/setscaling.sh
# chmod 644 /system/lib/modules/overclock.ko
# chmod 755 /system/xbin/setscaling.sh

<optional(only do after thoroughly testing what works for your DroidX in setscaling.sh)>
# cp install-recovery.sh /system/etc/install-recovery.sh
# chmod 755 /system/etc/install-recovery.sh

# mount -o ro,remount -t ext3 /dev/block/mcblk1p21 /system

Run Instructions


$ su
# insmod /system/lib/modules/overclock.ko
# setscaling.sh

Now the real control of your speeds is in the setscaling.sh script. You can either manually edit this file with a terminal emulator or do it Root Explorer (Appbrain).

Before you start working with your speeds, make a backup of the setscaling.sh script.

Open up the script and you will see the following:

  1. echo 56 > /proc/overclock/max_vsel
  2. echo 1000000 > /proc/overclock/max_rate
  3. echo 1 300000000 27 > /proc/overclock/mpu_opps
  4. echo 2 600000000 38 > /proc/overclock/mpu_opps
  5. echo 3 800000000 50 > /proc/overclock/mpu_opps
  6. echo 4 1000000000 56 > /proc/overclock/mpu_opps
  7. echo 0 1000000 > /proc/overclock/freq_table
  8. echo 1 800000 > /proc/overclock/freq_table
  9. echo 2 600000 > /proc/overclock/freq_table
  10. echo 3 300000 > /proc/overclock/freq_table

The 56  in line 1 represents the max_vsel, which is the voltage supplied to your CPU.

The 1000000 in line 2 represents the max rate, which in this case is 1Ghz.

The 300000000 in line 3 represents the speeds that you can select. The 27 right after represents the vsel for that particular speed. So for this line, its 300Mhz at 27 vsel.

If you are going to edit the speeds and vsel, make sure you make the changes to the frequency table lines as well. It’s pretty self explanatory in the way that it is set up. Just remember, if you mess up, just reboot your device and you’ll be back at stock speeds. This overclock has a built in safety feature which prevents you from being stuck in an endless bootloop if you choose the wrong the speeds or vsel.

If you plan on going above 1Ghz, many times this value will need to be bumped up. These values will be different for your Droid X since not all are created equal. Some can clock in at 1.4Ghz and above and some can’t break 1.1Ghz. The only way to find out how it will work out is to try it. If you see a reboot or lock up, you’ve gone too far.

Here’s how I have mine set up:

  1. echo 54 > /proc/overclock/max_vsel
  2. echo 1150000 > /proc/overclock/max_rate
  3. echo 1 300000000 20 > /proc/overclock/mpu_opps
  4. echo 2 600000000 30 > /proc/overclock/mpu_opps
  5. echo 3 800000000 40 > /proc/overclock/mpu_opps
  6. echo 4 1150000000 54 > /proc/overclock/mpu_opps
  7. echo 0 1150000 > /proc/overclock/freq_table
  8. echo 1 800000 > /proc/overclock/freq_table
  9. echo 2 600000 > /proc/overclock/freq_table
  10. echo 3 300000 > /proc/overclock/freq_table

As you can see, I’ve clocked mine to 1.1Ghz and undervolted. I’m hoping with this configured, it’ll be equally fast (maybe even slightly faster) and burn through my battery at a lower rate. Also, note the lower voltages for the other speeds. Using SetCPU profiles in conjunction with these lower powered speeds should give you an advantage in the battery usage department.

If you are constantly tinkering with these settings, you can grab Gscript in the market and save your commands to run them all at once over and over. Just keep editing your setscaling.sh script and you should be good to go. There is a method to make your settings stick after every reboot. I DO NOT recommend doing so at all because you will end up in a boot loop if something goes wrong down the line. You may be cruising right now, but an app here or an app there and something causes a problem — you will get stuck and need to SBF restore it.

Also, if you want to remove this overclocking feature, just issue the following command in your terminal (or use Gscript).

# rmmod overclock.ko

Enjoy and good luck!

Update: There are now a few overclock apps in the market if the above seems a bit too daunting for you. I’m always into knowing what I’m doing first before trying the easy route. You end up learning more about your device this way. Either way will work at the end of the day.