香橙派aipro 散热风扇风速调节 📅 2026/7/12 13:54:23 背景当进行模型推理或者模型转换时开发板明显变烫这时就可以考虑将散热风扇风速调大些。实际操作在 /opt/opi_test/fan 目录下有两个与风扇风速相关的脚本可以尝试执行并结合昇腾文档就比较好理解。当开发板发烫我的操作是# 设置为手动模式sudonpu-smiset-tpwm-mode-d0# 设置风速最后那个100表示调到最大0风速停止工作。sudonpu-smiset-tpwm-duty-ratio-d100# 当温度正常时再设置为自动模型sudonpu-smiset-tpwm-mode-d1在自动模式下我查看风扇转速是15sudonpu-smi info-tpwm-duty-ratio pwm-duty-ratio(%):15脚本自己写了一个用于查看和调整风扇风速的脚本。#!/bin/bashfan$1# 检查当前用户是否为rootif[$(id-u)!0];thenecho错误: 需要root权限来运行此脚本。exit1fiif[$fanratio];then# 当输入是“ratio”时查询当前风速。sudonpu-smi info-tpwm-modesudonpu-smi info-tpwm-duty-ratioelif!echo$fan|grep-q^[0-9]\$;then# 当输入不是正整数时设置为自动模式。sudonpu-smiset-tpwm-mode-d1elif[$fan-ge0-a$fan-le100];then# 当输入是[0, 100]范围的正整数时设置为手动模式并设置风速。sudonpu-smiset-tpwm-mode-d0sudonpu-smiset-tpwm-duty-ratio-d$fanelse# 输入是其它情况时设置为自动模式。sudonpu-smiset-tpwm-mode-d1fi补充一个自动调节风速的脚本#!/bin/bash# # 香橙派 AI Pro 风扇自动调速脚本# 用法# sudo ./fan_control.sh # 正常模式后台循环无日志# sudo ./fan_control.sh debug # 调试模式执行一次输出详细信息# # ---------- 配置参数 ----------TEMP_LOW45# 低于此温度最低转速TEMP_MID55# 此温度以上低速TEMP_HIGH65# 此温度以上中速TEMP_MAX75# 此温度以上高速全速为100# PWM 占空比0-100最低转速设为30PWM_MIN30# 最低转速永远不为0PWM_LOW45PWM_MID60PWM_HIGH85PWM_FULL100INTERVAL10# 正常模式下的检测间隔秒# ---------- 函数定义 ----------# 设置风扇为手动模式永久set_fan_mode(){sudonpu-smiset-tpwm-mode-d0/dev/null21}# 设置风扇转速set_fan_speed(){localspeed$1sudonpu-smiset-tpwm-duty-ratio-d$speed/dev/null21}# 获取 NPU 温度get_npu_temp(){localtemp_rawtemp_raw$(npu-smi info-ttemp-i02/dev/null|grepTemperature|awk{print $NF})if[[-z$temp_raw]];thenecho50elseecho$temp_rawfi}# 根据温度计算目标转速永远返回 ≥ PWM_MINcalc_speed(){localtemp$1if[$temp-lt$TEMP_LOW];thenecho$PWM_MINelif[$temp-lt$TEMP_MID];thenecho$PWM_LOWelif[$temp-lt$TEMP_HIGH];thenecho$PWM_MIDelif[$temp-lt$TEMP_MAX];thenecho$PWM_HIGHelseecho$PWM_FULLfi}# ---------- 调试模式 ----------run_debug(){echo 风扇调速调试模式 echo温度阈值: 低$TEMP_LOW, 中$TEMP_MID, 高$TEMP_HIGH, 最大$TEMP_MAXechoPWM值: 最低$PWM_MIN, 低$PWM_LOW, 中$PWM_MID, 高$PWM_HIGH, 全$PWM_FULLechoset_fan_modeecho已切换至手动模式temp$(get_npu_temp)echo当前NPU温度:${temp}°Cspeed$(calc_speed$temp)echo目标PWM占空比:${speed}%set_fan_speed$speedecho已设置风扇转速echoecho调试完成。如需恢复自动模式请执行: sudo npu-smi set -t pwm-mode -d 1}# ---------- 正常模式 ----------run_normal(){set_fan_modewhiletrue;dotemp$(get_npu_temp)speed$(calc_speed$temp)set_fan_speed$speedsleep$INTERVALdone}# ---------- 主入口 ----------if[$1debug];thenrun_debugelserun_normalfi上面的脚本可以添加到系统服务开机自启。具体操作如下sudovim/etc/systemd/system/fan-control.servicefan-control.service 写入如下内容注意ExecStart的值是脚本文件的路径。[Unit] DescriptionOrange Pi AI Pro Fan Control Aftermulti-user.target [Service] Typesimple ExecStart/home/HwHiAiUser/fan.sh Restartalways RestartSec10 Userroot [Install] WantedBymulti-user.target# 重新加载 Systemd 配置sudosystemctl daemon-reload# 立即启动sudosystemctl start fan-control.service# 开机自启sudosystemctlenablefan-control.service参考Atlas A2 智能边缘硬件 23.0.RC3 npu-smi 命令参考 02——设置风扇模式Atlas A2 智能边缘硬件 23.0.RC3 npu-smi 命令参考 02——设置风扇调速比