What do you get from the output of: ipmitool sdr ?
root@BEAST:/dev# ipmitool sdr
3VSB | 3.40 Volts | ok
5VSB | 5.13 Volts | ok
VCPU | 1.12 Volts | ok
VSOC | 0.85 Volts | ok
VCCM ABCD | 1.21 Volts | ok
VCCM EFGH | 1.22 Volts | ok
BAT | 3.04 Volts | ok
3V | 3.32 Volts | ok
5V | 5.04 Volts | ok
12V | 12.30 Volts | ok
MB Temp | 32 degrees C | ok
Card Side Temp | 45 degrees C | ok
CPU Temp | 42 degrees C | ok
TR1 Temp | no reading | ns
DDR4_A Temp | 43 degrees C | ok
DDR4_B Temp | 46 degrees C | ok
DDR4_C Temp | 46 degrees C | ok
DDR4_D Temp | 46 degrees C | ok
DDR4_E Temp | 40 degrees C | ok
DDR4_F Temp | 42 degrees C | ok
DDR4_G Temp | 44 degrees C | ok
DDR4_H Temp | 42 degrees C | ok
CPU1_FAN1 | 1700 RPM | ok
FRNT_FAN1 | 600 RPM | ok
FRNT_FAN2 | 600 RPM | ok
FRNT_FAN3 | 600 RPM | ok
FRNT_FAN4 | no reading | ns
REAR_FAN1 | 700 RPM | ok
REAR_FAN2 | 600 RPM | ok
CPU1_FAN1_2 | no reading | ns
FRNT_FAN1_2 | no reading | ns
FRNT_FAN2_2 | no reading | ns
FRNT_FAN3_2 | no reading | ns
FRNT_FAN4_2 | no reading | ns
REAR_FAN1_2 | no reading | ns
REAR_FAN2_2 | no reading | ns
PSU1 PIN | no reading | ns
PSU2 PIN | no reading | ns
PSU1 POUT | no reading | ns
PSU2 POUT | no reading | ns
PSU1 VIN | no reading | ns
PSU2 VIN | no reading | ns
PSU1 IOUT | no reading | ns
PSU2 IOUT | no reading | ns
ChassisIntr | 0x00 | ok
CPU_PROCHOT | 0x00 | ok
CPU_THERMTRIP | 0x00 | ok
PSU1 Status | 0x00 | ok
PSU1 AC lost | Not Readable | ns
PSU2 Status | 0x00 | ok
PSU2 AC lost | Not Readable | ns
Oh strange, looks like they're not completely set at all. Never seen that before. I guess I'm just used to SuperMicro.Have you tried adjusting the fan thresholds as shown in ipmitool sensor ?
CPU Temp | 40.000 | degrees C | ok | na | na | na | 95.000 | na | na
CPU1_FAN1 | 1700.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN1 | 600.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN2 | 600.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN3 | 600.000 | RPM | ok | na | na | 100.000 | na | na | na
REAR_FAN1 | 700.000 | RPM | ok | na | na | 100.000 | na | na | na
REAR_FAN2 | 600.000 | RPM | ok | na | na | 100.000 | na | na | na
Even when you (factory) reset the ipmi/bmc?looks like they're not completely set at all
I guess I can try that. I've upgraded the BMC firmware since I got the board so I assumed it was wiped but I'll try and manually wipe it and see what happens.Even when you (factory) reset the ipmi/bmc?
effrafax@wug:~$ ipmitool sensor|grep -i fan
FAN1 | 1000.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN2 | 1000.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN3 | 1000.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN4 | na | RPM | na | na | na | 100.000 | na | na | na
FAN5 | na | RPM | na | na | na | 100.000 | na | na | na
FAN6 | na | RPM | na | na | na | 100.000 | na | na | na
effrafax@wug:~$ ipmitool raw 0x3a 0x02
00 00 00 00 00 00 00 00
ipmitool raw 0x3a 0x01 0x64 0x32 0x56 0x00 0x64 0x64 0x00 0x00
effrafax@wug:~$ ipmitool raw 0x3a 0x02
64 32 56 00 64 64 00 00
effrafax@wug:~$ ipmitool sensor|grep -i fan
FAN1 | 2600.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN2 | 1100.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN3 | 2000.000 | RPM | ok | na | na | 100.000 | na | na | na
FAN4 | na | RPM | na | na | na | 100.000 | na | na | na
FAN5 | na | RPM | na | na | na | 100.000 | na | na | na
FAN6 | na | RPM | na | na | na | 100.000 | na | na | na
ipmitool sensor thresh FAN1 lower 100 200 3000
Contact ASRock support. Fan control disappeared on BIOS update for me as well and they provided me a beta bios that brought them back.Absolutely saved me. Thank you. Thanks for this research and knowledge share, the thing is I've just upgraded into BIOS 2.60 that supports EPYC ROME on my EPYCD8-2T, and all the fan control options disappeared from BIOS. Noctua PWM fans weren't creating any airflow at all, and this solved it. Absolutely amazing! I can control my fans live and script it now. Was about to call my rep to look into this. I'm still waiting for an answer by email, maybe he'll share more ways but this is very much sufficient.
I did. But BIOS requires me to reboot the machine to change anything, while ipmitool provides live tweaks, which is much better.Contact ASRock support. Fan control disappeared on BIOS update for me as well and they provided me a beta bios that brought them back.
Thank you.$ sudo ipmitool raw 0x3a 0x02
Unable to send RAW command (channel=0x0 netfn=0x3a lun=0x0 cmd=0x2 rsp=0xc1): Invalid command
ipmitool lan print 1
ipmitool raw 0x3a 0xa1 0x00
ipmitool raw 0x32 0x72 0x01 0x00 0x00
Set all fans to automatic mode
sudo ipmi-raw 00 3a d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Set all fans to manual mode
sudo ipmi-raw 00 3a d8 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
Set all fans to custom mode
sudo ipmi-raw 00 3a d8 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
Set all fans to 20%
sudo ipmi-raw 00 3a d6 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
Set all fans to full
sudo ipmi-raw 00 3a d6 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64
read fan speeds:
sudo ipmi-sensors -t fan
get fan mode (0=auto, 1=manual, 2=custom curve)
sudo ipmitool raw 0x3a 0xd9
get fan duty for manual mode
sudo ipmitool raw 0x3a 0xd7
ipmitool -H 192.168.1.2 -U admin -P 12345678 -I lanplus raw 0x3a 0xd8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
#!/bin/env bash
# Script to manipulate fan speeds on Asrock Rack X570D4U-2L2T. See [1] and [2].
SCRIPTVERSION="2021-11-17"
/usr/bin/echo -e ":: Server board:$(dmidecode -qt2|awk -F: '/^\tProduct Name:/ {print $2}') :|: Script version: $SCRIPTVERSION\n"
case "$1" in
duty)
# Store hex value and uppercase it, since bc doesn't like the lowercase values IPMI puts out.
HEXVAL1="$(/usr/bin/ipmitool raw 0x3a 0xd7 | cut -d ' ' -f2|tr [:lower:] [:upper:])"
if [ "$HEXVAL1" = "00" ]
then
/usr/bin/echo -e "Fan duty: \e[32mauto\e[0m\n"
else
/usr/bin/echo -e Fan duty: $(/usr/bin/echo "obase=10; ibase=16; $HEXVAL1" | /usr/bin/bc)%
fi
;;
mode)
/usr/bin/ipmitool raw 0x3a 0xd9 > /tmp/ipmi_fan_mode
if grep -q 01 /tmp/ipmi_fan_mode
then
/usr/bin/echo "Fan mode: manual"
else
/usr/bin/echo -e "Fan mode: \e[32mauto\e[0m\n"
fi
;;
rpm)
# Report actual speeds.
/usr/sbin/ipmi-sensors -t fan
;;
speed)
[ -z $2 ] && /usr/bin/echo -e "\e[31mERROR\e[0m: No fan speed defined. Aborting." && exit
if [ "$2" = auto ]
then
# Reset to factory defaults.
/usr/bin/echo "Resetting to factory defaults."
/usr/sbin/ipmi-raw 00 3a dc 2>&1 > /dev/null
elif [ "$2" -ge 20 -a "$2" -le 100 ]
then
HEXVAL2=$(/usr/bin/echo "ibase=10; obase=16; $2" | /usr/bin/bc)
# Set fan mode to manual first, otherwise speed settings won't take effect.
/usr/bin/echo -e "Setting fan speed to $2%..."
/usr/sbin/ipmi-raw 00 3a d8 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 2>&1 > /dev/null
/usr/sbin/ipmi-raw 00 3a d6 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 $HEXVAL2 2>&1 > /dev/null
/usr/bin/echo -e "Done"
else
/usr/bin/echo -e "\e[31mERROR\e[0m: Minimum value is 20, maximum 100." && exit
fi
;;
*)
/usr/bin/echo -e ":: This script allows you to set and read out fan settings.
Valid arguments are:
+ duty Get current fan duty.
+ mode Get fan mode.
+ rpm Report actual fan speeds.
+ speed Set fan duty percentage. Takes a number from 20 to 100,
or 'auto' to reset to defaults.
;;
esac
#References
#==========
# [1] https://forums.servethehome.com/index.php?threads/asrock-rack-bmc-fan-control.26941/post-307956
# [2] https://forums.unraid.net/topic/38108-plugin-ipmi-for-unraid-61/page/54/?tab=comments
ipmitool raw 0x3a 0x01 0x64 0x01 0x01 0x01 0x01 0x01 0x01 0x01
ipmitool raw 0x3a 0x01 0x64 0x00 0x00 0x00 0x00 0x00 0x00 0x00
ipmitool raw 0x3a 0xd8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
ipmitool raw 0x3a 0xd6 0x64 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14
ipmitool raw 0x3a 0xdc
# ipmitool sensor|grep -i fan
CPU1_FAN1 | 1900.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN1 | 5500.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN2 | 5400.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN3 | 5500.000 | RPM | ok | na | na | 100.000 | na | na | na
FRNT_FAN4 | na | RPM | na | na | na | 100.000 | na | na | na
REAR_FAN1 | 2600.000 | RPM | ok | na | na | 100.000 | na | na | na
REAR_FAN2 | na | RPM | na | na | na | 100.000 | na | na | na
CPU1_FAN1_2 | na | RPM | na | na | na | 100.000 | na | na | na
FRNT_FAN1_2 | na | RPM | na | na | na | 100.000 | na | na | na
FRNT_FAN2_2 | na | RPM | na | na | na | 100.000 | na | na | na
FRNT_FAN3_2 | na | RPM | na | na | na | 100.000 | na | na | na
FRNT_FAN4_2 | na | RPM | na | na | na | 100.000 | na | na | na
REAR_FAN1_2 | na | RPM | na | na | na | 100.000 | na | na | na
REAR_FAN2_2 | na | RPM | na | na | na | 100.000 | na | na | na
ipmitool raw 0x3a 0x01 CPU1_FAN1 0x00 REAR_FAN1 REAR_FAN2 FRNT_FAN1 FRNT_FAN2 FRNT_FAN3 FRNT_FAN4