This modules are for people with stock kernels because they don't have 'smartass' or ondemandX' governors.
EASY ENGLISH:
Differences between this modules and build in stock kernels:
- allows to set max CPU freq when screen is off (to save battery),
- allows to set starting CPU freq when phone awakes (to speed up awake process),
- allows set/change almost all aspects of governor (to suite needs),
- should be a bit more responsive when parameters are well chosen for smartassv2 governor.
Each governor has some predefinied values - more info in "Available settings".
If governors works or not on other version then 4.0.2.A.0.42 let me know.
Start:
The goal was bring 'smartassv2' and 'ondemandX' governor to work with stock kernel on Neo V.
Most information is in my thread on 'XPERIA X8 Android Development': [Module] | X8 | X10 mini/pro | AX8_SMARTASS v002 | 'smartass' governor | [2011-07-19]
To remind:
Info:
- information about governors is here,
- more information about 'smartass' governor is here or here,
- how different governors work is explained here: [Q] SetCPU governors (explained).
Prerequisites:
- Neo V (if works on Neo - let me know),
- root,
- ondemandX should work on any version,
- smartass was compiled against 4.0.2.A.0.42 version, how run on other version will be explained in manuall installation section,
- desire to replace SetCPU - when used only for 'ScreenOff' profile.
Manual installation:
for ondemandX governor.
Lower min cpu freq a bit:
Until you're sure that it works with your hardware, don't install it to hw_config.sh.
Available settings:
Will be added later
v001:
- just initial version fixed to work with Neo V.
Disclaimer
I'm not responsible if this module damages your lovely phone. Use it at your own risk! Think before you do something!
Sources at: GitHub
EASY ENGLISH:
Differences between this modules and build in stock kernels:
- allows to set max CPU freq when screen is off (to save battery),
- allows to set starting CPU freq when phone awakes (to speed up awake process),
- allows set/change almost all aspects of governor (to suite needs),
- should be a bit more responsive when parameters are well chosen for smartassv2 governor.
Each governor has some predefinied values - more info in "Available settings".
If governors works or not on other version then 4.0.2.A.0.42 let me know.
Start:
The goal was bring 'smartassv2' and 'ondemandX' governor to work with stock kernel on Neo V.
Most information is in my thread on 'XPERIA X8 Android Development': [Module] | X8 | X10 mini/pro | AX8_SMARTASS v002 | 'smartass' governor | [2011-07-19]
To remind:
SmartassV2 (informal description and comparison with the first smartass)
SmartassV2 is a governor (controls the frequency of the CPU at each give moment) which like the first smartass is generally based on the implementation of interactive with some major changes and the addition of a built in sleep profile (behaves a bit differently when screen is off vs. on).
The smartassV2 improves the very naive scheme which the first smartass had: The first smartass (with the values I set for the hero), would cap the max frequency at 352Mhz for sleep and when screen is on, would do the opposite and keep the frequency at 518Mhz or above. For sleep this was very effective but a bit crude and unclean, and there could be some cases where you would need processing power even when screen is off (something is updating and music is playing and etc.). For screen on, smartass1 was too quick to jump to the max available frequency and again would never go below the 518Mhz, so in a nutshell its was using "too high" frequencies.
SmartassV2, introduce (internally) an "ideal" frequency which is the frequency we are "aiming" for, in some sense. The way I see it is that the "ideal" frequency is a hint to the governor what is a good balance between performance and battery life. Now when screen is on, I set (on the hero) the ideal frequency to 518Mhz which will ensure nice responsiveness but limit unnecessary use of higher frequencies when they are not needed. When screen is off, I set the ideal frequency to 352Mhz (0 will disable the screen state tracking all together). From my testing this will "convince" the governor to spend most of the its time during sleep at the lowest available frequencies. Note, that both during sleep and when awake the entire frequency range (as defined by the "user" - i.e. selected with SetCPU) is used by smartassV2. For example, when the CPU is loaded heavily, the highest available frequency will be used regardless if screen is on or off.
ondemandX - ondemand governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic described above. No further optimization is done.
Info:
- information about governors is here,
- more information about 'smartass' governor is here or here,
- how different governors work is explained here: [Q] SetCPU governors (explained).
Prerequisites:
- Neo V (if works on Neo - let me know),
- root,
- ondemandX should work on any version,
- smartass was compiled against 4.0.2.A.0.42 version, how run on other version will be explained in manuall installation section,
- desire to replace SetCPU - when used only for 'ScreenOff' profile.
Manual installation:
- Unzip file
- Run copy.cmd file - this should copy modules to /system/lib/modules
- run adb shell or terminal - whatever you like and execute su
Code:su
- If you have 4.0.2.A.0.42 version proceed to step 6
- For smartass governor you need to know address for 'kallsyms_lookup_name'
run following command:
Code:cat /proc/kallsyms | grep kallsyms_lookup_name
Code:80101aec T module_kallsyms_lookup_name [SIZE="3"][B]801056f0[/B][/SIZE] T kallsyms_lookup_name
- Optional step: lower min CPU freq:
Code:echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- Insert ondemandX module:
Code:insmod /system/lib/modules/aneov_ondemandx.ko
Code:<6>[ 431.711517] aneov_ondemandX: module v001 for device Xperia Neo V loaded
- Insert smartassV2 module:
- for version 4.0.2.A.0.42 just run command:
Code:insmod /system/lib/modules/aneov_smartass2.ko
Code:<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
- for other use 'address' and use following command:
Code:insmod /system/lib/modules/aneov_smartass2.ko lookup_address=0x[B][COLOR="Red"]801056f0[/COLOR][/B]
Code:<6>[ 420.308380] aneov_smartass2: module v001 for device Xperia Neo V loaded
- for version 4.0.2.A.0.42 just run command:
- Now you can enable desired governor. Execute:
Code:echo "smartassV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Code:
echo "ondemandX" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Lower min cpu freq a bit:
Code:
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Until you're sure that it works with your hardware, don't install it to hw_config.sh.
Available settings:
Will be added later
v001:
- just initial version fixed to work with Neo V.
Disclaimer
I'm not responsible if this module damages your lovely phone. Use it at your own risk! Think before you do something!
Sources at: GitHub
Attachments
Last edited: