P

Supermicro X9/X10/X11 Fan Speed Control

Infantryman

New Member
Mar 28, 2021
1
1
1
For those Windows users who wish to change IPMI server settings remotely, use SMCIPMITool for Windows.

Ensure your Command Prompt utility is pointing at the directory where the SMCIPMITool.exe file is located.

Here is a sample to set CPU fan @ 50%: SMCIPMITool.exe 192.168.0.100 myusername mypassword ipmi raw 30 70 66 01 00 32

Here is a sample to set Case/Chassis fans @ 50%: SMCIPMITool.exe 192.168.0.100 myusername mypassword ipmi raw 30 70 66 01 01 32

Green Value = CPU or Case/Chassis Fans (00 for CPU or 01 for Case/Chassis)

Blue Value = Fan Speed (Change value "32" to your taste. 00 = 0%, 16 = 25%, 32 = 50%, 64 = 100%. Nothing stop you from using other values inside the 00 - 64 scope. If you want it @ 75%, then use value 48.)

If you get "00" after issuing the command, your settings has been accepted by the server.

Hope this helps!
 
Last edited:
  • Like
Reactions: dawsonkm

kodi

New Member
Aug 5, 2020
11
0
1
For those Windows users who wish to change IPMI server settings remotely, use SMCIPMITool for Windows.

Ensure your Command Prompt utility is pointing at the directory where the SMCIPMITool.exe file is located.

Here is a sample to set CPU fan @ 50%: SMCIPMITool.exe 192.168.0.100 myusername mypassword ipmi raw 30 70 66 01 00 32

Here is a sample to set Case/Chassis fans @ 50%: SMCIPMITool.exe 192.168.0.100 myusername mypassword ipmi raw 30 70 66 01 01 32

Green Value = CPU or Case/Chassis Fans (00 for CPU or 01 for Case/Chassis)

Blue Value = Fan Speed (Change value "32" to your taste. 00 = 0%, 16 = 25%, 32 = 50%, 64 = 100%. Nothing stop you from using other values inside the 00 - 64 scope. If you want it @ 75%, then use value 48.)

If you get "00" after issuing the command, your settings has been accepted by the server.

Hope this helps!
x9dri-ln4f returns:
Code:
CC
(Invalid data field in Request)
So yeah - looks like on this motherboard this function is really disabled :(
 

solon

New Member
Apr 1, 2021
7
0
1
This is great stuff. I've been sporadically lurking on servethehome for quite a time, but just now registered. This seems to be one of the few places with decent info suitable for those of us who mess with server hardware as a sort of hobby project.

I recently acquired a Supermicro X10DRH-iT as a COVID keep-oneself-occupied project, on which this worked fine yesterday. I'm running ubuntu 20.10 (desktop). I'm using low power xeons on the board so the fans really hardly have to run at all. If I can't get the fans to slow down I guess I'll watercool it or something, so I was really happy with the information here about getting fan speed down.

I made a script that sets the profile to max with ipmi tool, sleeps 2s, then uses raw to set each fan zone to 25%. This was working fine yesterday.

This morning though, the fans are running at max, and running my script only sets the fans to 25% for a few seconds, then it goes back to max. I assume the BMC is overriding the 25% setting, but it was my understanding that the max profile before the raw commands should stop this from happening?

Has anyone by any chance seen similar behaviour on a X10 series supermicro board and maybe come up with a workaround?
 

weust

Active Member
Aug 15, 2014
342
34
28
41
Not having a X10 but a X11, I set the fan speed to max, then to n% per zone.
I do not use GNU/Linux, but on my FreeBSD server it looks like this and you should be able to use that too:
(below is part of my sh script I use at start up)

Code:
command="/usr/local/bin/ipmitool"

    echo -n "IPMI set fan mode to "full""
    $command raw 0x30 0x45 0x01 0x01
    sleep 1
    echo -n "IPMI set fans in "system" zone to 50% (front inlet fans)"
    $command raw 0x30 0x70 0x66 0x01 0x00 0x32
    echo -n "IPMI set fans in "peripheral" zone to 50% (CPU fan)"
    $command raw 0x30 0x70 0x66 0x01 0x01 0x32
The "sleep 1" is needed because it needs less then a second to set the zones to full speed.
Not using it will makes the fans go full right after the next two lines.
 

solon

New Member
Apr 1, 2021
7
0
1
This looks almost the same as my script which I based off of something from this site somewhere. Yours is neater. Minor differences, I set everything to 25% and sleep for 2 seconds.

What mystifies me is that is was staying at 25% fine yesterday. Now, when I execute the script, after 2s it goes down to 25%, then after a few seconds ramps back up to 100%. If I run the script again almost right away, it goes to 25%, then almost instantly ramps back up to 100%.

The article on this site warns of this behaviour if the fan mode isn't set to max initially, but it seems that setting it to max doesn't help anymore, while it was behaving fine yesterday. I suppose I'll reboot later and see if it behaves differently, but it would be nice to understand why its happening.
 

weust

Active Member
Aug 15, 2014
342
34
28
41
I set mine so that the fans are quiet enough in the side room the server is in . 3U with 80mm Noctua fans.

Did you set max fan speed in the BMC as well? IIRC that is a requirement as well in this case.
My other server is a Dell R230 and different actions are needed there, so it can change per server/BMC.
 

solon

New Member
Apr 1, 2021
7
0
1
I hadn't tried setting it to max in the BMC aswell. I just took a look, but it's now displaying as being set to max in the BMC too. I never set it to max there, but apparently it picks up the max setting issued from the ipmitool raw command and displays it in the web interface. Always nice when that works both ways. I've saved it as full in the BMC again for good measure and rerun the script. All I need to do now is go downstairs and see if it worked.

My X10 lives on a couple of bits of wood in a cabinet underneath the TV (until the EATX tray I ordered from our Chinese comrades comes in). The 2650LV3's only have a 65W TDP so 25% duty cycle is plenty. The cabinet itself has a 200mm fan to move warm air out of it. At 25% duty cycle it's quiet enough that you can't really hear it above the aquarium pump nearby. Still though... maybe I will watercool it anyway. Have had a half formed plan for a watercooling circuit throughout the house for some time now and since we're going in extra double plus lockdown again now anyway, perhaps it's a good time.
 

solon

New Member
Apr 1, 2021
7
0
1
Well, I am officially stumped. Nothing makes any difference, the 'new' behaviour (that which wasn't happening yesterday) is consistent across reboots and changing the BMC to optimal, saving it, then changing it back to full and then saving it. All while the CPU packages are no hotter than 34C, which should exclude the possibility of any sort of override kicking in.

The way supermicro implemented this doesn't seem to be all that brilliant, even if you don't care about the noise, it's still potentially a waste of energy that should have been trivially easy to avoid. Oh well.

I may add a 200mm inlet fan to the cabinet and just remove the CPU fans. They don't seem to get any hotter than 45C that way either and at least it's quiet.
 

kodi

New Member
Aug 5, 2020
11
0
1
Well, I am officially stumped. Nothing makes any difference, the 'new' behaviour (that which wasn't happening yesterday) is consistent across reboots and changing the BMC to optimal, saving it, then changing it back to full and then saving it. All while the CPU packages are no hotter than 34C, which should exclude the possibility of any sort of override kicking in.

The way supermicro implemented this doesn't seem to be all that brilliant, even if you don't care about the noise, it's still potentially a waste of energy that should have been trivially easy to avoid. Oh well.

I may add a 200mm inlet fan to the cabinet and just remove the CPU fans. They don't seem to get any hotter than 45C that way either and at least it's quiet.
Just a hunch - are all fans running properly and are all in the defined zones? If just one fan is not running properly (disconnected, out of the defined RPM zone) all fans will switch to full speed.
 

solon

New Member
Apr 1, 2021
7
0
1
I eventually found the the behaviour cleared up by resetting the BMC. Not sure how it could get into such a strange loop. I've since added another 200mm fan that pulls air into the cabinet and I'm attempting to 3d print a duct that will fit over both coolers (using this style: supermicro SNK-P0050AP4), and mount a single 200mm fan to draw air through both heatsinks, assuming the print ever finishes without coming unstuck halfway.

fanhouders_3.png

The noctua fans I'm using can be limited to 550rpm, which really should make the whole setup almost completely silent and stop strange BMC behaviour from being able to influence that. I can't really imagine anyone has the same set of problems that the design shown could be of use to anyone other than me, but in the unlikely event that someone else wants this solution I cam make openscad or stl files available.
 

solon

New Member
Apr 1, 2021
7
0
1
So my BCM really doesn't behave in a reliable way. It will behave normally for a while after reboot, then when there is a load it will ramp up fan speeds and never ramp them back down again. Resetting the BCM sometimes works to get back to normal behaviour, but even that isn't consistent.

I've given up on using the BCM for anything and have just used 2x 200mm noctua PWM fans with the supplied resistor to limit to 550rpm max. I got a singlt 120mm 17db noctua van for the icydock 5x3.5 in 3x5.25 cage with another 3d printed adapter and everything is now sufficiently silent, though since the BCM eventually sets everything as high as it will go and keeps it there, it usually still isn't completely silent.

I may try the using the secondary fan bank trick too, that could result in lower rpms more regularly or if it continues to annoy me I may simply watercool the CPU's instead in the end, but I think I'll check around for a standalone seperate fan controller first.