mirror of
https://github.com/okunze/Argon40-ArgonOne-Script.git
synced 2025-06-30 00:37:30 +02:00
Automated Change by GitHub Action
This commit is contained in:
committed by
github-actions[bot]
parent
1a7ab2e005
commit
755a2ca262
254
source/scripts/argonone-fanconfig.sh
Normal file
254
source/scripts/argonone-fanconfig.sh
Normal file
@ -0,0 +1,254 @@
|
||||
#!/bin/bash
|
||||
|
||||
daemonconfigfile=/etc/argononed.conf
|
||||
unitconfigfile=/etc/argonunits.conf
|
||||
fanmode="CPU"
|
||||
|
||||
if [ "$1" == "hdd" ]
|
||||
then
|
||||
daemonconfigfile=/etc/argononed-hdd.conf
|
||||
fanmode="HDD"
|
||||
fi
|
||||
|
||||
if [ -f "$unitconfigfile" ]
|
||||
then
|
||||
. $unitconfigfile
|
||||
fi
|
||||
|
||||
if [ -z "$temperature" ]
|
||||
then
|
||||
temperature="C"
|
||||
fi
|
||||
|
||||
echo "------------------------------------------"
|
||||
echo " Argon Fan Speed Configuration Tool ($fanmode)"
|
||||
echo "------------------------------------------"
|
||||
echo "WARNING: This will remove existing configuration."
|
||||
echo -n "Press Y to continue:"
|
||||
read -n 1 confirm
|
||||
echo
|
||||
|
||||
|
||||
fanloopflag=1
|
||||
newmode=0
|
||||
if [ "$confirm" = "y" ]
|
||||
then
|
||||
confirm="Y"
|
||||
fi
|
||||
|
||||
if [ "$confirm" != "Y" ]
|
||||
then
|
||||
fanloopflag=0
|
||||
echo "Cancelled."
|
||||
else
|
||||
echo "Thank you."
|
||||
fi
|
||||
|
||||
get_number () {
|
||||
read curnumber
|
||||
if [ -z "$curnumber" ]
|
||||
then
|
||||
echo "-2"
|
||||
return
|
||||
elif [[ $curnumber =~ ^[+-]?[0-9]+$ ]]
|
||||
then
|
||||
if [ $curnumber -lt 0 ]
|
||||
then
|
||||
echo "-1"
|
||||
return
|
||||
elif [ $curnumber -gt 212 ]
|
||||
then
|
||||
# 212F = 100C
|
||||
echo "-1"
|
||||
return
|
||||
fi
|
||||
echo $curnumber
|
||||
return
|
||||
fi
|
||||
echo "-1"
|
||||
return
|
||||
}
|
||||
|
||||
while [ $fanloopflag -eq 1 ]
|
||||
do
|
||||
echo
|
||||
echo "Select fan mode:"
|
||||
echo " 1. Always on"
|
||||
if [ "$fanmode" == "HDD" ]
|
||||
then
|
||||
if [ "$temperature" == "C" ]
|
||||
then
|
||||
echo " 2. Adjust to temperatures (35C, 40C, and 45C)"
|
||||
else
|
||||
echo " 2. Adjust to temperatures (95F, 104F, and 113F)"
|
||||
fi
|
||||
else
|
||||
if [ "$temperature" == "C" ]
|
||||
then
|
||||
echo " 2. Adjust to temperatures (55C, 60C, and 65C)"
|
||||
else
|
||||
echo " 2. Adjust to temperatures (130F, 140F, and 150F)"
|
||||
fi
|
||||
fi
|
||||
echo " 3. Customize temperature cut-offs"
|
||||
echo
|
||||
echo " 0. Exit"
|
||||
echo "NOTE: You can also edit $daemonconfigfile directly"
|
||||
echo -n "Enter Number (0-3):"
|
||||
newmode=$( get_number )
|
||||
|
||||
if [[ $newmode -eq 0 ]]
|
||||
then
|
||||
fanloopflag=0
|
||||
elif [ $newmode -eq 1 ]
|
||||
then
|
||||
echo "#" > $daemonconfigfile
|
||||
echo "# Argon Fan Speed Configuration $fanmode" >> $daemonconfigfile
|
||||
echo "#" >> $daemonconfigfile
|
||||
echo "# Min Temp=Fan Speed" >> $daemonconfigfile
|
||||
|
||||
errorfanflag=1
|
||||
while [ $errorfanflag -eq 1 ]
|
||||
do
|
||||
echo -n "Please provide fan speed (30-100 only):"
|
||||
|
||||
curfan=$( get_number )
|
||||
if [ $curfan -ge 30 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
elif [ $curfan -gt 100 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
fi
|
||||
done
|
||||
|
||||
echo "1="$curfan >> $daemonconfigfile
|
||||
sudo systemctl restart argononed.service
|
||||
echo "Fan always on."
|
||||
elif [ $newmode -eq 2 ]
|
||||
then
|
||||
echo "#" > $daemonconfigfile
|
||||
echo "# Argon Fan Speed Configuration $fanmode" >> $daemonconfigfile
|
||||
echo "#" >> $daemonconfigfile
|
||||
echo "# Min Temp=Fan Speed" >> $daemonconfigfile
|
||||
|
||||
echo "Please provide fan speeds for the following temperatures:"
|
||||
curtemp=55
|
||||
maxtemp=70
|
||||
if [ "$fanmode" == "HDD" ]
|
||||
then
|
||||
curtemp=30
|
||||
maxtemp=60
|
||||
fi
|
||||
while [ $curtemp -lt $maxtemp ]
|
||||
do
|
||||
errorfanflag=1
|
||||
while [ $errorfanflag -eq 1 ]
|
||||
do
|
||||
displaytemp=$curtemp
|
||||
if [ "$temperature" == "F" ]
|
||||
then
|
||||
# Convert C to F
|
||||
displaytemp=$((($curtemp*9/5)+32))
|
||||
fi
|
||||
echo -n ""$displaytemp"$temperature (30-100 only):"
|
||||
|
||||
curfan=$( get_number )
|
||||
if [ $curfan -ge 30 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
elif [ $curfan -gt 100 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
fi
|
||||
done
|
||||
echo $curtemp"="$curfan >> $daemonconfigfile
|
||||
curtemp=$((curtemp+5))
|
||||
done
|
||||
|
||||
sudo systemctl restart argononed.service
|
||||
echo "Configuration updated."
|
||||
elif [ $newmode -eq 3 ]
|
||||
then
|
||||
echo "Please provide fan speeds and temperature pairs"
|
||||
echo
|
||||
|
||||
subloopflag=1
|
||||
paircounter=0
|
||||
while [ $subloopflag -eq 1 ]
|
||||
do
|
||||
errortempflag=1
|
||||
errorfanflag=1
|
||||
echo "(You may set a blank value to end configuration)"
|
||||
while [ $errortempflag -eq 1 ]
|
||||
do
|
||||
echo -n "Provide minimum temperature of $fanmode (in $temperature) then [ENTER]:"
|
||||
|
||||
curtemp=$( get_number )
|
||||
if [ $curtemp -ge 0 ]
|
||||
then
|
||||
errortempflag=0
|
||||
elif [ $curtemp -eq -2 ]
|
||||
then
|
||||
# Blank
|
||||
errortempflag=0
|
||||
errorfanflag=0
|
||||
subloopflag=0
|
||||
fi
|
||||
done
|
||||
while [ $errorfanflag -eq 1 ]
|
||||
do
|
||||
echo -n "Provide fan speed for "$curtemp"$temperature (30-100) then [ENTER]:"
|
||||
curfan=$( get_number )
|
||||
if [ $curfan -ge 30 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
elif [ $curfan -gt 100 ]
|
||||
then
|
||||
errorfanflag=0
|
||||
elif [ $curfan -eq -2 ]
|
||||
then
|
||||
# Blank
|
||||
errortempflag=0
|
||||
errorfanflag=0
|
||||
subloopflag=0
|
||||
fi
|
||||
done
|
||||
if [ $subloopflag -eq 1 ]
|
||||
then
|
||||
if [ $paircounter -eq 0 ]
|
||||
then
|
||||
echo "#" > $daemonconfigfile
|
||||
echo "# Argon Fan Configuration" >> $daemonconfigfile
|
||||
echo "#" >> $daemonconfigfile
|
||||
echo "# Min Temp=Fan Speed" >> $daemonconfigfile
|
||||
fi
|
||||
|
||||
displaytemp=$curtemp
|
||||
paircounter=$((paircounter+1))
|
||||
if [ "$temperature" == "F" ]
|
||||
then
|
||||
# Convert to F to C
|
||||
curtemp=$((($curtemp-32)*5/9))
|
||||
fi
|
||||
echo $curtemp"="$curfan >> $daemonconfigfile
|
||||
|
||||
echo "* Fan speed will be set to "$curfan" once $fanmode temperature reaches "$displaytemp"$temperature"
|
||||
echo
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
if [ $paircounter -gt 0 ]
|
||||
then
|
||||
echo "Thank you! We saved "$paircounter" pairs."
|
||||
sudo systemctl restart argononed.service
|
||||
echo "Changes should take effect now."
|
||||
else
|
||||
echo "Cancelled, no data saved."
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
|
Reference in New Issue
Block a user