Supermicro X11SSL-F fan control?

VladTepes

Patron
Joined
May 18, 2016
Messages
287
Can anyone running this mobo (or other similar supermicro mobo) for a freenas system please offer some advice regarding controlling case fans from the mobo?

I have a dual system build (it's complicated) but suffice to say that I need to run 2 front intake fans, 2 top intake fans and a rear exhaust fan (total of 5) from the mobo.
I need them to ramp based on internal case temps (not specifically CPU temp) so they are normally quiet and pull more air only when really required to do so.
The front fans are the ones that cool the storage HDD's so they are most important to be running at appropriate speeds I guess.

I've tried using the fan hub in my phanteks case but I think that's confusing the issue (as that's supplying power to the other system in the case as well)

All advice / assistance on this would be VERY welcome.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
Have you looked here? :
 

guermantes

Patron
Joined
Sep 27, 2017
Messages
213
I find it more appropriate to regulate case fan intake in accordance to drive temps, not case ambient temps.
I have the X11SSM-F and very successfully use @Glorious1 's script. I have not tried the other script recommended above. It's super easy to setup. Below is my config if that helps.

Code:
#!/usr/local/bin/bash
# spinpid2.sh for dual fan zones.
VERSION="2019-04-05--pastic"
# Run as superuser. See notes at end.

##############################################
#
#  Settings
#
##############################################

#################  LOG SETTINGS ################

# Create logfile and sends all stdout and stderr to the log, as well as to the console.
# To append to existing log, add '-a' to the tee command.
LOG=/mnt/TANK/sysadmin/spinpid/spinpid2.log  # Change to your desired log location/name
exec > >(tee -i $LOG) 2>&1    

# CPU output sent to a separate log for interim cycles
#CPU_LOG=/mnt/TANK/sysadmin/spinpid/spinpid2_cpu.log

#################  FAN SETTINGS ################

# Supermicro says:
# Zone 0 - CPU/System fans, headers with number (e.g., FAN1, FAN2, etc.)
# Zone 1 - Peripheral fans, headers with letter (e.g., FANA, FANB, etc.)
# Some want the reverse (i.e, drive cooling fans on headers FAN1-4 and
# CPU fan on FANA), so that's the default.  But you can switch to SM way.
ZONE_CPU=1
ZONE_PER=0

# Set min and max duty cycle to avoid stalling or zombie apocalypse
DUTY_PER_MIN=40
DUTY_PER_MAX=100
DUTY_CPU_MIN=40
DUTY_CPU_MAX=100

# Your measured fan RPMs at 30% duty cycle and 100% duty cycle
# RPM_CPU is for FANA if ZONE_CPU=1 or FAN1 if ZONE_CPU=0
# RPM_PER is for the other fan.
RPM_CPU_30=500   # Your system
RPM_CPU_MAX=1500
RPM_PER_30=400
RPM_PER_MAX=1400

#################  DRIVE SETTINGS ################

SP=37   #  Setpoint mean drive temperature (C)

DRIVE_T=5  # time interval for checking drives (minutes).  Drives change
     # temperature slowly; 5 minutes should be frequent enough.

Kp=4    #  Proportional tunable constant
Ki=0    #  Integral tunable constant
Kd=40   #  Derivative tunable constant

#################  CPU SETTINGS ################

....never changed anything below this point...
 

VladTepes

Patron
Joined
May 18, 2016
Messages
287
Thanks, lets assume i'm ignorant - how do i actually implement and use that?
 

guermantes

Patron
Joined
Sep 27, 2017
Messages
213
The instructions are really easy to follow and you find them on the scripts resource page. No point in me repeating them verbatim here. Just load the script with a task when booting, and I suggest you just tweak the temperature value until you get desired results. It was not transparent for me to calculate the correct value immediately, so I just set a target temp and watched what happened and tweaked until I was happy. In total, all I did to the script was to set target temp, choose what zone to adhere by and where to save the log file.
 

VladTepes

Patron
Joined
May 18, 2016
Messages
287
Thanks, Once i get my NAS up and running again I will attack this.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,702
Just load the script with a task when booting
Additional tip on that:

Run it with tmux, which will mean 2 things:
1. You can access the session where it's running, stop and/or restart it without a reboot.
2. A middleware failure won't kill your script silently.

The command for the tasks looks like this:
tmux new-session -d -s fanscript '/mnt/tank/scripts/pid_fan_controller.pl'

You can then attach to that session with tmux attach -t fanscript and then CTRL+B then D to detach when you're done (and can then come back to it later the same way).

While you're in the tmux session, CTRL+C to stop the script and /mnt/tank/scripts/pid_fan_controller.pl to restart it if, for example you wanted to change some of the config.
 

VladTepes

Patron
Joined
May 18, 2016
Messages
287
So nothing can be done in the BIOS then i assume?
 

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,110
Set the fans in full mode if so required by the script and do not forget to set appropriate thresholds through the BMC (defaults are for fast spinning server fans and work badly with quiet, slow spinning fans).
 

VladTepes

Patron
Joined
May 18, 2016
Messages
287
What would I use as 'appropriate thresholds' ?
 

Spearfoot

He of the long foot
Moderator
Joined
May 13, 2015
Messages
2,478
So nothing can be done in the BIOS then i assume?
You can't set the fan mode in the BIOS on Supermicro systems: you have to use the BMC, using IPMITool or IPMICfg. Here's a good reference on Supermicro fan speed control (which I believe references the script mentioned above):
 

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,110
What would I use as 'appropriate thresholds' ?
Take the specifications of your fans. Say, a Noctua NF-A12x25 PWM:
Code:
Rotational speed (+/- 10%)                2000 RPM
Rotational speed with L.N.A. (+/- 10%)    1700 RPM
Min. rotational speed (PWM, +/-20%)        450 RPM

Minimal speed would be 450 - 20% = 360 rpm. The BMC rounds by 100 rpm so lnc would be 300, and then lc and lnr at 200 and 100.
Maximal speed is not relevant.
 

Ebedorian

Dabbler
Joined
May 5, 2023
Messages
10
I'm having this same issue, and I can't understand it.

I'm using two NF-A6x25 PWM fans plugged into the FAN4 header and two NF-A4x20 PWM fans plugged into the FAN1 header on a Supermicro MBD-X11SSL-F motherboard. I'm running TrueNAS-SCALE-22.12.2 on a Supermicro MBD-X11SSL-F with a Xeon E3-1270 v5 processor, 64GB ECC RAM, with Five (5x) White Label 4TB 7200RPM 64MB Cache SATA 6.0Gb/s (from goharddrive.com) connected via an LSI 6Gbps SAS HBA 9200-8I IT Mode.

I have over 400 warnings about de-asserted lower critical going low and asserted lower critical going low on fan 4 (See attached image).

I'm not sure what thresholds I should set the fans to and I could use some assistance understanding the reference material linked at (https://forums.servethehome.com/index.php?resources/supermicro-x9-x10-x11-fan-speed-control.20/).
 

Attachments

  • 1684762577076.png
    1684762577076.png
    315.5 KB · Views: 137
  • 1684762701197.png
    1684762701197.png
    58.3 KB · Views: 128
  • 1684763031987.png
    1684763031987.png
    149 KB · Views: 115

Etorix

Wizard
Joined
Dec 30, 2020
Messages
2,110
Code:
Min. rotational speed @ 20% PWM (+/-20%)        550 RPM

The lowest possible speed within specs is 80% of 550 rpm = 440 rpm. Round down to 400 for lnc.
Then 300 and 200 for lc and lnr.
 
Top