无法锁定Android设备MTK 8050 CPU核心频率问题求助
MTK 8050(TECNO-CK9n)CPU频率锁定失败问题解决
问题现象
已获取root权限的MTK 8050设备,切换到userspace governor后,执行echo 2600000 > scaling_setspeed无法成功锁定频率,读取scaling_setspeed仍返回700000。相关操作日志如下:
TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # ls -l total 0 -r--r--r-- 1 root root 4096 2023-09-21 12:49 affected_cpus -r-------- 1 root root 4096 2023-09-21 12:49 cpuinfo_cur_freq -r--r--r-- 1 root root 4096 2023-09-21 12:45 cpuinfo_max_freq -r--r--r-- 1 root root 4096 2023-09-21 12:45 cpuinfo_min_freq -r--r--r-- 1 root root 4096 2023-09-21 12:49 cpuinfo_transition_latency -r--r--r-- 1 root root 4096 2023-09-21 12:49 related_cpus -r--r--r-- 1 root root 4096 2023-09-21 12:49 scaling_available_frequencies -r--r--r-- 1 root root 4096 2023-09-21 12:49 scaling_available_governors -r--r--r-- 1 root root 4096 2023-09-21 12:45 scaling_cur_freq -r--r--r-- 1 root root 4096 2023-09-21 12:49 scaling_driver -rw-rw---- 1 system system 4096 2023-09-21 12:02 scaling_governor -rw-rw-r-- 1 system system 4096 2023-09-20 21:15 scaling_max_freq -rw-rw-r-- 1 system system 4096 2023-09-21 12:24 scaling_min_freq -rw-r--r-- 1 root root 4096 2023-09-21 12:51 scaling_setspeed drwxr-xr-x 2 root root 0 2023-09-21 12:45 stats TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # whoami root TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # cat scaling_governor userspace TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # cat scaling_available_frequencies 2600000 2507000 2354000 2200000 1985000 1855000 1740000 1624000 1537000 1451000 1335000 1162000 1046000 902000 700000 437000 TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # echo 2600000 > scaling_setspeed TECNO-CK9n:/sys/devices/system/cpu/cpufreq/policy4 # cat scaling_setspeed 700000
解决步骤
1. 先限制频率范围为目标值
userspace governor下,scaling_setspeed的设置不能超出scaling_max_freq和scaling_min_freq的范围。先强制将这两个值设为目标频率:
echo 2600000 > scaling_max_freq echo 2600000 > scaling_min_freq echo 2600000 > scaling_setspeed
之后再读取scaling_setspeed和cpuinfo_cur_freq确认是否生效。
2. 关闭MTK热管理守护进程
MTK设备自带的热管理服务(如mtk_thermal)会自动调整CPU频率,可能覆盖你的设置。先停止相关服务:
# 检查热管理进程 ps | grep thermal # 停止服务(根据实际进程名调整) stop mtk_thermal # 若使用systemd则执行 systemctl stop mtk-thermal.service
如果找不到服务,直接kill对应的进程ID即可。
3. 确认目标核心处于在线状态
policy4对应的是CPU4核心,先检查该核心是否在线:
cat /sys/devices/system/cpu/cpu4/online
若输出为0,先将核心唤醒:
echo 1 > /sys/devices/system/cpu/cpu4/online
之后再重新设置频率。
4. 检查MTK专属频率锁定节点
部分MTK设备需要先解锁核心频率锁定开关,可查找相关节点:
find /sys -name "*lock*" | grep cpufreq
若找到类似core_lock或freq_lock的节点,先写入1解锁:
echo 1 > /sys/devices/platform/mtk-cpufreq/core_lock
路径需根据实际输出调整,之后再尝试设置频率。
内容的提问来源于stack exchange,提问作者klay
相关产品推荐
相关产品推荐

