转+小幅修改:
http://www.miui.com/thread-3935476-1-1.html
通过研究发现可以通过修改/system/etc/init.qcom.post_boot.sh实现。现在共享出来仅供大家研究。没有经过严格测试,具体有什么效果不清楚,有兴趣的可以试一下!!!
1. 两个大核不用的时候都离线
将文件中 第838行 echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
改为 echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
839行改成70
840行改成30
841行,扫描时间,默认0.1秒改成1秒
echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
改为echo 1000 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
最尾巴加入ondemand调度器,可以更省电
代码:
- #!/system/bin/sh
- echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
- echo "simple_ondemand" > /sys/devices/soc.0/fdb00000.qcom,kgsl-3d0/devfreq/fdb00000.qcom,kgsl-3d0/governor
重启后生效,但是休眠后就失效了,再重启一次又生效。可能还有程序在修改min_cpus这个文件的值。
再将文件中第858行和859行去掉,或者加#号注释,就是下面这两行
chown -h system /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
chown -h system /sys/devices/system/cpu/cpu4/core_ctl/max_cpus
这样休眠就不会被改回去了,暂时没发现什么问题。
2. 让4个小核不用的时候离线,至少保持1个核心在线(小核心费电少,但是性能低,四个1440全开的核心还不如一个1280的大核心效率,可以不用操作,下方共享的文件也没有修改)
在文件中837行后加上
echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
echo 70 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
echo 30 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
echo 1000 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
重启后生效。
所修改的东西我猜测含义如下,不一定准确。
busy_up_thres : 核心离线的门限值,就是超过这个值就离线。
busy_down_thres :核心离线的门限制,低于这个值就离线。
offline_delay_ms:核心离线前的延迟时间,单位毫秒。
注:最新4月7.0的4C开发版,已经非常省电了,不需要这些操作。