When installing third-party PWM fans, like from Noctua, into a supermicro motherboard, you will probably get loud fans or fans that are spinning up and down. Fan control options in the BIOS and the IPMI interface is very basic and switching between the fan modes might still not fix the issue.
Figure 1: Fan modes in a typical Supermicro IPMI GUI
The Reason
Third-party fans have a lower minimum rotation speed than the OEM fans from Supermicro. For example, Noctua NF-A12x25 fans can ramp down to 450rpm whereas the Supermicro FAN-0077L4 can only come down to ~700rpm.
At Idle, the Supermicro motherboard upon receiving a PWM signal that the third-party fan is running at 450 rpm, which is below the critical value for the OEM fan, assumes the fan is broken and sends a 100% fan signal. which causes the fan to ramp up and then down again in a loop.
The Fix
Boot to a live ubuntu environment and install
ipmitool:
sudo apt update && sudo apt install ipmitool
change the PWM header's critical rpm values:
sudo ipmitool sensor thresh FAN1 lower 150 225 300

FAN1 – FAN header for which you want to set the values
150 – lower non-recoverable value
225 – lower critical value
300 – lower non-critical value
Repeat the last command for FAN2, FAN3.. corresponding to the number of PWM headers on the motherboard.
After you run the command for all fan headers on your Supermicro motherboard – shutdown and disconnect the power cord and leave it off for few minutes. After you power it on again, the fans should work normally.
Applying the Fix remotely over the network
Change the command to include the IPMI interface address as below:
sudo ipmitool -I lan -U ADMIN -H 10.100.10.200 sensor thresh FAN1 lower 150 225 300
You will be asked for IPMI password after this entering command.