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

友善之臂推出的 NanoPC-T4 是一款采用 瑞芯微 RK3399 方案的嵌入式开发板,性能强大。发热量也杠杠的。 其板载PWM调速风扇接口采用GH1.25 插头,支持PWM调速。

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

猜你喜欢

转载自blog.csdn.net/bywayboy/article/details/89874224