NanoPC-T4 上实现pwm风扇自动调速

 

    友善之臂推出的 NanoPC-T4 是一款采用 瑞芯微 RK3399 方案的嵌入式开发板,性能强大。发热量也杠杠的。 其板载PWM调速风扇接口采用GH1.25 插头,支持PWM调速。但查看了下 dts 并没有配置自动根据温度调节的选项。(注:pwm-fan, thermal_zone, cooling_device相关DTS节点) ,  不过这么做也可以理解,友善官方并没有配套的风扇出售。而这些跟风扇参数相关)

   这里给出 NanoPC-T4官方Wiki资料,有兴趣的自行了解。

 

shell 脚本 保存到 /sbin/fan 并添加执行权限

#!/bin/bash

echo $$ > /var/run/fan.pid

echo 0 > /sys/class/pwm/pwmchip1/export

echo 0 > /sys/class/pwm/pwmchip1/pwm0/enable
echo 50000 > /sys/class/pwm/pwmchip1/pwm0/period
echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable

while true
do
	temp=$(cat /sys/class/thermal/thermal_zone0/temp)
	if [ $temp -gt 55000 ]; then
		# 数字越大 转速越慢
		echo 1000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 43000 ]; then
		echo 20000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 38000 ]; then
		echo 30000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 32000 ]; then
		echo 45000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	else
		echo 49990 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	fi
	sleep 1s;
done

文件 /lib/systemd/system/fan.service

[Unit]
Description=The PWM fan Script
After=syslog.target
 
[Service]
Type=forking
PIDFile=/var/run/fan.pid
ExecStart=/bin/bash -c "/sbin/fan "&
ExecReload=/bin/kill -s HUP 
ExecStop=/bin/kill -s QUIT 
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

最后执行如下命令:

systemctl enable fan.service
systemctl start fan.service

将该脚本配置为系统服务并自动启动。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值