Supermicro X11SSH-LN4F: bypass IPMI and allow OS fan control?

jppowers

New Member
May 25, 2017
10
2
3
35
So, I just built a new Ubuntu Server 16.04 around the Supermicro X11SSH-LN4F. So far I like it quite a lot, specifically the IPMI capability. However... I'm not really into IPMI fan control. I really would prefer finer control, specifically some automatic adjustments.

Basically, I'm used to using lm_sensors and fancontrol to control PWM fans. The 4 settings aren't quite enough for me. Maybe I'm just spoiled, though.

sensors-detect didn't pick up on anything besides coretemp, so fancontrol's pwmconfig didn't pickup anything.

I'd really like a way to set the IPMI fan control to standard, then either load a module so pwmconfig can function. Alternatively, is there some add-in card people have used to get the same effect?
 

Stephan

Active Member
Apr 21, 2017
183
79
28
Germany
I had the same problem with an X11SAT-F board without IPMI. My workstation has 4 slow 140mm PWM case fans (Bequiet Silent Wings 3) with the CPU being cooled by a Shadow Rock Slim (also Bequiet). Obviously the CPU should only be cooled as needed, with minimal revs for all fans during idle. In addition I have an LTO tape drive in there, which runs quite hot when in use, hence the 4 PWM case fans. Initially I thought I could just poll the drive periodically for its internal temperature and adjust SuperIO chip PWM speed values once a minute to keep it cool. When nothing is going on at night or during the day, the machine should be whisper quiet. Yeah, so I thought.

Turns out SMM interrupt code will overwrite any settings you may make on the SuperIO chip when the SMM code detects a new condition like hotter or colder temperatures. Which is like every couple of seconds or tens of seconds at most. For IPMI boards the job of adjustment could be delegated to the Aspeed controller entirely, or the controller does only switch different fan profiles for SMM code to execute. Which is why I opted to get a board without it in the first place. I see little need for IPMI with Intel AMT manageability (KVM) just to keep an extra 2-3 watts chip running, that should prove even more difficult to persuade what to do about the fans. I guess you could use ipmitool to at least read out voltages and temperatures.

Of course I did contact Supermicro but the product managers were unable or unwilling to let me dive deeper into the boards internals than what the BIOS and official hardware APIs allow. As for the SuperIO chip, you might want to check out my guide here on STH: Supermicro X11SAT working and complete lm-sensors config

My final solution though was buying an Aquaero 6 LT (without display, with extras RTC and also the metal cooler, around 120 EUR) which has 4 programmable PWM outputs. I let the board only control the CPU fan, due to PECI being the fastest and most precise actionable interface concerning CPU temperature. Everything else is controlled by the Aquaero, which is, as the name suggests, originally a board to control water cooling setups. Once programmed, it does not need the USB connection btw. Linux tools are lacking very much, so I installed a Windows Qemu guest and made its USB device available to the guest.

Here is the Aquaero 6 PCB which is usually mounted in a 5.25" drive bay behind a display (non-LT variants, I mounted it at the bottom of the case on a 4mm PCB plate):
ipjbeiifnabbobeg.jpg

And here is the software UI running on Windows on a VM on Linux with USB passed through:
icddphflkhkepgeh.png

The Aquaero came with 4 out of 8 thermistors which I all installed. There are two control curves: One sensor on the LSI 2008 controller controls an internal PWM fan that blows directly towards the PCIe cards. If the card gets too hot (60degC is normal), the internal fan will be revved up, up to full speed. A different sensor is taped to the bottom of the LTO drive where much heat is dissipated and two top cover and one back side fan will rev up if temperatures rise here. At idle, the machine is silent, also owed to noise dampening of the NZXT H630. When the LTO is running, the fans are audible, but so is the screeching LTO drive.

All in all I am quite satisfied with the build.
 

jppowers

New Member
May 25, 2017
10
2
3
35
That's interesting! I'll definitely try tinkering with the config you linked, see if I can trick it all into working.

From what I could find on the Aquaero stuff makes it look like it's not too easy to get here in the States. I'll keep looking though, that appears like a close fit to what I'd want.
 

jppowers

New Member
May 25, 2017
10
2
3
35
I just stumbled on this: Amazon.com: SilverStone CMD01B-ESA ESA Commander Series Controller (Black): Electronics

From what I can find it's a fan controller that's based on the nVidia ESA standard. I've been looking around trying to figure out if this standard is properly supported by lm_sensors/fancontrol but I'm not finding anything besides articles from 2007-ish saying "This is a thing that might happen one day." That or articles about the European Space Agency...

Thoughts from the crowd? Anyway to figure out if it'll be magically supported by fancontrol?
 

K D

Well-Known Member
Dec 24, 2016
1,436
315
83
30041
There are some scripts in the freenas forums that dynamically control the supermicro fans based on cpu/drive temps. Since the supermicro boards have 2 fan zones, the scripts can be modified to control based on 2 parameters. In my case, for the sas controller, I just popped a quiet 40mm noctua on top and let it run at full speed. Cpu and drives are controlled by the scripts.


Sent from my iPhone using Tapatalk
 

jppowers

New Member
May 25, 2017
10
2
3
35
There are some scripts in the freenas forums that dynamically control the supermicro fans based on cpu/drive temps. Since the supermicro boards have 2 fan zones, the scripts can be modified to control based on 2 parameters. In my case, for the sas controller, I just popped a quiet 40mm noctua on top and let it run at full speed. Cpu and drives are controlled by the scripts.


Sent from my iPhone using Tapatalk
I saw those, but initially I only gave the script a quick glimpse as I figured it might be different enough for BSD that I couldn't use it on Linux. Giving a couple of them another read I'd only need minor tweaks to get it working, I guess.

That said, it's still not really the goal of this thread. Each script I've found is still utilizing IPMI fan control, just doing so through local commands, specifically ipmitool raw. The issue I have with that is I've already seen a few occurrences of the IPMI subsystem needing a reset, and when it happens all fans go to full speed. Again, part of the reason I'm looking for some way to get lm_sensors/fancontrol/pwmconfig in linux is I just trust it more after years of use.