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,707
    1,802
    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
    690
    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
    957
    250
    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?
     

    coolbho3000

    Retired Senior Recognized Developer
    Dec 26, 2008
    899
    784
    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 },
    };
     

    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 ([email protected]) (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.
    Our Apps
    Get our official app!
    The best way to access XDA on your phone
    Nav Gestures
    Add swipe gestures to any Android
    One Handed Mode
    Eases uses one hand with your phone