admin avatar

banana-pi-BPI-R4 在immortalwrt固件下的cpu风扇控制脚本

🕦 by admin

banana-pi-BPI-R4 在immortalwrt固件下的cpu风扇控制脚本

官方提供的banana-pi-BPI-R4固件真的可以说很烂

连基本的wget-ssl都没有提供,刷banana-pi-BPI-R4官方的openwrt系统

连最基本的opkg update都无法执行

原因在于就是没有安装wget-ssl,需要修改源地址为http,在安装wget-ssl

banana-pi-BPI-R4的官方openwrt固件是基于内核5.1的,wifi驱动也是闭源的

除了wifi信号很强,以及支持mlo外,官方的固件也就没有什么喜感了

下面是基于immortalwrt24.10.0的banana-pi-BPI-R4 cpu风扇控制脚本

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
vi /sbin/fan-speed

#!/bin/sh /etc/rc.common

if [ ! -f /sys/class/pwm/pwmchip0/export ]; then
    exit 0
fi

### 导出 PWM 通道 ###
echo 1 > /sys/class/pwm/pwmchip0/export 2>/dev/null

### 检查 PWM 通道是否已导出 ###
if [ -d /sys/class/pwm/pwmchip0/pwm1 ]; then
    echo 10000 > /sys/class/pwm/pwmchip0/pwm1/period
    echo 7000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
    echo normal > /sys/class/pwm/pwmchip0/pwm1/polarity
    echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable
else
    echo "Failed to export PWM channel 1!"
    exit 1
fi

### 温度控制循环 ###
while :
do
    sleep 20
    result=$(cat /sys/class/thermal/thermal_zone0/temp)
    temperature=$((result))

    if [ ${temperature} -ge 50000 ]; then
        echo 5000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
    fi

    if [ ${temperature} -ge 60000 ]; then
        echo 1000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
    fi

    if [ ${temperature} -le 48000 ]; then
        echo 7000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
    fi

    if [ ${temperature} -le 40000 ]; then
        echo 10000 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
    fi
done

开机启动

1
2
3
4
5
vi /etc/rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
fan-speed
exit 0

💘 相关文章

写一条评论