20250304在飞凌OK3588-C的linux R4下提高温度控制阈值为95度

20250304在飞凌OK3588-C的linux R4下提高温度控制阈值为95度

2025/3/4 15:56

缘起:我司应用工程师需要调用NPU来进行AI识别/检测,CPU/核心板在有塑胶外壳的情况下满负荷工作,风扇也压不住^_

权衡之后还是提高温度阈值到95度了。

@程帅?程工,请问rk3588的温度控制降频怎么关闭,我设置了温控策略为user_space,但是测试cpu核心温度到了85度还是会出现降频,我需要系统一直保持performance的频率

您那边有什么降温策略吗,不建议取消温控,容易缩短寿命

目前没有很好的降温的策略,但是我们不希望温度升高后频率下降

或者可以把温控的阈值调高,到95度以上

把85000改成95000

Y:\version\OK3588_Linux_fs\docs\Common\THERMAL\Rockchip_Developer_Guide_Thermal_CN.pdf

Y:\version\OK3588_Linux_fs\docs\Common\THERMAL\Rockchip_Developer_Guide_Thermal_EN.pdf

root@ok3588:/# cd /sys/class/thermal/

root@ok3588:/sys/class/thermal# ll

sh: ll: command not found

root@ok3588:/sys/class/thermal# ls -l

total 0

lrwxrwxrwx 1 root root 0 Jan 1 08:00 cooling_device0 -> ../../devices/virtual/thermal/cooling_device0

lrwxrwxrwx 1 root root 0 Jan 1 08:00 cooling_device1 -> ../../devices/virtual/thermal/cooling_device1

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone0 -> ../../devices/virtual/thermal/thermal_zone0

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone1 -> ../../devices/virtual/thermal/thermal_zone1

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone2 -> ../../devices/virtual/thermal/thermal_zone2

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone3 -> ../../devices/virtual/thermal/thermal_zone3

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone4 -> ../../devices/virtual/thermal/thermal_zone4

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone5 -> ../../devices/virtual/thermal/thermal_zone5

lrwxrwxrwx 1 root root 0 Jan 1 08:00 thermal_zone6 -> ../../devices/virtual/thermal/thermal_zone6

root@ok3588:/sys/class/thermal#

root@ok3588:/sys/class/thermal#

root@ok3588:/sys/class/thermal# cd thermal_zone0/

root@ok3588:/sys/class/thermal/thermal_zone0# ls -l

total 0

-r--r--r-- 1 root root 4096 Jan 1 08:01 available_policies

lrwxrwxrwx 1 root root 0 Jan 1 08:01 cdev0 -> ../cooling_device1

-r--r--r-- 1 root root 4096 Jan 1 08:01 cdev0_trip_point

-rw-r--r-- 1 root root 4096 Jan 1 08:01 cdev0_weight

drwxr-xr-x 3 root root 0 Jan 1 08:00 hwmon1

-rw-r--r-- 1 root root 4096 Jan 1 08:01 integral_cutoff

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_d

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_i

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_po

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_pu

-rw-r--r-- 1 root root 4096 Jan 1 08:01 mode

-rw-r--r-- 1 root root 4096 Jan 1 08:01 offset

-rw-r--r-- 1 root root 4096 Jan 1 08:01 policy

drwxr-xr-x 2 root root 0 Jan 1 08:01 power

-rw-r--r-- 1 root root 4096 Jan 1 08:01 slope

lrwxrwxrwx 1 root root 0 Jan 1 08:01 subsystem -> ../../../../class/thermal

-rw-r--r-- 1 root root 4096 Jan 1 08:01 sustainable_power

-r--r--r-- 1 root root 4096 Jan 1 08:01 temp

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_temp

-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_type

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_temp

-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_type

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_temp

-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_type

-r--r--r-- 1 root root 4096 Jan 1 08:01 type

-rw-r--r-- 1 root root 4096 Jan 1 08:00 uevent

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0# ls -l

total 0

-r--r--r-- 1 root root 4096 Jan 1 08:01 available_policies

lrwxrwxrwx 1 root root 0 Jan 1 08:01 cdev0 -> ../cooling_device1

-r--r--r-- 1 root root 4096 Jan 1 08:01 cdev0_trip_point

-rw-r--r-- 1 root root 4096 Jan 1 08:01 cdev0_weight

drwxr-xr-x 3 root root 0 Jan 1 08:00 hwmon1

-rw-r--r-- 1 root root 4096 Jan 1 08:01 integral_cutoff

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_d

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_i

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_po

-rw-r--r-- 1 root root 4096 Jan 1 08:01 k_pu

-rw-r--r-- 1 root root 4096 Jan 1 08:01 mode

-rw-r--r-- 1 root root 4096 Jan 1 08:01 offset

-rw-r--r-- 1 root root 4096 Jan 1 08:01 policy

drwxr-xr-x 2 root root 0 Jan 1 08:01 power

-rw-r--r-- 1 root root 4096 Jan 1 08:01 slope

lrwxrwxrwx 1 root root 0 Jan 1 08:01 subsystem -> ../../../../class/thermal

-rw-r--r-- 1 root root 4096 Jan 1 08:01 sustainable_power

-r--r--r-- 1 root root 4096 Jan 1 08:01 temp

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_temp

-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_0_type
-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_hyst
-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_temp
-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_1_type

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_temp

-r--r--r-- 1 root root 4096 Jan 1 08:01 trip_point_2_type

-r--r--r-- 1 root root 4096 Jan 1 08:01 type

-rw-r--r-- 1 root root 4096 Jan 1 08:00 uevent

root@ok3588:/sys/class/thermal/thermal_zone0# cat type

soc-thermal

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0# cat temp

40692

root@ok3588:/sys/class/thermal/thermal_zone0# CAT trip_point_0_hyst

sh: CAT: command not found

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_0_hyst

2000

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_0_temp

75000

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_0_t

trip_point_0_temp trip_point_0_type

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_0_type

passive

root@ok3588:/sys/class/thermal/thermal_zone0#
root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_1_hyst
2000
root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_1_temp
85000
root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_1_type
passive

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_2_hyst

2000

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_2_temp

115000

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_2_type

critical

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0#

修改DTS:

Y:\version\OK3588_Linux_fs\kernel\arch\arm64\boot\dts\rockchip\rk3588s.dtsi

thermal_zones: thermal-zones {

soc_thermal: soc-thermal {

polling-delay-passive = <20>; /* milliseconds */

polling-delay = <1000>; /* milliseconds */

sustainable-power = <2100>; /* milliwatts */

thermal-sensors = <&tsadc 0>;

trips {

threshold: trip-point-0 {

temperature = <75000>;

hysteresis = <2000>;

type = "passive";

};

target: trip-point-1 {

temperature = <95000>;

hysteresis = <2000>;

type = "passive";

};

soc_crit: soc-crit {

/* millicelsius */

temperature = <115000>;

/* millicelsius */

hysteresis = <2000>;

type = "critical";

};

};

修改为:

thermal_zones: thermal-zones {

soc_thermal: soc-thermal {

polling-delay-passive = <20>; /* milliseconds */

polling-delay = <1000>; /* milliseconds */

sustainable-power = <2100>; /* milliwatts */

thermal-sensors = <&tsadc 0>;

trips {

threshold: trip-point-0 {

temperature = <75000>;

hysteresis = <2000>;

type = "passive";

};

target: trip-point-1 {

temperature = <85000>;

hysteresis = <2000>;

type = "passive";

};

soc_crit: soc-crit {

/* millicelsius */

temperature = <115000>;

/* millicelsius */

hysteresis = <2000>;

type = "critical";

};

};

修改之后的效果图:

root@ok3588:/#

root@ok3588:/#

root@ok3588:/#

root@ok3588:/# uname -a

Linux ok3588 5.10.66 #4 SMP Tue Mar 4 15:07:40 CST 2025 aarch64 GNU/Linux

root@ok3588:/#

root@ok3588:/#

root@ok3588:/# cd /sys/class/thermal/thermal_zone0

root@ok3588:/sys/class/thermal/thermal_zone0# ls -l

total 0

-r--r--r-- 1 root root 4096 Jan 1 08:00 available_policies

lrwxrwxrwx 1 root root 0 Jan 1 08:00 cdev0 -> ../cooling_device1

-r--r--r-- 1 root root 4096 Jan 1 08:00 cdev0_trip_point

-rw-r--r-- 1 root root 4096 Jan 1 08:00 cdev0_weight

drwxr-xr-x 3 root root 0 Jan 1 08:00 hwmon1

-rw-r--r-- 1 root root 4096 Jan 1 08:00 integral_cutoff

-rw-r--r-- 1 root root 4096 Jan 1 08:00 k_d

-rw-r--r-- 1 root root 4096 Jan 1 08:00 k_i

-rw-r--r-- 1 root root 4096 Jan 1 08:00 k_po

-rw-r--r-- 1 root root 4096 Jan 1 08:00 k_pu

-rw-r--r-- 1 root root 4096 Jan 1 08:00 mode

-rw-r--r-- 1 root root 4096 Jan 1 08:00 offset

-rw-r--r-- 1 root root 4096 Jan 1 08:00 policy

drwxr-xr-x 2 root root 0 Jan 1 08:00 power

-rw-r--r-- 1 root root 4096 Jan 1 08:00 slope

lrwxrwxrwx 1 root root 0 Jan 1 08:00 subsystem -> ../../../../class/thermal

-rw-r--r-- 1 root root 4096 Jan 1 08:00 sustainable_power

-r--r--r-- 1 root root 4096 Jan 1 08:00 temp

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_0_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_0_temp

-r--r--r-- 1 root root 4096 Jan 1 08:00 trip_point_0_type

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_1_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_1_temp

-r--r--r-- 1 root root 4096 Jan 1 08:00 trip_point_1_type

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_2_hyst

-rw-r--r-- 1 root root 4096 Jan 1 08:00 trip_point_2_temp

-r--r--r-- 1 root root 4096 Jan 1 08:00 trip_point_2_type

-r--r--r-- 1 root root 4096 Jan 1 08:00 type

-rw-r--r-- 1 root root 4096 Jan 1 08:00 uevent

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0# cat trip_point_1_temp

95000

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0#

root@ok3588:/sys/class/thermal/thermal_zone0# poweroff

参考资料:

https://blog.csdn.net/weixin_43245753/article/details/124341281

Rockchip RK3588获取芯片的实时温度

Rockchip RK3588获取芯片的实时温度

RK3588的芯片有7路TS-ADC分别对应:芯片中心位置、A76_0/1、A76_2/3、DSU 、A55_0/1/2/3、PD_CENTER、 NPU、GPU。

可以通过如下命令获取实时的芯片温度:

单位:0.001摄氏度

芯片中心位置温度:soc-thermal

rk3588_s:/ # cat /sys/class/thermal/thermal_zone0/temp

62846

1

2

CPU大核A76_0/1 即CPU4和CPU5的温度:

rk3588_s:/ # cat /sys/class/thermal/thermal_zone1/temp

63769

1

2

CPU大核A76_2/3 即CPU6和CPU7的温度:

rk3588_s:/ # cat /sys/class/thermal/thermal_zone2/temp

62846

1

2

CPU小核A55_0/12/3 即CPU0、CPU1、CPU2、CPU3的温度

rk3588_s:/ # cat /sys/class/thermal/thermal_zone3/temp

62846

1

2

PD_CENTER的温度:

rk3588_s:/ # cat /sys/class/thermal/thermal_zone4/temp

60076

1

2

GPU的温度

rk3588_s:/ # cat /sys/class/thermal/thermal_zone5/temp

61000

1

2

NPU的温度

rk3588_s:/ # cat /sys/class/thermal/thermal_zone6/temp

61000

https://zhuanlan.zhihu.com/p/678024036

RK3588 CPU GPU NPU 定频和性能模式设置方法以及温度监控

相关推荐
眠修7 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
重庆小透明13 分钟前
力扣刷题记录【1】146.LRU缓存
java·后端·学习·算法·leetcode·缓存
lang2015092818 分钟前
Reactor操作符的共享与复用
java
TTc_28 分钟前
@Transactional事务注解的批量回滚机制
java·事务
desssq32 分钟前
力扣:70. 爬楼梯
算法·leetcode·职场和发展
clock的时钟1 小时前
暑期数据结构第一天
数据结构·算法
wei_shuo1 小时前
飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式
java·开发语言·飞算javaai
小小小小王王王1 小时前
求猪肉价格最大值
数据结构·c++·算法
欧阳秦穆2 小时前
apoc-5.24.0-extended.jar 和 apoc-4.4.0.36-all.jar 啥区别
java·jar
岁忧2 小时前
(LeetCode 面试经典 150 题 ) 58. 最后一个单词的长度 (字符串)
java·c++·算法·leetcode·面试·go