File tree Expand file tree Collapse file tree 1 file changed +73
-0
lines changed
Expand file tree Collapse file tree 1 file changed +73
-0
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ # sleep 5
4+ # 设置运行状态文件
5+ RUN=/var/run/cpu-fan.run
6+ touch $RUN
7+ chmod 777 $RUN
8+ # 设置风扇默认运行模式,0为关闭,1为全速,2为自动,运行过程中可以直接修改/var/run/cpu-fan.run文件来生效
9+ echo " 2" > $RUN
10+ # 设置开启风扇的最低温度
11+ set_temp_min=35000
12+ # 设置风扇全速运行的温度
13+ set_temp_max=70000
14+
15+ # 开机风扇全速运行
16+ # 默认的pwm值范围是0~1023
17+ gpio mode 1 pwm
18+ gpio pwm 1 1023
19+
20+
21+ # 初始化参数
22+ fan=0
23+
24+ while true
25+ do
26+ # 获取cpu温度
27+ tmp=` cat /sys/class/thermal/thermal_zone0/temp`
28+ status=` cat $RUN `
29+
30+ # 计算pwm值,从变量set_temp_min设置的温度开始开启风扇,最低转速50%
31+ pwm=$(( ($tmp - $set_temp_min )* 512 / ($set_temp_max - $set_temp_min )+ 511 ))
32+
33+ # 设置pwm值上限
34+ if [ $pwm -gt 1023 ] ; then
35+ pwm=1023
36+ fi
37+
38+
39+ # 小于设置温度关闭风扇
40+ if [ $tmp -le $set_temp_min ] ; then
41+ pwm=0
42+ fan=0
43+ else
44+
45+ # 第一次超过设置温度全速开启风扇,防止风扇不能启动
46+ if [ $tmp -gt $set_temp_min ] && [ $fan -eq 0 ] ; then
47+ gpio pwm 1 1023
48+ fan=1
49+ sleep 5
50+ fi
51+ fi
52+
53+
54+ # 检查run文件,为0时关闭风扇
55+ if [ $status -eq 0 ] ; then
56+ pwm=0
57+ fan=0
58+ else
59+
60+ # 检查run文件,为1时持续开启风扇最高转速
61+ if [ $status -eq 1 ] ; then
62+ pwm=1023
63+ fi
64+ fi
65+
66+ gpio pwm 1 $pwm
67+
68+ # 每5秒钟检查一次温度
69+ sleep 5
70+
71+ # 输出日志
72+ echo " ` date` temp=$tmp pwm=$pwm status=$status " >> /var/log/cpu-fan/cpu-fan.log
73+ done
You can’t perform that action at this time.
0 commit comments