Supermicro A2SDi-8C+-HLN4F - IPMI and Fan Control

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
I realise it's a topic that's been covered plenty already but I'm having problems with the fans on this motherboard; namely the all-too-common issue of fans continually revving up to high speed. I've replaced the two case fans with noctua NF-P12's (which support 300-1300rpm but I've left the annoyingly whiny 50mm CPU fan as stock for the time being.

Noctuas running at 1300rpm I can live with, but the CPU fan constantly cycling between 3000 and 7000rpm I cannot.

Here's what ipmitool reported the fan sensors as out of the box;
Code:
root@fenchurch:~# ipmitool sensor list all|grep -i fan
	FAN1             | 1200.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
	FAN2             | 0.000      | RPM        | nr    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
	FAN3             | 6900.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
	FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
I tried changing the lower critical thresholds which appears to stick, but the problem I have is than FAN2 (one of the noctuas) appears to repeatedly fall to 0rpm, thus triggering the LC or LNR thresholds. I don't think this is because the fan is broken (but I will be disassembling later to confirm), but is this the cause of the fans continually alternating between full-on and off?

Fan mode in the IPMI is currently set to "Optimal Speed" which IIRC means fan speeds will start at 30% and ramp up accordingly; however I don't find any way of configuring the max duty cycle thresholds - ideally I don't want the CPU fan running any faster than 50% speed. I'm aware that tweaking the raws can achieve this but it doesn't seem to want to work either. As far as I can tell from the supermicro doc, the following should impose a max. 50% duty cycle but it doesn't appear to work. I'm also unaware of the syntax for setting this only on a particular fan header, since the sole doco I could find on this here isn't exactly easy to parse so this was mostly cribbed from others examples.
Code:
root@fenchurch:~# ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32
I've not yet explored using fancontrol from lm-sensors yet but IIRC the PWM sensors aren't exposed to the OS in a way that lm-sensors can see.

Annoyingly, setting work fine when the machine is in POST, but as soon as the OS loads I get the annoying fan cycling problem.

Here's some sensor output with 2-3s in between me running each command with the current thresholds, as you can see fan speeds are all over the shop.
Code:
root@fenchurch:~# ipmitool sensor list all|grep -i fan
FAN1             | 200.000    | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN2             | 200.000    | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN3             | 3000.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
root@fenchurch:~# ipmitool sensor list all|grep -i fan
FAN1             | 300.000    | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN2             | 300.000    | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN3             | 6900.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
root@fenchurch:~# ipmitool sensor list all|grep -i fan
FAN1             | 1200.000   | RPM        | ok    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN2             | 1200.000   | RPM        | ok    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN3             | 6900.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
root@fenchurch:~# ipmitool sensor list all|grep -i fan
FAN1             | 0.000      | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN2             | 200.000    | RPM        | nr    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN3             | 3000.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
However FAN3 never gets flagged as anything other than OK so I'm unsure why it keeps ramping up and down. Reported temps are never anywhere near danger thresholds.
Code:
root@fenchurch:~# ipmitool sensor list all|grep -i temp
CPU Temp         | 29.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 88.000    | 93.000    | 93.000
System Temp      | 44.000     | degrees C  | ok    | -10.000   | -5.000    | 0.000     | 80.000    | 85.000    | 90.000
Peripheral Temp  | 29.000     | degrees C  | ok    | -10.000   | -5.000    | 0.000     | 80.000    | 85.000    | 90.000
DIMMA1 Temp      | 33.000     | degrees C  | ok    | -5.000    | 0.000     | 5.000     | 80.000    | 85.000    | 90.000
DIMMA2 Temp      | na         |            | na    | na        | na        | na        | na        | na        | na
DIMMB1 Temp      | 36.000     | degrees C  | ok    | -5.000    | 0.000     | 5.000     | 80.000    | 85.000    | 90.000
DIMMB2 Temp      | na         |            | na    | na        | na        | na        | na        | na        | na
This is the first time I've ever used a supermicro MB in a low noise environment (used ASRockRack before which doesn't exhibit this behaviour) so I'm wondering if anyone else run into this problem and found a workable solution?
 
Last edited:

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
Well this definitely seems to be a quirk of the interaction between the Noctua fans (or perhaps just PWM itself) and the IPMI fan control itself rather than anything wrong with the IPMI thresholds.

I pulled out the noctuas and tested them in my workstation, also running linux but without any IPMI, and all worked as expected. However as soon as they're plugged into the supermicro they'll continually end up dropping below their 300rpm minimum threshold, at which point they report 0rpm, cause an assertion and cause all of the fans in the chassis to spin up to maximum for a few seconds.

I figured there must be a way to disable the assertions from the two problematic fan sensors via ipmitool, but apparently not.

For the time being I've rolled back to some old 3-pin Gelid fans I had knocking around and the fan speed holds steady at about 1000rpm. Nowhere near as quiet as the noctuas at the same speed, but they don't cause the annoying fan ramping...
Code:
root@fenchurch:~# ipmitool sensor|egrep -i 'temp|fan'
CPU Temp         | 27.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 88.000    | 93.000    | 93.000
System Temp      | 42.000     | degrees C  | ok    | -10.000   | -5.000    | 0.000     | 80.000    | 85.000    | 90.000
Peripheral Temp  | 25.000     | degrees C  | ok    | -10.000   | -5.000    | 0.000     | 80.000    | 85.000    | 90.000
DIMMA1 Temp      | 30.000     | degrees C  | ok    | -5.000    | 0.000     | 5.000     | 80.000    | 85.000    | 90.000
DIMMA2 Temp      | na         |            | na    | na        | na        | na        | na        | na        | na
DIMMB1 Temp      | 31.000     | degrees C  | ok    | -5.000    | 0.000     | 5.000     | 80.000    | 85.000    | 90.000
DIMMB2 Temp      | na         |            | na    | na        | na        | na        | na        | na        | na
FAN1             | 1000.000   | RPM        | ok    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN2             | 1000.000   | RPM        | ok    | 300.000   | 500.000   | 600.000   | 1400.000  | 1500.000  | 1600.000
FAN3             | 3000.000   | RPM        | ok    | 300.000   | 500.000   | 700.000   | 25300.000 | 25400.000 | 25500.000
FANA             | na         |            | na    | na        | na        | na        | na        | na        | na
If I pluck up the time and inclination to purchase some non-noctua PWM fans and get to give them a whirl I'll see if they do the same thing...
 

Marco

New Member
Sep 23, 2013
17
0
1
Fan mode in the IPMI is currently set to "Optimal Speed" which IIRC means fan speeds will start at 30%
This is likely the problem, as the 30% is probably too close to the threshold for the fan to stop. Can you change that setting? If so how?
Otherwise you could consider buying the Noctua Fan Controller (NA-FC1) and use the "No stop" mode.
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
Yeah that setting was pretty trivial to change either from the web UI or through ipmitool, but made no difference - even on "standard" or "full speed" the fans still kept winding down and appearing as 0rpm and thus causing the assert.

The chassis is way too small to fit any fan controllers, and I'd still prefer fan control in software if at all possible.
 

K D

Well-Known Member
Dec 24, 2016
1,437
316
83
30041
What have you set the fan thresholds to? The fan cycling with Noctuas is a very common issue that has been discussed several times here.

Set fan mode to full, Set the lower thresholds to 150, 200 and 250 and reset the BMC. This has worked for me across a variety of x10 and x11 boards.

Noctua case fans on Xeon-SP Tower Server
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
The last setting I tried putting the lower thresholds at were 0 0 150, but since the fans kept dropping to 0 it doesn't really matter what the thresholds were set at if I couldn't disable the assert entirely.
 

jnoxon

New Member
Dec 31, 2019
5
0
1
Did you find a solution for this? I just got one of these (the 8C, in the SYS-5019A-FTN4). I'm still waiting for RAM to arrive, so I'm left to obsess over minor details like wife approval factor. It's just got the 2 chassis fans, and they're pretty loud.
 

vanfawx

Active Member
Jan 4, 2015
369
68
28
42
Vancouver, Canada
I thought the general logic was you set the fans to "full" and adjust the percentage from there. I have a X10SRH full of noctua fans and setting the fan mode to full and adjusting from there has worked perfectly for years now.

# set fan mode to full
ipmitool raw 0x30 0x45 0x01 0x01
# set system zone to 50%
ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32
# set peripheral zone to 50%
ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

The 0x32 controls the speed, 50% in this case.

Have you tried this method?
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
Did you find a solution for this? I just got one of these (the 8C, in the SYS-5019A-FTN4). I'm still waiting for RAM to arrive, so I'm left to obsess over minor details like wife approval factor. It's just got the 2 chassis fans, and they're pretty loud.
The "solution" in this particular case was to stop using the Noctua fans - there was seemingly nothing I could do to stop their rpm dropping <300 and thus stopping completely.

However as vanfawx points out, it's possible to set the duty cycle manually via the IPMI raws; at the time of encountering the issue I'd not tinkered with those before and thus went the anti-Noctua route but if I were installing the same stuff today I'd stick with the Noctuas and use a temp monitoring script to manage the duty cycles.
 

diogin

Member
Mar 28, 2018
55
14
8
Beijing, China
Many days ago I encountered the same problem, except that my cooling fan is Thermalright TY-143.

It spins at 200 rpm, which causes a critical event and the fan ramps up to max speed, then drops to 200 rpm, again and again. I lowered the "Critical" rpm to 100, hoping to solve the problem, but came across another problem, that the fan instantly dropped to 0 rpm, again it ramp up to max speed. Very frustrating.

At last, I have to use another cooling fan: Thermalright TY-143B. It spins at 500 rpm and won't drop to 0 rpm, thus stable.

I believe it's supermicro's problem, as I tried TY-143 in another machine and it worked well.
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,395
499
83
The trouble is with SM's fan curves I think; I suspect they're tuned to work with fans that are 700rpm even at a 10% duty cycle; throw them a fan like the Noctua's that practically stops at a 10% duty cycle and you'd have a situation pretty much like this one.

Sadly I'm not aware of any way to tweak the duty cycles like you can with ASRock's fan curves in the BIOS. They also offer per-fan-header duty cycle control, rather than just zones for CPU and system, making them much more amenable to finer grained fan control.
 

diogin

Member
Mar 28, 2018
55
14
8
Beijing, China
I've asked Supermicro for the details of the fan curve, unfortunately they refused to provide.

I think there is no solution on the problem that some fans dropping to 0 rpm on low duty cycle. The only way is replacing the fans. I just tried Noctua NF-F12 PWM, it drops to 0 rpm too. So I replaced it with a PT12025 V3 and it worked well on 600 rpm.
 

jnoxon

New Member
Dec 31, 2019
5
0
1
Finally got mine set up. I just set the fan speed controls in the BMC settings to low power, and I'm thrilled with this machine. I've got two spinning disks in an enclosure next to it, and I can't hear the fans over those, except during boot. I never imagined I'd be happy with the acoustics of a 1U system, even a low-power one such as this. If I had it in an open space I'd tweak it more, but as it is, in a closet, it's fine! It's a great little machine.