Skip to content

Commit 10402f4

Browse files
authored
Add files via upload
1 parent b6ef47f commit 10402f4

File tree

1 file changed

+46
-0
lines changed
  • build-armbian/armbian-files/common-files/usr/bin

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/bash
2+
3+
# 配置参数
4+
THRESHOLD_TEMP=40 # 开启风扇温度阈值(°C)
5+
CHECK_INTERVAL=30 # 检查间隔(秒)
6+
FAN_CONTROL="/sys/class/leds/FAN_GPIO/brightness" # 风扇控制文件路径
7+
8+
# 获取CPU温度(兼容不同系统)
9+
get_cpu_temp() {
10+
# 优先从/sys/class/thermal读取
11+
for temp_file in /sys/class/thermal/thermal_zone*/temp; do
12+
if [ -f "$temp_file" ]; then
13+
echo $(($(cat "$temp_file")/1000))
14+
return 0
15+
fi
16+
done
17+
18+
# 备选方案:使用sensors命令
19+
if command -v sensors >/dev/null; then
20+
sensors | grep -E 'Package|Core' | awk '{print $3}' | grep -oE '[0-9]+' | head -1
21+
else
22+
echo "错误:无法读取CPU温度!" >&2
23+
exit 1
24+
fi
25+
}
26+
27+
# 控制风扇状态
28+
set_fan() {
29+
echo $1 | sudo tee "$FAN_CONTROL" >/dev/null
30+
}
31+
32+
# 主循环
33+
echo "启动风扇控制服务(>${THRESHOLD_TEMP}°C时开启)"
34+
while true; do
35+
temp=$(get_cpu_temp)
36+
37+
if [ "$temp" -gt "$THRESHOLD_TEMP" ]; then
38+
set_fan 1
39+
echo "$(date '+%Y-%m-%d %H:%M:%S') CPU温度: ${temp}°C > ${THRESHOLD_TEMP}°C → 风扇开启"
40+
else
41+
set_fan 0
42+
echo "$(date '+%Y-%m-%d %H:%M:%S') CPU温度: ${temp}°C ≤ ${THRESHOLD_TEMP}°C → 风扇关闭"
43+
fi
44+
45+
sleep "$CHECK_INTERVAL"
46+
done

0 commit comments

Comments
 (0)