commit 2019e41bd697b5589f08540abc66d15e0d3bfeaf Author: root Date: Wed Jul 23 13:23:19 2025 +0200 first commit diff --git a/pwm_fan_control.sh b/pwm_fan_control.sh new file mode 100755 index 0000000..1bfe271 --- /dev/null +++ b/pwm_fan_control.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Path to the temperature sensor and PWM control +TEMP_SENSOR="/sys/class/hwmon/hwmon1/temp1_input" +PWM_CONTROL="/sys/class/hwmon/hwmon2/pwm1" # Adjust this path as needed + +# Function to set fan speed using PWM control +set_fan_speed() { + local speed=$1 + echo $speed | sudo tee $PWM_CONTROL +} + +# Wait for the hwmon files to be available +while [ ! -f "$TEMP_SENSOR" ] || [ ! -f "$PWM_CONTROL" ]; do + echo "Waiting for hwmon files..." + sleep 1 +done + +echo "hwmon files found. Starting fan control." + +# Main loop +while true; do + # Read the current temperature + temp=$(cat $TEMP_SENSOR) + temp=$((temp / 1000)) # Convert to degrees Celsius + + # Print the current temperature + echo "Current temperature: $temp°C" + + # Adjust fan speed based on temperature + if [ $temp -lt 50 ]; then + set_fan_speed 25 # Approximately 25% speed + elif [ $temp -lt 60 ]; then + set_fan_speed 45 # Approximately 50% speed + elif [ $temp -lt 65 ]; then + set_fan_speed 60 # Approximately 75% speed + elif [ $temp -lt 75 ]; then + set_fan_speed 120 # High speed + else + set_fan_speed 255 # Maximum speed + fi + + # Check for critical temperature + if [ $temp -ge 85 ]; then + echo "Critical temperature reached: $temp°C" | sudo tee /dev/kmsg + set_fan_speed 255 # Ensure fan is at maximum speed + fi + + # Sleep for a while before checking again + sleep 10 +done