Supermicro Fan Control

Do you have an idea what might be causing the issue yet? If you’re too busy, I understand. Just let me know and I’ll try to find a solution myself.

Hi,

Running the script on truenas-scale with a supermicro X11SSH-LN4F board.When I ran the script previously on the free-bsd version I never experienced problems. This is a spincheck result with some strange outcome. I changed the setpoint from 0 decimals to 1 decimal but with no better results:

What could be the cause of these errors: "no data available” , “Get device ID command failed”, “no valid response” and “received a response with unexpected ID … vs … “ ?

Looks like one of the fan headers may have borked. You can check the log:

ipmitool sel list

If the fans are crazy loud, reset both zones to 50% temporarily:

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 && ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32
ipmitool sdr

If all fans are showing ~50% rpm, rerun spintest.

If that doesn’t work you can try a board reset.

ipmitool mc reset cold

Wait for it to stabilize 60-90secs and check the fans are in order.

ipmitool sdr

If the cold reset is not successful, the only way I know is a cold power down of the PSU switch to off.

1 Like

Thanks for the reply, I had to look up “borked” :slight_smile:

This is what I get from IPMI SEL

IPMItool SDR

In the SDR listing I don’t see anything strange…

Fans look good but there is a significant variance in the RPM ranges in both zones. Are these 100% when you listed? Different manufacturers?

Have you rerun the spincheck to get the max and low results?

From the log posting…

Not sure which fan 0x45. I should have provided the following which was further in my cheat sheet notes. It shows the fan and the lowest speed.

ipmitool sel elist

Output is something like this:

1a3 | 08/24/2024 | 18:26:04 | Fan FANA | Lower Critical going low | Deasserted | Reading 1960 < Threshold 420 RPM

Do you still have the freebsd config file? It really shouldn’t be different if you haven’t changed fan positions.

1 Like

Have you correctly set the IPMI fan thresholds (the lower non critical etc rates)

Otherwise, do you have failing fans, or are your fans otherwise stalling?

I will only note that on my X10SDV I have a similar problem: the script can’t get drive temperatures using ipmitool to control that zone. Scale has no problem reading the temperatures, and the IPMI can read the temperatures and slow down the fans just fine.

I think you mean to rerun spintest…

I Did that and noticed that below 600 RPM I get unsual behavior en ID reporting problems, so guess that is the BMC intervening.

So with IPMITOOL i reconfigured the upper and lower limits:

Ipmitool sensor thresh “FAN1” lower 500 600 700
Ipmitool sensor thresh “FAN2” lower 500 600 700
Ipmitool sensor thresh “FAN3” lower 500 600 700
Ipmitool sensor thresh “FAN4” lower 500 600 700
Ipmitool sensor thresh “FANA” lower 500 600 700
Ipmitool sensor thresh “FAN1” upper 1200 1300 1400
Ipmitool sensor thresh “FAN2” upper 1400 1500 1600
Ipmitool sensor thresh “FAN3” upper 1400 1500 1600
Ipmitool sensor thresh “FAN4” upper 1400 1500 1600
Ipmitool sensor thresh “FANA” upper 1400 1500 1600

I restarted te system after a power cycle, but I am still getting errors with spincheck. I also noticed that although I had given the new limits via ipmitool for evey fan, some fans were still going als low as 400….

I don’t have the old Freebsd config anymore…. but it als had the previous fanvalues…

Then you set wrong limits…
This does not work by setting limits to constrain the fan. Rather, you work out what the fan is capable of and set limits accordingly: Quiet fans will go VERY low, limits should be set EVEN LOWER.

1 Like

So I lowered the values until 0, since it are all notua fans and Noactua states:

image

But still getting unsusual behavior of the FAN-script:

I wonder if it is a failure in the X11 motherboard. What can explain these errors?

Sometime the CPU temp indicates 0 degrees according to the script??

I doubt it’s the board and it can be tested with the suggested command I provided to run all fans at 50%. What was the result of that?

Noctua make many different fans so models would be useful for your setup. My settings are as follows for 3 systems (H12 systems based).

Location Zone PORT Flow Model
Top fan 0 FAN1 Exhaust NF-A14 PWM chromax.black
FF Top 0 FAN2 Intake NF-A14 PWM chromax.black
FF middle 0 FAN3 Intake NF-A14 PWM chromax.black
FF bottom 0 FAN4 Intake
Rear Fan 0 FAN5 Exhaust NF-A14 PWM chromax.black
Exp blower 1 FANB NF-A14 PWM
CPU Fan 1 FANA Exhaust NF-A9 Black split with AF-12 15 PWM (3-pin)
ajaxnas04% ipmitool sensor list all | grep -i fan
FAN1             | 560.000    | RPM        | ok    | 140.000   | 140.000   | na        | na        | 25340.000 | 25480.000
FAN2             | 560.000    | RPM        | ok    | 140.000   | 140.000   | na        | na        | 25340.000 | 25480.000
FAN3             | 560.000    | RPM        | ok    | 140.000   | 140.000   | na        | na        | 25340.000 | 25480.000
FAN4             | na         |            | na    | na        | na        | na        | na        | na        | na
FAN5             | 560.000    | RPM        | ok    | 140.000   | 140.000   | na        | na        | 25340.000 | 25480.000
FANA             | 700.000    | RPM        | ok    | 280.000   | 420.000   | na        | na        | 25340.000 | 25480.000
FANB             | 560.000    | RPM        | ok    | 140.000   | 140.000   | na        | na        | 25340.000 | 25480.000

Once the thresholds set, I control everything with the minimum spin % to ensure I never come close to the low end. Something like 25-30% speed at all times.

1 Like

I have not tried the 50% command, looked back and you must mean this one:

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 && ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

Will test this.

My system (a Fractal design: Node 804 case, with 2 compartments) has:

A Scythe Kaze Flex 120 PWM fan for the CPU (on FAN1) 2 Noctua NF-F12 PWM fans (on FAN2 and FAN4) (=mobo/CPU compartment = Zone0),

2 Noctua NF-F12 Fans and 1 NF-A14 G2 PWM fan (all on FANA) (=drive compartment = Zone1).

So I use the supermicro default arrangement foir the zones.

I am a little puzzled by your upper fan values, the models you descibe indicate on the noctua specs not such hi values.

Cool thanks for the info. All look similar at the high RPM but the Kaze variants do not appear to go to 0 but 300. A guess that a 200 LOWER may do the trick for your configuration.

As highlighted, this is not about the limiting but adjusting ranges so it doesn’t error out within your configuration. Nothing will be perfect when your talking about voltage controlled speeds so +/- 10% should be expected as the manufacture highlights. Not all same model fans spin the same speed at the same time.

The SMC H12xxx boards uses a BMC2600 and only requires lower – These are the upper defaults which I left after messing myself with upper limits and fell back to defaults. Why change something if you don’t have to!

1 Like

Finally found the problem for all the weird behavior of the fanscript! The post about the different fans and zones got me thinking about a line in de config-file where ZONE_PER= and ZONE_CPU= are defined as “1” or “0”. I reviewed the file and I found out that I mixed them up for my usecase :face_with_peeking_eye: . After setting ZONE_PER=1 and ZONE_CPU=0 in the spinpid.config file (instead of the other way around as by default in the script) and restarting the system → the spincheck-results were normal!! :partying_face: :slightly_smiling_face: :star_struck: .

As you said for the KAZE flex FAN I had allready set 150 200 250 for the lower threshhold-values, further I increased the lower dutycycles per ZONE from 20 to 30, as I head read someone who expecienced stalling of Noctua fans with dutycycles below 30.

Thanks for thinking with me!

3 Likes