Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
orangepi-xunlong
GitHub Repository: orangepi-xunlong/orangepi-build
Path: blob/next/external/packages/bsp/orangepi5plus/usr/bin/pwm-fan
12926 views
#!/bin/bash

echo 0 > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/export
echo 10000 > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/pwm0/period
echo 8000 > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/pwm0/duty_cycle
echo normal > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/pwm0/polarity
echo 1 > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/pwm0/enable
sleep 3

while true
do
	a=$(cat /sys/class/thermal/thermal_zone0/temp)
	time=$(date)
	pwm=$(echo ${a} | awk '{printf("%d",$1*0.15-800)}')
	if (( $pwm > 8500 ))
	then
		pwm=8500
	elif (( $pwm < 5000 ))
	then
		pwm=5000
	fi
	echo ${pwm} > /sys/devices/platform/fd8b0030.pwm/pwm/pwmchip*/pwm0/duty_cycle
	echo [${time}] Thermal value: ${a}, write fan PWM cycle ${pwm}
	sleep 5
done