The overclock modules for HTC One XL, should be applicable on our One S

Search This thread

fxzy

Senior Member
Feb 18, 2011
395
92
Hong Kong
avantvs.hk
It can apply on phones running with Qualcomm MSM 8960 chipset.
Quoting from the OP:

One XL/AT&T/Rogers One X 1.8GHz overclock module

Please let me know about the module's compatibility with your phone. It has been reported to work on the latest AT&T version kernel, and I have a Rogers device myself.

Hey guys! I've created a kernel module that overclocks the MSM8960 Qualcomm Krait to over 1.8GHz. It also allows you to specify a custom voltage and frequency instead of 1.8GHz. This method works on ANY MSM8960-based rooted HTC One X, even on locked bootloader devices. This allows AT&T users to overclock, and others to overclock without necessarily needing to unlock the bootloader. This overclock makes the already tremendously fast MSM8960 about 20% faster.

Note that this mod is ONLY for the Qualcomm MSM8960-based Krait HTC One X and HTC One XL. This includes the AT&T HTC One X, Rogers HTC One X, and any phone branded as the HTC One XL.

The module is loaded using this command: insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000

The pll_l_val parameter determines how high the overclock is. Multiply this number by 27 to get the final clock speed in MHz. For example, 67*27 is 1809000, which is what the module defaults to.

The vdd_uv parameter determines the voltage used at the overclocked speed, in microvolts. The default for 1.5GHz is 1200000, and I was able to get a stable overclock at 1300000 at 1.8GHz. Raise the vdd_uv parameter if the overclock is unstable. The current maximum for this field is 1300000, so don't go higher than this. If your system crashes or is unstable at this frequency/voltage, lower the pll_l_val one by one until you reach stability. You can run rmmod krait_oc and then insmod krait_oc.ko with different parameters without having to reboot.

You'll also need a custom, tweaked thermald.conf. This thermald.conf raises thermal tolerances slightly (I've found that they're a little too strict, even at stock clocks and voltages). I've included this in the package, and instructions for installing it are below.

Video, demonstrating the overclock on a Rogers HTC One X:
YouTube Video

Screenshots




Source code is included in the package. If anyone has an HTC One S, this method will work on that, too. Please post below a dump of /system/lib/modules and I should be able to add support for any MSM8960-based HTC device with just that.

Instructions
First, determine which kernel module to use. Do an adb shell cat /proc/version and choose a ko file that matches your version number (these instructions assume you've renamed it to krait_oc.ko). 21/05/2012: If you don't see your kernel version here, try loading the module anyway. If it fails to load, please post a file from /system/lib/modules (any file) here and I will add support.

Install the overclock (only once):
1. Push the kernel module to your device:

adb push krait_oc.ko /data/local

2. Install the new thermald.conf, making sure to back up the old one, and reboot. The thermald.conf is included in the download. If you want to target a frequency other than 1809000 KHz, you should edit the thermald.conf and replace "1809000" to whatever frequency you want to target.

adb push thermald.conf /data/local
adb shell
su
mount -o rw,remount /system
cp /system/etc/thermald.conf /system/etc/thermald.conf.bak
rm -r /system/etc/thermald.conf
cp /data/local/thermald.conf /system/etc
reboot


Load the overclock (every time you reboot):
1. Load the kernel module (replace pll_l_val and vdd_uv with your desired voltages and L value as explained above. It defaults to 67 and 1300000 if you don't give it any parameters):

adb shell
su
insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000

2. Bring core 1 temporarily offline so it gets updated with the new max frequency:

echo 0 > /sys/devices/system/cpu/cpu1/online

3. You'll now have an additional CPU frequency! SetCPU can configure your maximum frequency up to this speed. You can also choose to keep running at 1.5GHz at any time - this method doesn't eliminate any available frequencies. Set the max at 1.8GHz to verify it's stable here.
4. Restart thermald by running "ps". Look for "thermald" in the list, and find thermald's pid (it's usually a number in the low hundreds, higher up in the list). Run "kill [thermald's PID]" in adb shell. The kernel does not currently have kernel-level temperature throttling turned on, so thermald is important for now.

Remove the overclock by restoring your backup of thermald.conf:

adb shell
su
mount -o rw,remount /system
rm -r /system/etc/thermald.conf
cp /system/etc/thermald.conf.bak /system/etc/thermald.conf
rm -r /system/etc/thermald.conf.bak
reboot

Rebooting clears any kernel modules that are loaded, so you're now clean. You can then delete anything left over in /data/local, but it doesn't matter.

If the module loads but the overclock doesn't seem to have any effect, even after putting max and min at 1.8GHz, your device might use a different SoC bin than the "nominal," and the kernel module is looking at the wrong place. Please reboot your device and post an adb shell dmesg right after the reboot so I can look at it.

Download current pack of modules:
http://www.setcpu.com/files/krait_oc_v2.zip (current)
http://www.setcpu.com/files/krait_oc.zip (old)

Finally, it'd be great if we as a community tried to work harder to encourage HTC to hurry up and 1. Release kernel source on time, all the time and 2. NOT cave into carrier pressure and stick to their written bootloader policy! S-OFF would be nice, too. 

Sent from my HTC One S using xda premium
 

avetny

Senior Member
Jul 16, 2010
5,771
1,844
Private Island.




LETS DO THIS
6400oc_photo.jpg
 
Last edited:

plakers

Senior Member
Apr 26, 2011
478
106
Lyon
It also allows you to specify a custom voltage and frequency instead of 1.8GHz

Hehe... I'll test it tonight and undervolt a bit... ;)
 

mycomputerisjunk

Senior Member
Dec 7, 2009
693
49
The Icarus v2
I tried this on my T-Mobile US One S and the frequency shows up in SetCPU. My Antutu score jumped 500 points, so if it did actually do something it was only an 7-8% gain. Antutu does recognize the cpu as having 1809 MHz. All other benchmarks that I ran have improvements as well.

Also, on step 4, you can locate the thermald process easier by doing the following:

ps | grep thermald


Nice post btw!
 
Last edited:

rootrider

Senior Member
Aug 21, 2010
854
387
Starnberg
Works - it's here. Now let's see... :D

Ahhh, and for the guys not on Linux: Copy the thermald.conf to sd card via usb and from there to its destination folder e.g. with root explorer.

2012-05-24_22.52.39.jpg
 

nickmv

Senior Member
Jan 12, 2011
958
251
Memphis
Not to be Capt. Obvious here, but is there a point to overclocking the One S?

We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.

This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?
 

raikesy

Senior Member
Mar 26, 2009
727
201
Not to be Capt. Obvious here, but is there a point to overclocking the One S?

We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.

This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?

I think it's purely 'because we can'

Like you said, not really any need to, or tangible benefit in doing so :)
 

Raptylos

Senior Member
Feb 24, 2008
270
133
Not to be Capt. Obvious here, but is there a point to overclocking the One S?

We're at about as fast as you can get before your eyes start bleeding. At the stock speed, my phone goes as fast as my eyes and thumbs can possibly move.

This is where all that quad-core Exynos crap goes right out the window. Seriously though, whats the point of OC'ing a phone that's already ridiculously fast?

IMHO we can benefit from undervolting in manners of battery life. The OC thing is a nice "side effect" :cool:

Gesendet von meinem HTC One S mit Tapatalk 2
 

NYC1992

Senior Member
Sep 11, 2011
105
3
hi i have tried to do this thing and i have gotten it to over clocked. the only thing i cant seem to find is the thermald thing to kill. all i see in the list ins system/bin/thermald. Is this the one im looking for or not?
 

shinkinrui

Senior Member
Oct 8, 2009
240
100
I think I'd be more interested in slightly underclocking + altering voltage for a battery life boost :)
 

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
897
785
Original OP here. You can undervolt more frequency steps with this method too, but you need to modify the sources. Most phones should have a "nominal" chip, but there's also a "fast" spec with lower voltages at each step.

I will write a proper tweakable undervolting driver for the 8960 when sources come out.
 
Last edited:
  • Like
Reactions: wind0zer and 131313

plakers

Senior Member
Apr 26, 2011
478
106
Lyon
Original OP here. You can undervolt more frequency steps with this method too, but you need to modify the sources. Most phones should have a "nominal" chip, but there's also a "fast" spec with lower voltages at each step.

I will write a proper tweakable undervolting driver for the 8960 when sources come out.

As I'm not a dev... Could it be possible to override stock values in this struct, by specifying them manually?

Current one (in the source) :

/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};


Exemple "overriden" one :

/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
[...]
{ 1512000, 1000000 },
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};
 

freeza

Recognized Developer
May 28, 2006
5,412
14,179
Pasadena, CA
www.freeza-inc.com
OnePlus 10 Pro
Hi, can you add support for the EVO LTE?

kernel version is:

adb shell cat /proc/version
Linux version 3.0.8-01360-g3fd0422 (root@ABM032) (gcc version 4.4.3 (GCC) ) #1 S
MP PREEMPT Sat Apr 28 05:10:07 CST 2012

here's a random file in case you still need it.
 

Attachments

  • msm-buspm-dev.zip
    48.9 KB · Views: 10

Waninkoko

Senior Member
Jul 23, 2011
83
103
Salamanca
As I'm not a dev... Could it be possible to override stock values in this struct, by specifying them manually?

Current one (in the source) :

/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};


Exemple "overriden" one :

/* Frequency-Voltage table */
static struct freq_voltage freq_vdd_table[] = {
[...]
{ 1512000, 1000000 },
{ 1620000, 1200000 },
{ 1728000, 1200000 },
{ 1809000, 1250000 },
{ 1917000, 1300000 },
{ 0, 0 },
};

Well, it may be possible, but modifying that table won't work. The module needs a little modification.
 
  • Like
Reactions: plakers

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    It can apply on phones running with Qualcomm MSM 8960 chipset.
    Quoting from the OP:

    One XL/AT&T/Rogers One X 1.8GHz overclock module

    Please let me know about the module's compatibility with your phone. It has been reported to work on the latest AT&T version kernel, and I have a Rogers device myself.

    Hey guys! I've created a kernel module that overclocks the MSM8960 Qualcomm Krait to over 1.8GHz. It also allows you to specify a custom voltage and frequency instead of 1.8GHz. This method works on ANY MSM8960-based rooted HTC One X, even on locked bootloader devices. This allows AT&T users to overclock, and others to overclock without necessarily needing to unlock the bootloader. This overclock makes the already tremendously fast MSM8960 about 20% faster.

    Note that this mod is ONLY for the Qualcomm MSM8960-based Krait HTC One X and HTC One XL. This includes the AT&T HTC One X, Rogers HTC One X, and any phone branded as the HTC One XL.

    The module is loaded using this command: insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000

    The pll_l_val parameter determines how high the overclock is. Multiply this number by 27 to get the final clock speed in MHz. For example, 67*27 is 1809000, which is what the module defaults to.

    The vdd_uv parameter determines the voltage used at the overclocked speed, in microvolts. The default for 1.5GHz is 1200000, and I was able to get a stable overclock at 1300000 at 1.8GHz. Raise the vdd_uv parameter if the overclock is unstable. The current maximum for this field is 1300000, so don't go higher than this. If your system crashes or is unstable at this frequency/voltage, lower the pll_l_val one by one until you reach stability. You can run rmmod krait_oc and then insmod krait_oc.ko with different parameters without having to reboot.

    You'll also need a custom, tweaked thermald.conf. This thermald.conf raises thermal tolerances slightly (I've found that they're a little too strict, even at stock clocks and voltages). I've included this in the package, and instructions for installing it are below.

    Video, demonstrating the overclock on a Rogers HTC One X:
    YouTube Video

    Screenshots




    Source code is included in the package. If anyone has an HTC One S, this method will work on that, too. Please post below a dump of /system/lib/modules and I should be able to add support for any MSM8960-based HTC device with just that.

    Instructions
    First, determine which kernel module to use. Do an adb shell cat /proc/version and choose a ko file that matches your version number (these instructions assume you've renamed it to krait_oc.ko). 21/05/2012: If you don't see your kernel version here, try loading the module anyway. If it fails to load, please post a file from /system/lib/modules (any file) here and I will add support.

    Install the overclock (only once):
    1. Push the kernel module to your device:

    adb push krait_oc.ko /data/local

    2. Install the new thermald.conf, making sure to back up the old one, and reboot. The thermald.conf is included in the download. If you want to target a frequency other than 1809000 KHz, you should edit the thermald.conf and replace "1809000" to whatever frequency you want to target.

    adb push thermald.conf /data/local
    adb shell
    su
    mount -o rw,remount /system
    cp /system/etc/thermald.conf /system/etc/thermald.conf.bak
    rm -r /system/etc/thermald.conf
    cp /data/local/thermald.conf /system/etc
    reboot


    Load the overclock (every time you reboot):
    1. Load the kernel module (replace pll_l_val and vdd_uv with your desired voltages and L value as explained above. It defaults to 67 and 1300000 if you don't give it any parameters):

    adb shell
    su
    insmod /data/local/krait_oc.ko pll_l_val=67 vdd_uv=1300000

    2. Bring core 1 temporarily offline so it gets updated with the new max frequency:

    echo 0 > /sys/devices/system/cpu/cpu1/online

    3. You'll now have an additional CPU frequency! SetCPU can configure your maximum frequency up to this speed. You can also choose to keep running at 1.5GHz at any time - this method doesn't eliminate any available frequencies. Set the max at 1.8GHz to verify it's stable here.
    4. Restart thermald by running "ps". Look for "thermald" in the list, and find thermald's pid (it's usually a number in the low hundreds, higher up in the list). Run "kill [thermald's PID]" in adb shell. The kernel does not currently have kernel-level temperature throttling turned on, so thermald is important for now.

    Remove the overclock by restoring your backup of thermald.conf:

    adb shell
    su
    mount -o rw,remount /system
    rm -r /system/etc/thermald.conf
    cp /system/etc/thermald.conf.bak /system/etc/thermald.conf
    rm -r /system/etc/thermald.conf.bak
    reboot

    Rebooting clears any kernel modules that are loaded, so you're now clean. You can then delete anything left over in /data/local, but it doesn't matter.

    If the module loads but the overclock doesn't seem to have any effect, even after putting max and min at 1.8GHz, your device might use a different SoC bin than the "nominal," and the kernel module is looking at the wrong place. Please reboot your device and post an adb shell dmesg right after the reboot so I can look at it.

    Download current pack of modules:
    http://www.setcpu.com/files/krait_oc_v2.zip (current)
    http://www.setcpu.com/files/krait_oc.zip (old)

    Finally, it'd be great if we as a community tried to work harder to encourage HTC to hurry up and 1. Release kernel source on time, all the time and 2. NOT cave into carrier pressure and stick to their written bootloader policy! S-OFF would be nice, too. 

    Sent from my HTC One S using xda premium
    2
    Original OP here. You can undervolt more frequency steps with this method too, but you need to modify the sources. Most phones should have a "nominal" chip, but there's also a "fast" spec with lower voltages at each step.

    I will write a proper tweakable undervolting driver for the 8960 when sources come out.
    1
    As I'm not a dev... Could it be possible to override stock values in this struct, by specifying them manually?

    Current one (in the source) :

    /* Frequency-Voltage table */
    static struct freq_voltage freq_vdd_table[] = {
    { 1620000, 1200000 },
    { 1728000, 1200000 },
    { 1809000, 1250000 },
    { 1917000, 1300000 },
    { 0, 0 },
    };


    Exemple "overriden" one :

    /* Frequency-Voltage table */
    static struct freq_voltage freq_vdd_table[] = {
    [...]
    { 1512000, 1000000 },
    { 1620000, 1200000 },
    { 1728000, 1200000 },
    { 1809000, 1250000 },
    { 1917000, 1300000 },
    { 0, 0 },
    };

    Well, it may be possible, but modifying that table won't work. The module needs a little modification.
    1
    Hi, can you add support for the EVO LTE?

    kernel version is:

    adb shell cat /proc/version
    Linux version 3.0.8-01360-g3fd0422 (root@ABM032) (gcc version 4.4.3 (GCC) ) #1 S
    MP PREEMPT Sat Apr 28 05:10:07 CST 2012

    here's a random file in case you still need it.

    Thanks for the file. I'll try soon.

    Also, regarding other versions of the One S, I don't see why this method won't work with the MSM8260A.