香橙派AIPro 20T手动控制风扇转速,优化设备温度管理
新人帖
发表于2024-06-29 12:14:19
0 查看
在默认的Auto模式下,风扇在开机后基本不动,导致设备温度迅速升高,甚至烫手。为了解决这一问题,我们可以通过手动模式来根据不同的温度调整风扇转速,从而有效控制设备温度。
我们需要将默认的自动控制风扇速度换成手动控制(0为手动,1为自动)。
以下是一个名为fan_control.sh的Bash脚本,你可以将其放置在任意位置,例如/root目录下。该脚本包含了详细的温控逻辑,并附有清晰的注释,方便你根据需要进行修改。
设置可执行权限,然后执行一下该文件测试一下。
设置root账户定时执行(每分钟执行一次上面的脚本)
- 增加两行下面的内容,
/root/fan_control.sh可以换成你的文件路径,执行结果输出放在/home/HwHiAiUser/fan_control.log路径。第一行代表每分钟检查一下温度控制,第二行代表每天凌晨覆盖日志,防止文件过大。
保险起见,重启一下任务程序。
如果ok,可以通过cat /home/HwHiAiUser/fan_control.log查看执行结果。
也可以通过ls -lh /home/HwHiAiUser/fan_control.log查看最新执行时间。
通过以上步骤,可以有效地管理设备温度(此时外壳只是温热),确保设备运行在最佳状态。
本帖最后由 匿名用户 于 2024/06/30 09:51:37 编辑
在默认的Auto模式下,风扇在开机后基本不动,导致设备温度迅速升高,甚至烫手。为了解决这一问题,我们可以通过手动模式来根据不同的温度调整风扇转速,从而有效控制设备温度。
我们需要将默认的自动控制风扇速度换成手动控制(0为手动,1为自动)。
以下是一个名为fan_control.sh的Bash脚本,你可以将其放置在任意位置,例如/root目录下。该脚本包含了详细的温控逻辑,并附有清晰的注释,方便你根据需要进行修改。
#!/bin/bash get_current_temperature() { temperature=$(sudo npu-smi info -t temp -i 0 | grep "Temperature (C)" | awk '{print $NF}' | cut -d. -f1) echo "当前温度为: $temperature°C" } get_fan_speed() { fan_speed_radio=$(sudo npu-smi info -t pwm-duty-ratio -i 0 | grep "pwm-duty-ratio(%)" | awk '{print $NF}') echo $fan_speed_radio } set_fan_speed() { temperature=$1 current_fan_speed=$(get_fan_speed) # 如果温度低于35度,设置风扇转速为35% if [ $temperature -lt 35 ]; then target_fan_speed=35 # 如果温度在35度~50度之间,设置风扇转速为50% elif [ $temperature -ge 35 ] && [ $temperature -lt 50 ]; then target_fan_speed=50 # 如果温度在50度~65度之间,设置风扇转速为65% elif [ $temperature -ge 50 ] && [ $temperature -lt 65 ]; then target_fan_speed=65 # 如果温度在65度~70度之间,设置风扇转速为70% elif [ $temperature -ge 65 ] && [ $temperature -lt 70 ]; then target_fan_speed=70 # 如果温度在70度~75度之间,设置风扇转速为75% elif [ $temperature -ge 70 ] && [ $temperature -lt 75 ]; then target_fan_speed=75 # 如果温度在75度~80度之间,设置风扇转速为80% elif [ $temperature -ge 75 ] && [ $temperature -lt 80 ]; then target_fan_speed=80 # 如果温度在80度以上,则设置风扇转速为100% else target_fan_speed=100 fi if [ "$current_fan_speed" -ne "$target_fan_speed" ]; then sudo npu-smi set -t pwm-duty-ratio -d $target_fan_speed echo "设置风扇转速为 $target_fan_speed%" else echo "当前风扇转速已经是 $target_fan_speed%,无需更改。" fi } # 获取当前温度 get_current_temperature # 获取当前温度值 temperature=$(sudo npu-smi info -t temp -i 0 | grep "Temperature (C)" | awk '{print $NF}' | cut -d. -f1) # 根据温度设置风扇转速 set_fan_speed $temperature设置可执行权限,然后执行一下该文件测试一下。
当前温度为: 58°C Status : OK Message : Set pwm duty ratio 65 success 设置风扇转速为 65%设置root账户定时执行(每分钟执行一次上面的脚本)
/root/fan_control.sh可以换成你的文件路径,执行结果输出放在/home/HwHiAiUser/fan_control.log路径。第一行代表每分钟检查一下温度控制,第二行代表每天凌晨覆盖日志,防止文件过大。保险起见,重启一下任务程序。
如果ok,可以通过
cat /home/HwHiAiUser/fan_control.log查看执行结果。也可以通过
ls -lh /home/HwHiAiUser/fan_control.log查看最新执行时间。通过以上步骤,可以有效地管理设备温度(此时外壳只是温热),确保设备运行在最佳状态。