返回文章列表

Rockchip平台调试命令参考手册

本文档汇总了Rockchip芯片平台上CPU、GPU、DDR、NPU、RGA、VPU等核心模块的常用调试命令,涵盖频率/电压查看与设置、定频操作、利用率统计、驱动版本查询、日志开启、内存调试等内容,旨在帮助开发者在系统调试、性能优化及问题定位过程中快速查阅相关操作指令。文档基于Rockchip官方调试接口编写,适用于Rockchip各系列芯片(包括大小核架构、RKNPU/RKNPU2等)的Linux/Android系统开发。

Admin
11 分钟阅读
20 次阅读
最后编辑于 2026-03-12 04:52
Rockchip平台调试命令参考手册

一、CPU相关命令

1. 如何CPU定频

非大小核平台,执行如下命令:

bash
/* 切换governor到userspace */
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
/* 设置216MHz */
echo 216000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspee

大小核平台,执行如下命令:

bash
/* 切换小核governor到userspace */
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
/* 设置小核216MHz */
echo 216000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed

/* 切换大核governor到userspace */
echo userspace > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
/* 设置大核408MHz */
echo 408000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_setspeed

2. 如何查看当前CPU频率

非大小核平台,执行如下命令:

bash
/* 方法一:cpufreq的用户态接口 */
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq

/* 方法二:clock debug接口 */
cat /sys/kernel/debug/clk/armclk/clk_rate

大小核平台,执行如下命令:

bash
/* 方法一:cpufreq 的用户态接口 */
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq /* 小核频率*/
cat /sys/devices/system/cpu/cpufreq/policy4/scaling_cur_freq /* 大核频率*/

/* 方法二:clock debug 接口 */
cat /sys/kernel/debug/clk/armclkl/clk_rate /* 小核频率 */
cat /sys/kernel/debug/clk/armclkb/clk_rate /* 大核频率 */

3. 如何查看当前CPU电压

非大小核平台,执行如下命令:

bash
/* 不一定是vdd_core,根据实际的regulator配置修改 */
cat /sys/kernel/debug/regulator/vdd_core/voltage

大小核平台,执行如下命令:

bash
/* 不一定是vdd_core_l和vdd_core_b,根据实际的regulator配置修改*/
cat /sys/kernel/debug/regulator/vdd_core_l/voltage /* 小核电压*/
cat /sys/kernel/debug/regulator/vdd_core_b/voltage /* 大核电压*/

4. 如何单独调频调压

注意:升频需要先调压再调频,降频需要先调频再调压。

修改CPU定频,CPU调频通过 clock 的 debug 接口设置频率,举例如下:

bash
/* 非大小核平台,比如RK3288,设置216MHz */
echo 216000000 > /sys/kernel/debug/clk/armclk/clk_rate /* 设置频率*/
cat /sys/kernel/debug/clk/armclkl/clk_rate /* 查看频率 */

/* 大小核平台,比如 RK3399,小核设置 216MHz,大核设置 408Mhz */
echo 216000000 > /sys/kernel/debug/clk/armclkl/clk_rate /* 设置小核频率*/
cat /sys/kernel/debug/clk/armclkl/clk_rate /* 查看小核频率*/
echo 408000000 > /sys/kernel/debug/clk/armclkb/clk_rate /* 设置大核频率*/
cat /sys/kernel/debug/clk/armclkb/clk_rate /* 查看大核频率*/

CPU 调压,通过 regulator 的 debug 接口设置电压,举例如下:

bash
/* 非大小核平台,比如 RK3288,设置 950mV,不一定是 vdd_core,根据实际的regulator配置修改*/
echo 950000 > /sys/kernel/debug/regulator/vdd_core/voltage /* 设置电压*/
cat /sys/kernel/debug/regulator/vdd_core/voltage /* 查看电压*/

/* 大小核平台,比如 RK3399,小核设置 950mV,大核设置 1000mV,不一定是vdd_core_l 和vdd_core_b,根据实际的 regulator 配置修改*/
echo 950000 > /sys/kernel/debug/regulator/vdd_core_l/voltage /* 设置小核电压*/
cat /sys/kernel/debug/regulator/vdd_core_l/voltage /* 查看小核电压*/
echo 950000 > /sys/kernel/debug/regulator/vdd_core_b/voltage /* 设置大核电压*/
cat /sys/kernel/debug/regulator/vdd_core_b/voltage /* 查看大核电压*/

5. 如何查看CPU温度

bash
cat /sys/class/thermal/thermal_zone0/temp

6. 如何查看频率电压表

bash
cat /sys/kernel/debug/opp/opp_summary

7. 相关文档

  • Android SDK: RKDocs\common\DVFS\Rockchip_Developer_Guide_CPUFreq_CN
  • Linux SDK: docs\cn\Common\DVFS\Rockchip_Developer_Guide_CPUFreq_CN

二、GPU相关命令

1. 如何GPU定频

bash
/* 切换到userspace,不一定是ff400000.gpu,根据不同的平台修改*/
echo userspace > /sys/class/devfreq/ff400000.gpu/governor
/* 设置400MHz */
echo 400000000 > /sys/class/devfreq/ff400000.gpu/userspace/set_freq
/* 查看当前频率 */
cat /sys/class/devfreq/ff400000.gpu/cur_freq

2. 如何查看当前GPU频率

bash
/* 方法一:devfreq的用户态接口,不一定是ff400000.gpu,根据不同的平台修改*/
cat /sys/class/devfreq/ff400000.gpu/cur_freq

/* 方法二:clock debug接口,不一定是aclk_gpu,根据实际的clock配置修改*/
cat /sys/kernel/debug/clk/aclk_gpu/clk_rate

3. 如何查看当前GPU电压

bash
/* 不一定是vdd_logic,根据实际的regulator配置修改 */
cat /sys/kernel/debug/regulator/vdd_logic/voltage

4. 如何单独调频调压

注意:升频需要先调压再调频,降频需要先调频再调压。

bash
/* 关闭自动变频,不一定是ff400000.gpu,根据不同的平台修改 */
echo userspace > /sys/class/devfreq/ff400000.gpu/governor

/* 调频,不一定是aclk_gpu,根据实际的clock配置修改 */
echo 400000000 > /sys/kernel/debug/clk/aclk_gpu/clk_rate
cat /sys/kernel/debug/clk/aclk_gpu/clk_rate

/* 调压,不一定是vdd_logic,根据实际的regulator配置修改 */
echo 1000000 > /sys/kernel/debug/regulator/vdd_logic/voltage
cat /sys/kernel/debug/regulator/vdd_logic/voltage

5. 如何查看GPU利用率

bash
/* 不一定是fb000000.gpu,根据不同的平台修改 */
cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/load

6. 如何查看GPU温度

bash
cat /sys/class/thermal/thermal_zone1/temp

7. 相关文档

  • Android SDK: RKDocs\common\DVFS\Rockchip_Developer_Guide_Devfreq_CN
  • Linux SDK: docs\cn\Common\DVFS\Rockchip_Developer_Guide_Devfreq_CN

三、DDR相关命令

1. 查看DDR频率

bash
cat /sys/kernel/debug/clk/clk_summary | grep ddr
cat /sys/class/devfreq/dmc/cur_freq

2. 如何DDR定频

bash
echo userspace > /sys/class/devfreq/dmc/governor
cat /sys/class/devfreq/dmc/available_frequencies
echo 1560000000 > /sys/class/devfreq/dmc/userspace/set_freq

3. 如何查看DDR带宽利用率

bash
cat /sys/class/devfreq/dmc/load

4. 如何统计DDR带宽

需要找FAE申请DDR带宽统计工具 rk-msch-probe,包含32位和64位对应不同平台。

bash
./rk-msch-probe-for-user-32bit -c rv1126 -f 924
/* -c rv1126 表示当前芯片为1126, -f 表示当前频率为 924M ,可通过-h 参考具体的命令 */

5. 内存调试

查看内存信息

bash
cat /proc/meminfo

查看虚拟内存使用情况

bash
cat /proc/vmallocinfo

CMA调试需要先打开下面宏配置

code
CONFIG_CMA_DEBUGFS=y  # 打开调试文件节点
CONFIG_CMA_DEBUG=y    # 打印CMA日志信息
bash
ls /sys/kernel/debug/cma/cma-reserved
  • alloc:用于从当前CMA块分配内存,单位:页
  • bitmap:标记当前CMA块各个页是否被分配,1表示已被申请,0表示未被申请
  • free:用于当前CMA块释放内存,单位:页
  • order_per_bit:表示一个BIT所代表的页的阶数
  • used:当前被申请的页的个数,单位:页
  • base_pfn:当前CMA块首个页的页帧数
  • maxchunk:当前CMA块最大连续空闲页的数量,单位:页

查看DMA buffer信息

bash
cat /sys/kernel/debug/dma_buf/bufinfo
cat /proc/rk_dmabuf/size

RV1106/RV1103专用分配器:RK-DMA-HEAP

bash
cat /proc/rk_cma/rk-dma-heap-cma
cat /proc/rk_dma_heap/dma_heap_info

6. 内存压力测试

bash
stressapptest -s 43200 -i 4 -C 4 -W --stop_on_errors -M 128
memtester 128m > /data/memtester_log.txt &

7. 相关文档

  • Android SDK: RKDocs\common\DDR***, RKDocs\common\MEMORY***
  • Linux SDK: docs\cn\Common\DDR***, docs\cn\Common\MEMORY***

四、NPU相关命令

目前Rockchip包含NPU的芯片分为RKNPU和RKNPU2。

  • RKNPU包含:RK3399pro/RK1808/RV1126/RV1109。
  • RKNPU2包含:RK3562/RK3566/RK3568/RK3588/RV1103/RV1106。

1. 查看NPU频率

bash
/* 不一定是fdab0000.npu,根据不同的平台修改 */
cat /sys/kernel/debug/clk/clk_summary | grep npu
cat /sys/class/devfreq/fdab0000.npu/cur_freq

2. 如何NPU定频

bash
/* 不一定是fdab0000.npu,根据不同的平台修改 */
echo userspace > /sys/class/devfreq/fdab0000.npu/governor
echo 1000000000 > /sys/class/devfreq/fdab0000.npu/userspace/set_freq
cat /sys/class/devfreq/fdab0000.npu/cur_freq

3. NPU支持查询设置项

下面命令只支持RKNPU2平台驱动且驱动版本在 0.7.2 之后。

查询NPU利用率

bash
cat /sys/kernel/debug/rknpu/load
cat /proc/debug/rknpu/load

查询NPU驱动版本

bash
dmesg | grep -i rknpu   # 打印前重启,否则dmesg日志会被冲掉
sudo cat /sys/kernel/debug/rknpu/driver_version
sudo cat /proc/debug/rknpu/driver_version
sudo cat /sys/kernel/debug/rknpu/version   # linux6.1

查询NPU电源状态

bash
cat /sys/kernel/debug/rknpu/power

打开NPU电源

bash
echo on > /sys/kernel/debug/rknpu/power

关闭NPU电源

bash
echo off > /sys/kernel/debug/rknpu/power

查询NPU工作电压

bash
cat /sys/kernel/debug/rknpu/volt

查询 NPU 动态开关电源,电源延迟关闭时间(单位:ms)

bash
cat /sys/kernel/debug/rknpu/delayms

设置 NPU 动态开关电源,电源延迟关闭时间(单位:ms)

bash
echo 2000 > /sys/kernel/debug/rknpu/delayms

4. 相关资料

RKNPU开发资料

RKNPU2开发资料


五、RGA相关命令

1. 查询RGA频率

bash
cat /sys/kernel/debug/clk/clk_summary | grep rga   # 查询rga频率,其中的aclk的频率

2. 修改RGA频率

bash
echo 400000000 > /sys/kernel/debug/clk/aclk_rga/clk_rate   # 400000000修改为想要修改的频率

3. RGA驱动版本查询

bash
cat /sys/kernel/debug/rkrga/driver_version
cat /proc/rkrga/driver_version

4. 查询librga库版本号

Android系统

bash
strings vendor/lib64/librga.so |grep rga_api |grep version

Linux系统

bash
strings usr/lib/librga.so |grep rga_api |grep version

5. 开启librga日志

Android系统

bash
setprop vendor.rga.log 1
logcat -s librga
setprop vendor.rga.log_level 6

日志等级:全打印(0)、DEFAULT(1)、DEBUG(3)、INFO(4)、WRANING(5)、ERROR(6)

Linux系统(librga 1.9.0版本以上)

bash
export ROCKCHIP_RGA_LOG=1
export ROCKCHIP_RGA_LOG_LEVEL=6

日志等级:全打印(0)、DEFAULT(1)、DEBUG(3)、INFO(4)、WRANING(5)、ERROR(6)

6. RGA debug节点

bash
cat /sys/kernel/debug/rkrga/debug

输出示例:

code
REG [DIS]
MSG [DIS]
TIME [DIS]
INT [DIS]
MM [DIS]
CHECK [DIS]
STOP [DIS]
help:
'echo reg > debug' to enable/disable register log printing.
'echo msg > debug' to enable/disable message log printing.
'echo time > debug' to enable/disable time log printing.
'echo int > debug' to enable/disable interruppt log printing.
'echo mm > debug' to enable/disable memory manager log printing.
'echo check > debug' to enable/disable check mode.
'echo stop > debug' to enable/disable stop using hardware

7. RGA负载查询

bash
cat /sys/kernel/debug/rkrga/load

8. RGA内存管理器查询

bash
cat /sys/kernel/debug/rkrga/mm_session

9. RGA任务请求查询

bash
cat /sys/kernel/debug/rkrga/request_manager

10. RGA硬件信息查询

bash
cat /sys/kernel/debug/rkrga/hardware

11. Dump运行数据

通过以下命令dump运行数据用于调试,可以通过调试节点配置实现将RGA接下来几帧数据写到指定目录下,如果没有该节点说明当前kernel不支持。

设置dump数据路径

bash
echo /data/rga_image > /sys/kernel/debug/rkrga/dump_path

设置dump数据帧数

bash
echo 1 > /sys/kernel/debug/rkrga/dump_image

12. 相关文档


六、VPU相关命令

1. 查询VPU驱动版本

bash
cat /proc/mpp_service/version

2. 查看VPU帧率

bash
cat /proc/mpp_service/sessions-summary

3. 查看频率

bash
cat /sys/kernel/debug/clk/clk_summary | grep rkvenc

4. 修改频率

bash
echo 600000000 > /proc/mpp_service/rkvenc/clk_core

5. 打开debug打印

bash
echo 0x100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug

6. 相关文档

  • Android SDK: RKDocs\android\video\Rockchip_Android_Multimedia_FAQ_CN, RKDocs\common\MPP\Rockchip_Developer_Guide_MPP_CN
  • Linux SDK: docs\cn\Common\MPP\Rockchip_Developer_Guide_MPP_CN

七、打开性能模式

bash
echo performance | tee $(find /sys/ -name *governor);

登录后发表评论

请先登录账号后再发表评论