new script: supermicro-ipmi-fancontrol
parent
4bc5902b27
commit
565d78b745
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script limits the threshholds of the superloud supermicro fans to more
|
||||
# manageable values, if used as is (instead of swapping fans for e.g. noctua fans).
|
||||
# Put this in e.G. /etc/init.d/ , because values are reverted on powerloss.
|
||||
|
||||
# set limits in 64 steps from 00-FF (convert to hex!):
|
||||
# 0x00 == 0% / minimal
|
||||
# ...
|
||||
# 0x16 == 25%
|
||||
# 0x24 == 37.5%
|
||||
# 0x32 == 50%
|
||||
# ...
|
||||
# 0x64 == 100% / fullspeed
|
||||
|
||||
LIMIT="0x16"
|
||||
|
||||
# number of fans installable on given mainboard (check with e.G. `ipmitool sdr | grep -i rpm`)
|
||||
FANCOUNT="8"
|
||||
|
||||
# fan critical limits
|
||||
|
||||
LNR="300" # Lower Non-Recoverable
|
||||
LC="500" # Lower Critical
|
||||
LNC="700" # Lower Non-Critical
|
||||
|
||||
UNC="10000" # Upper Non-Critical
|
||||
UC="10500" # Upper Critical
|
||||
UNR="11000" # Upper Non-Recoverable
|
||||
|
||||
# check availability of ipmitool
|
||||
if
|
||||
which ipmitool >/dev/null
|
||||
then
|
||||
echo "ipmitool available. Continue."
|
||||
else
|
||||
echo "ipmitool not installed. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# limit upper and lower values for fans 1-8 to non-unrealistic values
|
||||
for fan in $(seq 1 $FANCOUNT); do
|
||||
/usr/bin/ipmitool sensor thresh FAN$fan upper $UNC $UC $UNR
|
||||
/usr/bin/ipmitool sensor thresh FAN$fan lower $LNR $LC $LNC
|
||||
done
|
||||
|
||||
echo "set fan mode to full (needed for static control) and let things settle"
|
||||
/usr/bin/ipmitool raw 0x30 0x45 0x01 0x01; sleep 10
|
||||
|
||||
echo "set fans in "system" zone to 25% and let things settle"
|
||||
/usr/bin/ipmitool raw 0x30 0x70 0x66 0x01 0x00 $LIMIT; sleep 5
|
||||
|
||||
echo "set fans in "peripheral" zone to 25% and let things settle"
|
||||
/usr/bin/ipmitool raw 0x30 0x70 0x66 0x01 0x01 $LIMIT; sleep 5
|
||||
|
||||
echo "all done"
|
Loading…
Reference in New Issue