P

Supermicro X9/X10/X11 Fan Speed Control

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

DaveInTexas

Member
Oct 28, 2021
77
85
18
Do you have different fans in each fan header? The same? Or some combination?

The fan speeds in screen shot 2 don't look right. FAN1 and FAN3 in particular. The sensor readings are virtually impossible to be correct.

What happens if you set optimal mode? sudo ipmitool 0x30 0x45 0x01 0x02
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
btw, ironically, I am sort of opposite of your situation... I lived in the UK quite a long time ago for a few years... now, I live in Texas!
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
@TexasDave I'm digging a little deeper this morning... I just realized I didn't know your model of mobo existed. I have a database containing most of Supermicro's server board models, with some basic information about them such as BMC chip model. Yours appears to be an Aspeed AST 2400.

I should have looked at this earlier. My understanding is the Supermicro X10SL series board fans seem to have some issues with regards to controlling their fan zones via IPMI. This might be what you're encountering. I don't know exactly what the blocker is, as I don't have one of those boards myself to play around with.

Are there any fan levers in the BIOS?

btw, there is another thread on STH that sounds remarkably poignant to your current predicament. May be worth a read for you, though I'm not sure it's going to help solve your problem. It seems that board may be notorious for its flaky behavior. :(

a suggestion: "Optimal" fan mode may be a viable alternative to provide you some sanity, at least in the short term while you continue to fiddle with it.
 

TexasDave

New Member
Jan 14, 2023
4
2
3
Surrey, UK
Some quick comments....I agree, the reading when I set the speed "by hand" are crazy and surely wrong.

(1) Multiple different brand fans, mostly Fractal Design Silent Series R3. Fan1 is CPU cooler. Fan 2 is a Fractal R3, Fan 3 is a set of random fans daisy chained, Fan 4 is a Fan 1 is a Fractal R3 and Fan 4 is Fractal R3. All are 3 pin except MOB fan.

(2) Setting the mode to any of the other three options results in crazy reading. See attached. The only sensible setting is FULL.

(3) I will have to check to see if there are fan options in the BIOS at some point in the next day or so as the server is in use right now...

(4) I have been tempted to just get fans of the same type. But kind of a pain. And I would also prefer 4 pin fans but...

I think the fan control on this particular board is very messed up. Will mess with it a bit more but in the end, it is in the loft, so we do not hear it, and i prefer it to be cool. Cheaper to replace fans. The issue with lowering the speed is the sensors then freak out (when they think they see 25k RPM so I get alerts. |And I hate to replace all the fans and then have it still not work.

Many thanks for the help and all the best for 2023!!
 

Attachments

  • Wow
Reactions: DaveInTexas

DaveInTexas

Member
Oct 28, 2021
77
85
18
Ah... now, I see. You have several things going on here which complicate the situation quite a bit, and may make it virtually impossible to attain your goals without making some compromises of one sort or another.

(1) Multiple different brand fans, mostly Fractal Design Silent Series R3. Fan1 is CPU cooler. Fan 2 is a Fractal R3, Fan 3 is a set of random fans daisy chained, Fan 4 is a Fan 1 is a Fractal R3 and Fan 4 is Fractal R3. All are 3 pin except MOB fan.
  • mix of fan brands and models in same fan zone
  • 3-pin fans
  • daisy-chained fans in serial or parallel on a single fan header
I'll offer my thoughts - FWIW - on some of these topics.
  1. Multiple fans connected via a single fan header. This is not a problem provided:
    • Connected in parallel
    • Identical fan make and model
  2. Mix of different fans in the same chassis
    • Identical fans in same fan zone - no issues
    • Different fans in same fan zone - may have issues
      • What you should watch out for are the min/max fan speeds and how the fan ramping up/down behavior is (in terms of %age and RPM changes)
  3. 3-pin fans should be avoided if you want to control their speed manually. AFAIK you really can't get it to work correctly on the vast majority of motherboards, and especially something like a Supermicro server board. The reason is because - as you've experienced - the BMC doesn't know what to make of applying voltage when it isn't receiving the return signal from the fan. So, it basically knows there's a fan there, and that's about it.
(2) Setting the mode to any of the other three options results in crazy reading. See attached. The only sensible setting is FULL.
Now, this makes sense. It looks like you're getting the obviously wacko fan speed readings on the fan headers w/ the 3-pin fans, so the BMC is imagining their speed since it's not getting actual voltage input from a fan.

(3) I will have to check to see if there are fan options in the BIOS at some point in the next day or so as the server is in use right now...
Even if there are, they're not likely to be very useful. But, I was asking as knowing that board has a reputation for being finicky, it's possible there's a BIOS setting or two which could interfere with the BMC's fan controls.

However, now knowing more details about your fans, I would not bother spending time on this at the moment, as I believe you're most likely running into problems because of your fan hardware choices.

(4) I have been tempted to just get fans of the same type. But kind of a pain. And I would also prefer 4 pin fans but...
Yep. +1 for both ideas. The _only_ concern I can see is because this board is known to be a wild card re: fan control, there are no guarantees. OTOH, I suspect if you really want to solve this issue to your liking, you're going to have to invest in 4-pin fans.

I think the fan control on this particular board is very messed up. Will mess with it a bit more but in the end, it is in the loft, so we do not hear it, and i prefer it to be cool. Cheaper to replace fans. The issue with lowering the speed is the sensors then freak out (when they think they see 25k RPM so I get alerts. |And I hate to replace all the fans and then have it still not work.
Yeah. There's some very quirky behavior with the SM X10SL___ sub-series boards. To my knowledge, virtually none of them have correctly functioning fan regulation via IPMI. I would imagine it's something to do with Supermicro's implementation of Redfish firmware on those boards, in combination with the Apseed AST 2400 BMC chip (but that is speculation on my part). I do find it quite puzzling though, personally. Generally speaking, SM's X10 boards are very tolerant of fan tweaking, a few exceptions not-withstanding.

If you can tolerate the system on 100% power all the time, that seems to be your cheapest / least amount of work option.

One more thought... I've had good luck with Noctua fans in SM chassis, for a home lab environment. It's not always my preferred route due to the cost and jury-rigging required, but I have performed some experiments and it can work so long as you're not using a full 16 or 24 bay of HDDs. At that point, you really need the static pressure of the high speed axial fans, such as the type commonly found in OEM server chassis.
 

TexasDave

New Member
Jan 14, 2023
4
2
3
Surrey, UK
All your comments are spot on - Thanks! The last option is to move it to "OPTIMAL" (or any other mode except FULL) and increase the 2 "problematic" fans to match the crazy reading. Not keen on that but it would work. Anyways - I now know both the right anf wrong way to fix. The issue (as stated) is there is no guarantee it will work even with 4 pin and matched fans. But may still try at some point. Will post back here if I ever crack it. Thanks!
 
  • Like
Reactions: DaveInTexas

DaveInTexas

Member
Oct 28, 2021
77
85
18
Based on your shared experiences so far, I'm not sure if Optimal mode will actually work as intended with your current hardware. I agree that it ought to you if you adjust the BMC fan threshold settings. However, this also depends on whether the 25500 current fan speed reading you're getting is at the upper limit of the BMC's speed measuring capability.

When a user attempts to set the AST chips (e.g. a threshold level manually set) to a number higher than the BMC's limit, the value will "rollover" meaning it will "rollover" to the fan hysteresis value, and restart counting from that level. For example, if your board's fan hysteresis is 100 and its threshold integer limit is 27600, then if you were to manually set a threshold value to 27700, it would be registered as 100. Actually, in this example, any value between 27651 and 27750 would be changed to 100 as the AST's round down.

So, my point is.... is 25500 your BMC's max for threshold values? I don't know. I doubt it, because they are typically some sort of common figure when converted to binary. For example, a very common limit is 32767 (though it gets rounded down to whatever the closest fan hysteresis multiple is without going over 32767). This limit is common because 32767 is the highest unsigned 8-bit value you could have.

Bottom line is I would exercise cautious when setting the upper thresholds to a very high number. You ought to be able to do that and get it to work in your situation (i.e. set the Upper Non-Critical to something higher than 25500, and set the UCR and UNR to incrementally higher values, based on the fan hysteresis for your motherboard). Since 25500 sounds like an arbitrary value, it is likely not be the maximum threshold value. But, I'd still be careful. Just set the thresholds and then immediately check them to see if they are as expected or if they're wildly different (in this case, if it's a problem they would be very low, such as 50, 75, or 100, or some multiple of one of those).

If it works out ok, the next concern I'd have is... do those fan speeds always report 25500? Do they fluctuate? Either way, if you decide to go this route, I'd suggest a bit of experimentation and setting the upper thresholds as high as possible. You may want to start with something like 32500 for the UNC, 32600 for UCR, and 32700 for UNC and see if those stick, since the unsigned 8-bit limit should be a reasonable place to start and see if it works.
 

mattventura

Active Member
Nov 9, 2022
443
210
43
Seems my X9DRD doesn't have any way of manually lowering the fan speed. I poked around with it and actually got the fans to run at <1k RPM.... except it was a lie, I somehow got it to report a lower speed without actually changing the fan speeds.

What I'm thinking of is making a simple circuit that just sits on the PWM line and biases it a bit, so that the pulses are effectively shorter.
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
Seems my X9DRD doesn't have any way of manually lowering the fan speed. I poked around with it and actually got the fans to run at <1k RPM.... except it was a lie, I somehow got it to report a lower speed without actually changing the fan speeds.

What I'm thinking of is making a simple circuit that just sits on the PWM line and biases it a bit, so that the pulses are effectively shorter.
Not intending to sound critical here, but are you certain you've followed the typical Supermicro procedures, and the fans are not obeying?

I'm asking b/c that board has the Nuvoton WPCM450 BMC chip. I know the Nuvoton WPCM450R does permit fan control via IPMI, but I am wondering if perhaps the non-"R" version on the SM boards has that functionality locked out, based on your comments.
 

mattventura

Active Member
Nov 9, 2022
443
210
43
Not intending to sound critical here, but are you certain you've followed the typical Supermicro procedures, and the fans are not obeying?

I'm asking b/c that board has the Nuvoton WPCM450 BMC chip. I know the Nuvoton WPCM450R does permit fan control via IPMI, but I am wondering if perhaps the non-"R" version on the SM boards has that functionality locked out, based on your comments.
I've tried both playing with the stuff in /sys/class/hwmon, which seems to exhibit odd behavior, and that's also how I was able to get it to merely report a lower speed without actually being slower. Nothing actually worked though (it exposes 4 sets of pwm value and pwm enable files, none of them do anything substantial).

As for IPMI, tried plenty of raw IPMI commands. Both the ones starting with 0x30 0x91 as well as 0x30 0x45 and 0x30 0x70. I'm able to change the fan mode like with a real IPMI client, but nothing worked.

For both routes, I made sure to set it to "full speed" in IPMI first.

What might work, that I just haven't researched yet is whether there's any way to control fans via the fan headers on one of the backplanes. Unfortunately, that would lock me out of future upgrades since it seems that SAS3 backplanes dropped the fan headers.
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
hwmon seems sketchy from my experience, especially with regards to fan control. I have never been able to get it to work reliably. Just saying, I believe you're not the only one who's been frustrated when it comes to writing data to it! LoL

Supermicro seems to be really hit-or-miss with regards to manual fan manipulation capabilities. I have not been able to figure out how to tell which boards will or won't allow it without direct fiddling or hearing from others who have fiddled with them. They're really all over the map. Even sub-model series (e.g. X9DRD-{whatever}) are not consistent. For instance, the X9DRG series has 3 different BMC's depending on which board model you have. Very frustrating when trying to pick-up a useful used server board, only to discover it insists on running the fans at 100% all the time. :mad:

One remote possibility... have you tried setting fan mode to FULL (1), then cold reset the BMC (mc reset cold). Then, set the lower and upper fan thresholds to extremes, and then try to set the fans via IPMI? If that does not work, then I suspect you're S.O.L.

I've also seen some of their boards where it will seem to work, but on server warm or cold restart, the BIOS forcibly overrides the manual settings.
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
This is exactly what I've been searching for and big props to both of you, fantastic stuff in there. I wanted to add one thing that I found when working on my 1027GR-TR (X9DRG-HF): it has a bit of a weird zone setup; everyone I've seen talk about this reference 0x00 for the CPU zone and 0x01 for whatever other zone A; however, on this server it has 3 zones.
  • CPU Zone which has the ID of 0x10 and fans 1-4.
  • Left Zone (looking at it from the front) with ID 0x12 and fans A-D.
  • Right Zone with ID 0x13 and fans E-H (I only have E-F but I assume G/H are included).
So the commands to change the CPU fans to half speed would be:
ipmitool raw 0x30 0x91 0x5a 0x03 0x10 0x80

Took me a while just slamming options in there so I thought I'd put this here to save other people some time.
I am curious... have you tried to control the 0x11 fan zone? Two possible outcomes seem likely:
  1. Nothing happens
  2. All fans A-H turn on (i.e. 0x12 and 0x13 zones combined)
Would you mind trying this out sometime (or have you already)? Boards with > 2 fan zones are very rare (not including boards designed to allow individual fan header control in that statement)!
 

Nils S

New Member
Mar 20, 2021
2
3
3
I am curious... have you tried to control the 0x11 fan zone? Two possible outcomes seem likely:
  1. Nothing happens
  2. All fans A-H turn on (i.e. 0x12 and 0x13 zones combined)
Would you mind trying this out sometime (or have you already)? Boards with > 2 fan zones are very rare (not including boards designed to allow individual fan header control in that statement)!
My testing was done by just marching up the numbers until I found what controlled anything, so 0x11 did nothing, if it did everything I would have stopped there and not bothered with 0x12 or 0x13.
 
  • Like
Reactions: DaveInTexas

ziggygt

Member
Jul 23, 2019
62
10
8
This is a very interesting paper. I am afraid I do not understand.
How are the thresholds determined? For the 4 different settings? The plots are? Optimal (Green?), Standard (Orange?), Heavy I/O (not described) and Full (Red?). Can RdPkgConfig(), COA and IndexValue16 be modified somehow?

Is it possible to convert DTS to degrees C? I assume DTS is the raw uncalibrated sensor output,

The %fan that you can control using the IPMI is the lower left starting point? You can set this for Either the I/O fans or the CPU zone fans? For optimal and standard settings, the default is the same but for Heavy I/O the threshold is split?
 
Last edited:

DaveInTexas

Member
Oct 28, 2021
77
85
18
@ziggygt you need to provide context. No one will be able to answer your questions without that. For example, what motherboard make and model are you inquiring about? And what is the "interesting paper" you're referring to?
 

southgb

New Member
Mar 4, 2023
1
0
1
Lower the IPMI fan speed thresholds
"sensor thresh <id> lower <lnr> <lcr> <lnc>"

I.E.

Code:
root@pve:~# ipmitool sensor thresh FANA lower 100 225 300
Locating sensor record 'FANA'...
Setting sensor "FANA" Lower Non-Recoverable threshold to 100.000
Setting sensor "FANA" Lower Critical threshold to 225.000
Setting sensor "FANA" Lower Non-Critical threshold to 300.000
root@pve:~# ipmitool sensor thresh FANB lower 100 225 300
.....etc.....
This worked on an X9DRL-7F, thank you. I only adjusted FANA, seems to have resolved the issue all around.

**EDIT** Approximately 9 hours after I posted this, the fans ramped up to max speed again. I ran the same command using "FAN4" as I noticed some errors in the log. No issues since (12 hours).
 
Last edited:

ziggygt

Member
Jul 23, 2019
62
10
8
@ziggygt you need to provide context. No one will be able to answer your questions without that. For example, what motherboard make and model are you inquiring about? And what is the "interesting paper" you're referring to?
DaveInTexas,
Thanks for helping the newbie out. I thought I had quoted this post. https://forums.servethehome.com/ind...9-x10-x11-fan-speed-control.10059/post-143279 That describes a SM tech note.

Here again are my questions/comments
This is a very interesting paper. I am afraid I do not understand.
How are the thresholds determined? For the 4 different settings? The plots are? Optimal (Orange?), Standard (Green?), Heavy I/O (not described) and Full (not described). Can RdPkgConfig(), COA and IndexValue16 be modified somehow?

Is it possible to convert DTS to degrees C? I assume DTS is the raw uncalibrated sensor output?

The %fan that you can control using the IPMI is the lower left starting point? You can set this for both the I/O fans or the CPU zone fans? For optimal and standard settings, the default is the same but for Heavy I/O the threshold is split?
The mother board I am having the most trouble with is a X9DRH-7F. It has passive CPU coolers in a 2U 12 drive chassis, The 3 chassis fans run at 4500 RPM at idle. it is very loud. I have it in Optimal setting. I am looking at some hardware solutions since I cannot get the motherboard to respond to the IPMI command and the syntax of the IPMI command structure is not clear.


upload_2017-5-22_23-8-23.png
 

DaveInTexas

Member
Oct 28, 2021
77
85
18
DaveInTexas,
Thanks for helping the newbie out. I thought I had quoted this post. https://forums.servethehome.com/ind...9-x10-x11-fan-speed-control.10059/post-143279 That describes a SM tech note.
Ah, gotcha. Thanks for explaining. :)

Incidentally, here is a link to your mobo's manual. Supermicro tends to make these difficult to find: https://www.supermicro.com/manuals/motherboard/C606_602/MNL-1306.pdf

Here again are my questions/comments
This is a very interesting paper. I am afraid I do not understand.
How are the thresholds determined? For the 4 different settings?

The plots are? Optimal (Orange?), Standard (Green?), Heavy I/O (not described) and Full (not described). Can RdPkgConfig(), COA and IndexValue16 be modified somehow?
Well, my understanding/experience is the exact %age of fan speed can vary depending on which BMC chip your board has. However, generally speaking they seem to approximately break down like this:
  • Optimal: 30% or higher
  • Standard: 50%
  • Heavy I/O: 70%
  • Full: 100%
For "optimal" I say "or higher" because in Optimal mode, the BMC will adjust the fan speed up based on temperature sensor readings. However, it will not adjust it below ~30% or so fan speed. In fact, this is why so many Supermicro geeks are interested in fan controller software; because, the built-in fan control thresholds are rather rudimentary.

It's possible some fan controllers may split the fan power %age between fan zones when Heavy I/O is selected and there are at least 2 fan zones.

Is it possible to convert DTS to degrees C? I assume DTS is the raw uncalibrated sensor output?
Yes and no. I find the wording of that article confusing, at least relative to my understanding of DTS, CPU temperatures, and what a user is able to discern when polling CPU temperature as reported by IPMI or other tools that gather metadata from the CPU and report its temperature in a user-friendly manner.

DTS = Digital Thermal Sensors. In practical terms, it's a terrible name. It is an Intel thing. Go figure on Intel + terrible naming conventions, and Intel's innate ability to make simple concepts complicated for no particular reason. I'm not sure which company is worse: Supermicro or Intel. LoL. :p

The purpose of DTS is to inform the BMC of the CPU's maximum operating temperature. The DTS calculation is how far away the current CPU temp is from breaching the CPU's maximum design temp. There are actually two (2) thresholds reported by modern Intel CPUs to the BMC: a High temp and a Critical temp, though it's possible some chips only report one (critical). The Critical temperature is the one you need to pay most attention to, and that seems to be what this graph is referring to.

I don't agree with some of the comments/language in that tech note. Not that anyone cares, but I think the author makes it sound as if the temperatures involved are not measured in Celsius/Centrigrade, which is not true. Semantics aside, let's focus on how this works.

As shown in the graph, the BMC is going to look at the CPU temperature metadata, and compare it to the DTS indicated Critical CPU Temperature threshold. Here, the "DTS reading" is a calculation of how far the current CPU temp is (in Celsius) from its critical threshold, expressed as a negative number (degrees Celsius below the DTS limit). That's how the BMC is looking at these numbers internally. However, if you poll the CPU temp using something like IPMI, you're going to receive the actual current CPU temperature measurement in Celsius, which has nothing to do with the DTS. Let's say you have 50 degrees C for the CPU temp, and that turns out to be DTS -40 for that particular CPU. Well, the user doesn't get told -40... the user gets told the temp is +50.

I do understand the point of the article and the DTS graph. While users tend to focus on how hot a CPU or hard drive temps are, etc. in reality the BMC fan controller doesn't care about how hot the CPU is directly, nor whether you as user think any given temperature is good or bad. The BMC only cares about the DTS reading relative to the DTS itself. In other words, the BMC just wants to know, "How far is the temperature from what I've been told is its maximum operating temperature?" Users tend to be far less comfortable with their CPUs operating at critical temperature than the BMC is. However, the BMC fan controller is going to do everything in its power to keep the CPU temp from exceeding that critical temp.

When the BMC is controlling fan speeds automatically, it will ramp up the fan speeds as the CPU temp approaches the DTS limit. The graph seems to demonstrate in part, that if the CPU temp comes within -10 or -15 degrees C of the DTS, the fans are going to be ramped up to 100%. This will happen regardless of what mode the fans are in when the BMC is controlling the fan speeds. I'm not sure what the box that says, "5 DTS Counts Hystereses" is supposed to represent, since the fan hysteresis (correct spelling) is the interval of RPMs the BMC fan controller tracks fan speeds in. You may think of the fan hysteresis as a rounding number. For example, if the fan hysteresis is 100 RPM and the actual RPM were say, 65 RPM, then the BMC would report the fan speed as 100 RPM (65 rounded up to 100). If the raw fan speed was actually 40 RPM, the BMC would round it down to 0 and report a speed of 0 RPM. That is a very basic, but practical explanation of fan hysteresis.


The %fan that you can control using the IPMI is the lower left starting point?
Yes and no. When controlling the fan speeds manually - presuming your board allows it - you can set the fan speed to 0% or 1% on the low end (depending on the BMC controller minimum is either 0 or 1... for most, it's zero). However, if you set the CPU fans to 0% then it's going to quickly go into panic mode and ramp up the fans to maximum whether you want it to or not. So, what I am surmising the graph is trying to show on the left side is some minimal fan speed percentage (i.e. 20% on this graph).

Does that make sense? To answer your question a bit more straight-forwardly, in manual fan mode you can set the starting point to whatever you like, but if it's too low then the BMC is going to force the fans higher. At what point that happens depends on another group of settings; namely, the Lower Fan Speed Thresholds.

You can set this for both the I/O fans or the CPU zone fans?
Yes, if your board has 2 fan zones, and its BMC controller and motherboard allow manual fan speed control.

I should probably add another point of clarification on that: In some (rare) circumstances, the BMC controller on a board CAN support manual fan speed manipulation via IPMI, however it's disabled by the board manufacturer. Supermicro has quote a few boards that don't allow manual fan speed control. Most of them do not have a BMC controller, which would explain the cause pretty clearly, but there are a small number of their boards with BMC controllers where manual fan speed control is disabled by Supermicro on purpose (I have no idea why).

For optimal and standard settings, the default is the same but for Heavy I/O the threshold is split?
Depends on the individual motherboard, but for the most part no. As mentioned earlier, those settings are usually different. You might find some board controllers where the Standard and Heavy I/O, or Optimal and Standard settings start out at the same base level fan speed, and then ramp up more aggressively for one mode versus the other. However, you're always going to find that Optimal is the least aggressive and Heavy I/O is the most aggressive in terms of fan speed ramp-up.

The mother board I am having the most trouble with is a X9DRH-7F. It has passive CPU coolers in a 2U 12 drive chassis, The 3 chassis fans run at 4500 RPM at idle. it is very loud. I have it in Optimal setting. I am looking at some hardware solutions since I cannot get the motherboard to respond to the IPMI command and the syntax of the IPMI command structure is not clear.
According to the manual for the X9DRH-7F board, it has 2 distinct fan zones (FAN1-6 and FANA/B). It doesn't matter what Supermicro calls the fan zones. In this board's case they call them "CPU/System" and "Slot I/O" but that is irrelevant for our purposes. They are all 4-pin PWM fan headers. The question is, are they addressable from the BMC via manual fan control?

This board has the Nuvoton WPCM450R BMC controller. You may find this to be a marginally useful resource on that chipset: Nuvoton WPCM450R IPMI Chip with ATEN-Software - Thomas-Krenn-Wiki

The Thomas Krenn article does not refer to your board specifically, but that page will set your expectations on what you likely can or cannot do with IPMI on that board.

There's no way to know for sure if you'll be able to manually control the fans on your board or not until you try poking around with direct commands using IPMI from a command line terminal. More on that below. If that isn't an option for you, I would suggest you investigate swapping out your fans. There are a few posts on this forum from folks who have done it. I have personally experimented with a 4U Supermicro chassis and had some success with substituting Noctua fans for the front mounted jet engine fans in that particular case. However, it's not all gravy. There are some downsides to this approach, including the fact you may need to run after-market quiet fans at full speed all the time, and they may not provide sufficient cooling, depending on your use case.

Now, to probe whether or not you are able to manually control your fans. Supermicro X9 boards - when they allow manual fan control - only allow it at the fan Zone level, and not the individual fan level. My suggestion is to try setting your fan zones to 50% power, and listen and/or monitor your fan sensors to determine if the changes take hold or not.

You must first set the fan mode to FULL. It's an odd quirk of Supermicro.

Fan zone 0 should be the CPU/System fan zone for this board (FAN header IDs FAN1-FAN6), and fan zone 1 should be the other zone (FANA/FANB). However, in order to prevent potentially damaging your CPU and/or triggering the fan too-low thresholds in the BMC, I would recommend you start by trying to force the fans to 50% speed and see if you can detect a change or not. You will know whether it works or not, because since the first step is to place the fans in FULL mode, they will be at 100% power and stay there if the commands to control them are unsuccessful, so you'll know if it's going to work or not right away.
  1. Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x01
  2. Set fan zone 0 to duty cycle 7F (50%): raw 0x32 0x91 0x00 0x7f
  3. Set fan zone 1 to duty cycle 7F (50%): raw 0x32 0x91 0x01 0x7f
Hopefully, all this info is helpful!
 

ziggygt

Member
Jul 23, 2019
62
10
8
Now, to probe whether or not you are able to manually control your fans. Supermicro X9 boards - when they allow

Fan zone 0 should be the CPU/System fan zone for this board (FAN header IDs FAN1-FAN6), and fan zone 1 should be the other zone (FANA/FANB). However, in order to prevent potentially damaging your CPU and/or triggering the fan too-low thresholds in the BMC, I would recommend you start by trying to force the fans to 50% speed and see if you can detect a change or not. You will know whether it works or not, because since the first step is to place the fans in FULL mode, they will be at 100% power and stay there if the commands to control them are unsuccessful, so you'll know if it's going to work or not right away.
  1. Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x01
  2. Set fan zone 0 to duty cycle 7F (50%): raw 0x32 0x91 0x00 0x7f
  3. Set fan zone 1 to duty cycle 7F (50%): raw 0x32 0x91 0x01 0x7f
Hopefully, all this info is helpful!
Thanks for a great explanation of the way BMC is setup. I have several SM mother boards. Perhaps it is because my X9DR3-F board is one of that does not support Fan control but I tried the commands from a previous thread.

when i use the Truenas shell to type "ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x24" command I get an error message I get says:
"unable to send RAW command channel=0x00 netfn=0x30 lun=0x0 cmd=0x70 rsp=0xcc
invalid data field in request"

raw <netfn> <cmd> [data]

"Network Function Codes:
VAL HEX STRING
==============================================
0 0x00 Chassis
2 0x02 Bridge
4 0x04 SensorEvent
6 0x06 Application
8 0x08 Firmware
10 0x0a Storage
12 0x0c Transport"

You can see that my X9DR3-F motherboard does not have a 0x30 netfn?
Is there a decoder ring for these X9 boards. I did not find it on that server wiki link you shared. Where are the raw commands defined?

Raw 0x32 0x91 0x00 0x7f
0x32 is the fan device
0x91 is cmd "set"
0x00 is zone
0x7f is 50% set in hex FF is 100%

I'll try my X9DRH-7F and other boards and your specific recommendations very soon.

X9DR3-F
I can use
  • Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x01 and fan goes to full speed
  • Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x00 and fan goes to a normal speed, about 2600rpm
when i send:
  • Set fan zone 1 to duty cycle 7F (50%): raw 0x32 0x91 0x01 0x7f
I get this error code
Unable to send raw command (channel=0x0 netfn=0x32 lun=0x0 cmd=0x91 rep=0xc1):

X9DRD-7fln4
Same thing happens fans can be set to high and high turned off but same error message.

It took some time for the fan speed to reduce. I think it is faster than before after turning off full speed. That was my quietest system. not any more. it slowed in steps with delay in between. perhaps it will slow down more

X9DRH-7F ,
swapped some network cards yesterday and it needs some work to get back on the network. I'll try tomorrow. Ironically it is the one with the issue
 
Last edited: