Supermicro fan control, IPMIUTIL or FEEIPMI?

Sir.Robin

Guru
Joined
Apr 14, 2012
Messages
554
Don't think you will be able to adjust fan speed manually.

What is done is changing the FAN thresholds. Meaning the boundaries for "normal" fan speed operations.
If your fan is spinning at spec/normal speed of say 700rpm... you don't want the BMC throwing a warning because it is under 800rpm.

Also, for those using "optimal" fan setting, this led to the fans reving up to full speed because of the threshold trigger and then down again in a loop. Very annoying... :)

This beeing a server motherboard, and so you want the monitoring and control at the IPMI/BMC... not BIOS as on the desktop motherboards.

Speaking for myself, i use low rpm fans. 1300rpm and 700rpm. And i set the fan to "standard". Don't need the adjustment.
My problem were that i got a warning because the FAN Low_noncritical threshold (800rpm) got triggered because of the 700rpm fan.
 

Z300M

Guru
Joined
Sep 9, 2011
Messages
882
I've read this thread several times and looked into the IPMIUTIL tool. I must be dense because I'm still not understanding if this is a safe way to adjust the speed of 3-pin fans. I would hate to screw anything up on my shiny new production motherboard. I do have a tolerance for complex, clear instructions executed carefully. My supermicro 933T chassis screams like a banshee with the midship fans plugged into the backplane and I'm exploring ways to slow it down. I also have the SM X10SL7-F.

Could anyone give the high level overview of these IPMI utilities with regards to manipulating the fans? What is the purpose of having a third party IPMI utility, why this isn't built into the BIOS, how safe it is to use these, etc.

Three-pin fans are usually not adjustable, unless you get something like an Antec "Tri-Cool," which has a separate 3-position switch. The motherboard/bios can detect the speed of a 3-pin fan, but it takes a 4-pin fan for the motherboard/bios to be able to control the fan speed.

The IPMI utilities permit remote management (and monitoring) of the system while it is running: there is no need to be at the computer and able to make changes in fan (etc.) settings only as the machine boots up.

In fact, with IPMI, the computer does not even have to have a keyboard and monitor connected: it can be rebooted, shut down, restarted remotely
 

krikboh

Patron
Joined
Sep 21, 2013
Messages
209
Thank you jyavenard. I no longer have to listen to my CPU fan throttle up and down or see all those entries in my IPMI Event Log.
 

Z300M

Guru
Joined
Sep 9, 2011
Messages
882
I updated my IPMI Firmware. Now I can set fan speed thresholds in multiples of 100rpm rather than only of 150rpm -- but the fans now run much faster, no matter which setting I choose: 1500-1600rpm rather than 450-675rpm.

Update: Powering down completely, including cutting the power to the computer itself, and rebooting brought the fans back to the lower speeds.
 

Phlogi

Dabbler
Joined
Apr 2, 2014
Messages
33
just a note, with 9.2.1.1, the jails are working again and you can use pkg again.

So simply delete your existing port jail and add a new one and follow the first set of instructions


Can you confirm that using the ipmitool from inside a jail doesn't cause any issues? I just installed it on a dell server, and this is the output of ipmilocate:

Code:
robing KCS device using DMIDECODE... FAILED
Probing SMIC device using DMIDECODE... FAILED
Probing BT device using DMIDECODE... FAILED
Probing SSIF device using DMIDECODE... FAILED
Probing KCS device using SMBIOS... ERROR: internal error
Probing SMIC device using SMBIOS... ERROR: internal error
Probing BT device using SMBIOS... ERROR: internal error
Probing SSIF device using SMBIOS... ERROR: internal error
Probing KCS device using ACPI... ERROR: internal error
Probing SMIC device using ACPI... ERROR: internal error
Probing BT device using ACPI... ERROR: internal error
Probing SSIF device using ACPI... ERROR: internal error
Probing KCS device using PCI... FAILED
Probing SMIC device using PCI... FAILED
Probing BT device using PCI... FAILED
Probing SSIF device using PCI... FAILED
 

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654
@jyavenard : Ok so i have the same FAN issue so i installed new 9.2 portjail and installed freeipmi-1.4.5_1 in it. Thing is that it does nothing. It looks to me that it does not have access to the host system. Some commands will not throw any output. Using -h for remote connection is not quite possible since i have isolated connection from my workstation to ipmi interface.

I tried ipmi-locate but i got bunch of errors.

Code:
root@temp001:/ # ipmi-locate
Probing KCS device using DMIDECODE... done
IPMI Version: 2.0
IPMI locate driver: DMIDECODE
IPMI interface: KCS
BMC driver device:
BMC I/O base address: 0xCA2
Register spacing: 1

Probing SMIC device using DMIDECODE... FAILED
Probing BT device using DMIDECODE... FAILED
Probing SSIF device using DMIDECODE... FAILED
Probing KCS device using SMBIOS... ERROR: internal error
Probing SMIC device using SMBIOS... ERROR: internal error
Probing BT device using SMBIOS... ERROR: internal error
Probing SSIF device using SMBIOS... ERROR: internal error
Probing KCS device using ACPI... ERROR: internal error
Probing SMIC device using ACPI... ERROR: internal error
Probing BT device using ACPI... ERROR: internal error
Probing SSIF device using ACPI... ERROR: internal error
Probing KCS device using PCI... FAILED
Probing SMIC device using PCI... FAILED
Probing BT device using PCI... FAILED
Probing SSIF device using PCI... FAILED


I guess i am missing something ... Could you please elaborate with the steps? Thanks !
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
With whatever IPMI utility you're using (check its manual) you'll have to include the username and password, since direct access is only possible from the host system (and FreeNAS only includes very rudimentary stuff that doesn't even seem to recognize the Supermicor X10 IPMI)
 

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654
Like i said, it is freeipmi 1.4.5. I checked manual and also syntax, but either getting *nothing*, or error messages that connection is not possible (which i expected).

I am able to connect via IPMI view or web interface but neither one has a way to change the low RPM thresholds for FANs. But that's from my workstation running windows which has direct connection to IPMI interface.
I also tried ipmiutil which has a windows binaries but that one will throw me an "Wrong password" error even if the login and pass is correct.

I found several posts here that some people actually changed the thresholds for X10 boards but neither one contain steps how to do that except this thread, but it is not working for me :/
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
Like i said, it is freeipmi 1.4.5. I checked manual and also syntax, but either getting *nothing*, or error messages that connection is not possible (which i expected).

I am able to connect via IPMI view or web interface but neither one has a way to change the low RPM thresholds for FANs. But that's from my workstation running windows which has direct connection to IPMI interface.
I also tried ipmiutil which has a windows binaries but that one will throw me an "Wrong password" error even if the login and pass is correct.

I found several posts here that some people actually changed the thresholds for X10 boards but neither one contain steps how to do that except this thread, but it is not working for me :/

Odd. I'm currently writing a Supermicro X10 FAQ which is meant to include step-by-step instruction for performing the change. I'll skip ahead a bit and finish that portion and place it in this thread.
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
Like i said, it is freeipmi 1.4.5. I checked manual and also syntax, but either getting *nothing*, or error messages that connection is not possible (which i expected).

I am able to connect via IPMI view or web interface but neither one has a way to change the low RPM thresholds for FANs. But that's from my workstation running windows which has direct connection to IPMI interface.
I also tried ipmiutil which has a windows binaries but that one will throw me an "Wrong password" error even if the login and pass is correct.

I found several posts here that some people actually changed the thresholds for X10 boards but neither one contain steps how to do that except this thread, but it is not working for me :/

And here it is:

My server's fans keep spinning up and down
Fan thresholds are set to unrealistic values, how do I change them?
Setting IPMI sensor thresholds


Supermicro X10 motherboards have their fans monitored by the BMC, which automatically attempts to recover stalling (of the motor, not in the aerodynamic sense) fans by spinning them up to maximum (PWM set to 100% speed). This behavior is determined by the sensor thresholds.

Supermicro X10 motherboard fan profiles are controlled via IPMI. Unfortunately, only very basic functions are exposed via its web interface and Supermicro's own IPMI utility is superbly well hidden on Supermicro's website and uses Java. The pragmatists among us would complain about Java, use the application, and move on - for some reason (*cough* Java *cough*) Supermicro application and its nice GUI do not always work properly. For this reason, third-party universal IPMI tools are needed.

I will be using IPMIUTIL.
While I will provide the necessary steps and explain some options, I recommend you read through the appropriate man page sections (included in README.txt) to learn about the various options.

Download the appropriate version for your client computer's OS and browse to the appropriate folder using the command line. The following examples are from Windows 7 x64, but the application should display identical behavior on all OSes.

My IPMIUTIL folder is C:\Users\Eric\Desktop\IPMIUTIL

Run the following command to get a list of all sensors (Append "-g fan" if you only want to see fans. Similar strings can be used for other sensor types.):

Code:
C:\Users\Eric\Desktop\ipmiutil>   ipmiutil sensor -N *IP address* -U *Username* -P *Password* -c


The -c option presents the results in a much friendlier format than the default format.
Replace *IP address*, *Username* and *Password* with the appropriate values for your server's IPMI.

You'll get a list like this:

Code:
ipmiutil ver 2.93
isensor: version 2.93
Opening lan connection to node 192.168.1.15 ...
Connecting to node  192.168.1.15
-- BMC version 1.42, IPMI version 2.0
ID  | SDRType | Type            |SNum| Name             |Status| Reading
0004 | Full    | Temperature     | 01 | CPU Temp         | OK   | 37.00 C
0047 | Full    | Temperature     | 0b | System Temp      | OK   | 31.00 C
008a | Full    | Temperature     | 0c | Peripheral Temp  | OK   | 41.00 C
00cd | Full    | Temperature     | 0a | PCH Temp         | OK   | 48.00 C
0110 | Full    | Temperature     | 48 | VRM Temp         | OK   | 40.00 C
0153 | Full    | Temperature     | b0 | DIMMA1 Temp      | Absent | 0.00 na
0196 | Full    | Temperature     | b1 | DIMMA2 Temp      | OK   | 32.00 C
01d9 | Full    | Temperature     | b4 | DIMMB1 Temp      | Absent | 0.00 na
021c | Full    | Temperature     | b5 | DIMMB2 Temp      | OK   | 33.00 C
025f | Full    | Fan             | 41 | FAN1             | Absent | 0.00 na
02a2 | Full    | Fan             | 42 | FAN2             | Absent | 0.00 na
02e5 | Full    | Fan             | 43 | FAN3             | OK   | 1000.00 RPM
0328 | Full    | Fan             | 44 | FAN4             | OK   | 1000.00 RPM
036b | Full    | Fan             | 45 | FANA             | OK   | 1100.00 RPM
03ae | Full    | Voltage         | 20 | Vcpu             | OK   | 1.76 V
03f1 | Full    | Voltage         | 24 | VDIMM            | OK   | 1.45 V
0434 | Full    | Voltage         | 30 | 12V              | OK   | 12.00 V
0477 | Full    | Voltage         | 31 | 5VCC             | OK   | 4.97 V
04ba | Full    | Voltage         | 32 | 3.3VCC           | OK   | 3.34 V
04fd | Full    | Voltage         | 33 | VBAT             | OK   | 3.00 V
0540 | Full    | Voltage         | 35 | AVCC             | OK   | 3.33 V
0583 | Full    | Voltage         | 36 | VSB              | OK   | 3.28 V
05c6 | Full    | Platform Securi | aa | Chassis Intru    | OK   | 0.00 na
ipmiutil sensor, completed successfully

Take note of the SNums for the fans you want to edit (if you don't know which fans you want to edit, I recommend you check the IPMI log in the web interface to see which fans have sensor events being asserted).

Now, calculate the lowest and highest angular velocities your fan is rated to run at (check the manufacturer's specs). For instance, my Noctua NF-F12 IndustrialPPC 3000 PWM are rated at 750RPM +-20% at the low end, so 600RPM or less is an appropriate lower threshold value.

Take note of your results and input them in the following commmand:

Code:
C:\Users\Eric\Desktop\ipmiutil>     ipmiutil sensor -N *IP address* -U *Username* -P *Password* -n *snum* -l *lower threshold* -h *upper threshold*


-n selects the appropriate sensor, using its Snum
-l sets the lower thresholds - the input is the highest value, the other, lower thresholds are one notch lower each
-h sets the higher thresholds - the input is the lowest value, the other, higher thresholds are one notch higher each

Repeat this command for all fans who thresholds you wish to change.

Please note that specifying only -l without -h or vice versa will write 0 to the non-specified threshold! This will lead to unwanted behavior.
 

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654
Thanks a lot, anyway i am stuck on the first step. It is throwing on me the following message :/

E:\dl_temp\ipmiutil-2.9.4-win64>ipmiutil sensor -N xxx.xxx.xxx.xxx -U MyUsername -P IamSUREthePASSisRIGHT -c
ipmiutil ver 2.94
isensor: version 2.94
Opening lan connection to node xxx.xxx.xxx.xxx ...
Connecting to node xxx.xxx.xxx.xxx
GetSessChallenge: Invalid user name
ipmilan_open_session error, rv = 0x81
ipmilan Lost Arbitration
ipmi_open error = 129
ipmiutil sensor, Lost Arbitration

I am 100000000000% sure that the IP and credentials are correct since they are working via web interface and IPMI tool.

Isn't there some settings in bios or something blocking this?
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
It should be working... Try power cycling the IPMI, maybe that'll help.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
With whatever IPMI utility you're using (check its manual) you'll have to include the username and password, since direct access is only possible from the host system (and FreeNAS only includes very rudimentary stuff that doesn't even seem to recognize the Supermicor X10 IPMI)

Problem solved bro...

# kldload ipmi.ko
# ipmitool sdr list all

once ipmi.ko is loaded then ipmitool works fine from the FreeNAS machine. :)
 

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654
That piece of shit will not let me connect. I flashed IPMI firmware to latest version (just in case) and also tried to log in via ADMIN account ... still no luck, still the same error about invalid username.

Anyway after cyberjock's fix that "ipmi-sensors-config" is now working from the jail. Well, that command itself is working, but uploading new values for FAN RPM is not possible.

When i change any FAN RPM value to anything else, upload of the config will fail with a error.

Default values:
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Recoverable_Threshold 300.000000

Setting new value will throw an error:
Value '200.000000' for key 'Lower_Non_Recoverable_Threshold' in section '674_FAN1' cannot be encoded accurately, try another value
Even if i try to set some higher value, like 400, it will throw the same error.

But for example CPU temperatures i can change without problems.
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
That piece of shit will not let me connect. I flashed IPMI firmware to latest version (just in case) and also tried to log in via ADMIN account ... still no luck, still the same error about invalid username.

Anyway after cyberjock's fix that "ipmi-sensors-config" is now working from the jail. Well, that command itself is working, but uploading new values for FAN RPM is not possible.

When i change any FAN RPM value to anything else, upload of the config will fail with a error.

Default values:


Setting new value will throw an error:

Even if i try to set some higher value, like 400, it will throw the same error.

But for example CPU temperatures i can change without problems.

Right, ipmi-sensors-config is a bit stupid. Try doing it in increments of 50 until you find an acceptable value.

The problem is that IPMI doesn't encode "500" as "500", but as some lower-precision number, so not all integer values between 0 and 20k (random ceiling - never seen a 20k RPM PC fan and I hope never to hear one) are valid.
 

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654
Thanks ! .... I figured out that the correct values are 0, 150, 300, 450, 600 ... i've set:

## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Critical_Threshold 300.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Critical_Threshold 150.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Recoverable_Threshold 0.000000

I hope that the Lower_Non_Critical will not cause the full-speed action since my Noctua is running on ~200rpm when CPU is idle.

And now i am going to my bed since its almost 3AM here ... changing one stupid thing took me like 5 hours ... /facepalm

EDIT: I can confirm that the FAN is not acting like a crazy anymore. Based on the sensors it sits on 225RPM, it is marked yellow as "Lower Non-critical".

@Ericloewe @cyberjock : Thank for your help guys !!
 
Last edited:

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526

HolyK

Ninja Turtle
Moderator
Joined
May 26, 2011
Messages
654

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194

panz

Guru
Joined
May 24, 2013
Messages
556
Thanks ! .... I figured out that the correct values are 0, 150, 300, 450, 600 ... i've set:



I hope that the Lower_Non_Critical will not cause the full-speed action since my Noctua is running on ~200rpm when CPU is idle.

And now i am going to my bed since its almost 3AM here ... changing one stupid thing took me like 5 hours ... /facepalm

EDIT: I can confirm that the FAN is not acting like a crazy anymore. Based on the sensors it sits on 225RPM, it is marked yellow as "Lower Non-critical".

@Ericloewe @cyberjock : Thank for your help guys !!
I bought this case, that has a clever hardware solution to this annoying fan problem (watch from 4:20 and after)
View: http://youtu.be/TYpQ8Xq2ryg
 
Top