[XPERIA X8 Original Android Development] doixanh:
Rom cookers: if you include this module in your ROM, please make a link to this post in your release post, so your users can know how to work with it and update the module themselves

Intro

: (dev post)

Since the X10 kernel is working, we might have a hope that someday we will have our custom kernels. If we can have custom kernels, we can do the overclocking easily.

Until that day, we will still have to overclock with modules. To make overclocking works with our current kernel, as far as I can see, we need to do the following things:

1. Patch cpufreq data to change maximum reported freq (these value will be read by Android for further controls). cpufreq will then call the low-level acpuclock functions to change real cpu freq.

2. Patch acpuclock data + code to change real cpu freq.

Right now I'm working a proof-of-concept module, with finished 1 and half of 2. I will need to patch acpuclock code in the running kernel to make the frequency applicable.

That means, right now, Android reported that I have a 800MHz MSM7227, although it's running at 600MHz, and cpufreq's governor accepts to change to the maximum 800MHz (it's 600MHz for real). We will need to patch acpuclock code to change PLL and apply the correct divisor.

Source on github : https://github.com/doixanh/X8Features

Release history

April 11. v004. Default to 691MHz. Multiple frequencies are available for SetCPU: from 614MHz to 826MHz. You can now change frequencies with SetCPU - much like with custom kernels! You can even SetCPU freq at boot.

April 07. v003. Compatible with SetCPU. Easier for code maintenance.

April 06. v002 for mini pro. x8oc module for x10 mini pro released! Be warned: I didn't have your x10mini pro hardware so I didn't test it throughoutly.

April 06. v002 for mini. x8oc module for x10 mini released! Be warned: I didn't have your x10mini hardware so I didn't test it throughoutly. 710MHz was reported not too stable. A lower freq is more stable.

April 06. v002. Experimental! It maybe very unstable! Undervoltage for all frequencies except the max freq (Reduced voltages for 128MHz, 245MHz, 320MHz, 480MHz). This can potentially save battery. I need test results for saving battery from you guys :D

April 05. v001. Default to 710MHz.

Requirements

:

- Rooted

- Baseband x15

- xRecovery (for automatic installtation)

- Dare!

Installation

:

a. Manual installation : it will be better if you can do this way.

- Download appropriate x8oc-vXXX.zip (for X8), or x8oc-vXXX-x10m.zip (for X10 mini), or x8oc-vXXX-x10mp.zip (for x10 mini pro) below, unzip

- Remount /system as rw

- Push x8oc.ko in to /system/lib/modules

- Edit /system/etc/hw_config.sh, add one line at the beginning

insmod /system/lib/modules/x8oc.ko # x8 overclock

For people who want to set specific freq at boot, write the following instead of the code above:

# x8 overclock
insmod /system/lib/modules/x8oc.ko
sleep 2
echo xAB > /proc/x8oc

Where AB is your desired code for that frequency. Test the frequency carefully before applying it at boot!

(you can edit hw_config.sh by pulling it to your PC, edit, and push it back)

- Reboot your phone

b. Automatic installation : much like x8gesture, I will have to prepare update.zip for each ROM. I'm pretty busy now, so be patient.

General instruction

- When you install x8oc, SetCPU will not recognized the new max frequency. Don't touch the slide and/or change the governor. If you do that, the new frequency will be lost. You will have to reboot your phone to get the new freq.

- For geeks only: it is possible to change maximum frequency after you install x8oc. With following command, you can replace AB to other values to change max freq:

echo xAB > /proc/x8oc

20 to change to 614MHz

21 to change to 634MHz

22 to change to 653MHz

23 to change to 672MHz

24 to change to 691MHz

25 to change to 710MHz

26 to change to 730MHz

27 to change to 749MHz

For example, set to 749MHz:

echo x27 > /proc/x8oc

This feature still works with v004

Somebody asked about the meaning of AB above. If you look at the source you will understand :D

In short :

- AB is stored in hexadecimal

- Max frequency = AB (in decimal) * 19.2MHz

Example:

AB = 27 means AB = 0x27 = 39 (in decimal)

Real frequency = 39*19.2 = 748.8 MHz

You can put 28, 29, for even higher frequency... but I don't recommend to do that. It was unstable for me.

x10 mini / x10 mini pro users

:

Support for x10 mini / x10 mini pro has been added since 06-04-11. However, I don't have your hardware so you must test this module before install it:

- Push x8oc.ko to /system/lib/modules

- Run the following command

insmod /system/lib/modules/x8oc.ko

If the phone is still working, no crash, no black screen, then it works.

Until you're sure that it works with your hardware, don't install it to hw_config.sh or you will get boot loops and may severely damage your hardware

Disclaimer

This module is dangerous! It may cause severe damage to your hardware. I'm not responsible if this module kills your lovely phone. Use it at your own risk!

Donations

are welcome :D

PLEASE DON'T SPAM IN THIS THREAD WITH UNCONTRIBUTED POSTS.