[Plugin] IPMI for unRAID 6.1+


Recommended Posts

I'm currently testing the fan control but it will only work with ASRock boards. I have compiled a list of some Supermicro commands I will post if others want to test.

 

The threshold values for your fan is set too low. That's the reason for the errors.

 

You can use the following commands to output your ipmi config to a file. Edit the file with a linux compatible text editor. Then save and commit the changes.

 

#output ipmi config
ipmi-sensors-config --filename=/boot/config/plugins/ipmi/ipmi.config --checkout

#save ipmi config
ipmi-sensors-config --filename=/boot/config/plugins/ipmi/ipmi.config --commit

I'm in the process of adding this to the plugin similar to editing a vm's xml

 

Awesome, thank you so much. I have the config file successfully exported, just need to get a proper word processor that can edit config files. It would make sense my fan range, because the ones I have are low RPM, between 650 and 1500 I believe.

 

So for editing the file I should just change the ran RPM range values?

 

For instance change:

 

Section 607_FAN1
## Possible values: Yes/No
Enable_All_Event_Messages                                                   Yes
## Possible values: Yes/No
Enable_Scanning_On_This_Sensor                                              Yes
## Possible values: Yes/No
Enable_Assertion_Event_Lower_Critical_Going_Low                             Yes
## Possible values: Yes/No
Enable_Assertion_Event_Lower_Non_Recoverable_Going_Low                      Yes
## Possible values: Yes/No
Enable_Assertion_Event_Upper_Critical_Going_High                            Yes
## Possible values: Yes/No
Enable_Assertion_Event_Upper_Non_Recoverable_Going_High                     Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Lower_Critical_Going_Low                           Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Lower_Non_Recoverable_Going_Low                    Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Upper_Critical_Going_High                          Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Upper_Non_Recoverable_Going_High                   Yes
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Critical_Threshold                                                700.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Critical_Threshold                                                    500.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Recoverable_Threshold                                             300.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Non_Critical_Threshold                                                25300.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Critical_Threshold                                                    25400.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Non_Recoverable_Threshold                                             25500.000000
## Give valid input for sensor type = Fan; units = RPM; 'None' to not use hysteresis
Positive_Going_Threshold_Hysteresis                                         100.000000
## Give valid input for sensor type = Fan; units = RPM; 'None' to not use hysteresis
Negative_Going_Threshold_Hysteresis                                         100.000000
EndSection 

 

To something along the lines of:

Section 607_FAN1
## Possible values: Yes/No
Enable_All_Event_Messages                                                   Yes
## Possible values: Yes/No
Enable_Scanning_On_This_Sensor                                              Yes
## Possible values: Yes/No
Enable_Assertion_Event_Lower_Critical_Going_Low                             Yes
## Possible values: Yes/No
Enable_Assertion_Event_Lower_Non_Recoverable_Going_Low                      Yes
## Possible values: Yes/No
Enable_Assertion_Event_Upper_Critical_Going_High                            Yes
## Possible values: Yes/No
Enable_Assertion_Event_Upper_Non_Recoverable_Going_High                     Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Lower_Critical_Going_Low                           Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Lower_Non_Recoverable_Going_Low                    Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Upper_Critical_Going_High                          Yes
## Possible values: Yes/No
Enable_Deassertion_Event_Upper_Non_Recoverable_Going_High                   Yes
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Critical_Threshold                                                400.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Critical_Threshold                                                    200.000000
## Give valid input for sensor type = Fan; units = RPM
Lower_Non_Recoverable_Threshold                                             100.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Non_Critical_Threshold                                                1600.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Critical_Threshold                                                    1700.000000
## Give valid input for sensor type = Fan; units = RPM
Upper_Non_Recoverable_Threshold                                            1800.000000
## Give valid input for sensor type = Fan; units = RPM; 'None' to not use hysteresis
Positive_Going_Threshold_Hysteresis                                         100.000000
## Give valid input for sensor type = Fan; units = RPM; 'None' to not use hysteresis
Negative_Going_Threshold_Hysteresis                                         100.000000
EndSection 

 

EDIT: Worked like a charm! My fans are finally at a steady speed!!

Link to comment

Yes set the threshold rpms to something like that. So it's lower than your lowest fan rpm. I set mine to 0 for certain fans and set deassertion to no. Then they can turn off with the fan control.

 

You might check that the values persist next time you reboot. Don't bmc don't save them.

Link to comment

Hi dmacias, no issues with your great plugin on my ASRock main server but some strange behavior on my Supermicro backup machine (see my signature for detail information). I have changed the values like so:

	Lower_Non_Critical_Threshold                                                0.000000
Lower_Critical_Threshold                                                    0.000000
Lower_Non_Recoverable_Threshold                                             0.000000

These changes do survive a rebooted so all great here.

 

My issue is that the command for the fan control isn't working properly which might be linked to the fact that I haven't attached PWM fans?

root@Tower2:~# ipmitool raw 0x30 0x91 0x5A 0x3 0x10 0xff
-bash: ipmitool: command not found

 

Slightly more success here:

root@Tower2:~# ipmi-raw 0x30 0x91 0x5A 0x3 0x11 0xff
Invalid netfn value

 

Do you have any further guidance?

Link to comment

Hi dmacias, no issues with your great plugin on my ASRock main server but some strange behavior on my Supermicro backup machine (see my signature for detail information). I have changed the values like so:

	Lower_Non_Critical_Threshold                                                0.000000
Lower_Critical_Threshold                                                    0.000000
Lower_Non_Recoverable_Threshold                                             0.000000

These changes do survive a rebooted so all great here.

 

My issue is that the command for the fan control isn't working properly which might be linked to the fact that I haven't attached PWM fans?

root@Tower2:~# ipmitool raw 0x30 0x91 0x5A 0x3 0x10 0xff
-bash: ipmitool: command not found

 

Slightly more success here:

root@Tower2:~# ipmi-raw 0x30 0x91 0x5A 0x3 0x11 0xff
Invalid netfn value

 

Do you have any further guidance?

ipmitool isn't included in the plugin since it uses freeipmi. However the package is listed in the OP. I'll edit the Supermicro post and change the commands to use ipmi-raw. But basically you can convert them from ipmitool to ipmi-raw by just removing all the 0x and adding a 00 in place of raw like below. Also make sure there are two bytes for single digits. 1 = 01

 

ipmitool raw 0x3a 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

ipmi-raw 00 3a 01 00 00 00 00 00 00 00 00

 

Also, the last couple Supermicro commands look most promising and the three from the script excerpt.

 

Edit: What are the names of you ASRock fans?

Link to comment

Here is what I am getting:

root@Tower2:~# ipmi-raw 00 3a 01 00 00 00 00 00 00 00 00
rcvd: 01 C1 
root@Tower2:~# ipmi-sensors -t fan
ID  | Name  | Type | Reading    | Units | Event
205 | FAN 1 | Fan  | 450.00     | RPM   | 'OK'
272 | FAN 2 | Fan  | 525.00     | RPM   | 'OK'
339 | FAN 3 | Fan  | N/A        | RPM   | N/A
406 | FAN 4 | Fan  | 525.00     | RPM   | 'OK'
473 | FAN A | Fan  | 1575.00    | RPM   | 'OK'

 

Only FAN1 seems to be reacting:

root@Tower2:~# ipmi-raw 00 3a 01 64 64 64 64 64 64 64 64
rcvd: 01 C1 
root@Tower2:~# ipmi-sensors -t fan
ID  | Name  | Type | Reading    | Units | Event
205 | FAN 1 | Fan  | 525.00     | RPM   | 'OK'
272 | FAN 2 | Fan  | 525.00     | RPM   | 'OK'
339 | FAN 3 | Fan  | N/A        | RPM   | N/A
406 | FAN 4 | Fan  | 525.00     | RPM   | 'OK'
473 | FAN A | Fan  | 1575.00    | RPM   | 'OK'

 

I have PWM fans in my main server (with the ASRock board). These are all bequiet Silent Wings 2. The non-PWM fans in my backup server (the one with the Supermicro board) are the fans that came with the Fractal Design case.

Link to comment

Yes set the threshold rpms to something like that. So it's lower than your lowest fan rpm. I set mine to 0 for certain fans and set deassertion to no. Then they can turn off with the fan control.

 

You might check that the values persist next time you reboot. Don't bmc don't save them.

 

So am I correct in that the Fan Control doesn't actually work for Supermicro Boards? Ever since I lowered the threshhold down, it seems that my drives are hotter now that my fans are spinning up to their max all the time. Is there a way I can manually increase fan speed or somehow get fan control working?

Link to comment

Here's some super micro commands I compiled if anyone wants to test and report back.

Fan Speed CLI ATEN X9
ipmi-raw 00 30 91 5A 03 00 00
ipmi-raw 00 30 91 5A 03 01 00
ipmi-raw 00 30 91 5A 03 02 00
ipmi-raw 00 30 91 5A 03 03 00

One is for Write and one is for Read.
// for full speed
ipmi-raw 00 30 91 5A 03 10 ff
ipmi-raw 00 30 91 5A 03 11 ff

//for half speed
ipmi-raw 00 30 91 5A 03 10 7f
ipmi-raw 00 30 91 5A 03 11 7f

Set/Get Fan speed mode
Input : NetFn 30
Cmd 45
Data1 Get/Set ->[0/1]
Data2 Fan Speed Mode, standard/full/optimal -> [0/1/2] // for Set only

Output: Completion Code 00

Example: Set fans to full speed would be #ipmi-raw 00 30 45 01 01

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

30 70 66 Fan Control Manually (X10)
#100% duty cycle
ipmi-raw 00 30 70 66 01 00 64
     
#50% duty cycle
ipmi-raw 00 30 70 66 01 00 32
The last value is the duty cycle, with max = 64, and minimum = 0.
You can set the duty cycle in 64 steps, between minimum and full speed.

 

I'd love to test these out for you, I'm just unfamiliar with how to do so. Where can I implement these and report back to you. That same config file you had me export earlier?

Link to comment

 

 

Here's some super micro commands I compiled if anyone wants to test and report back.

Fan Speed CLI ATEN X9
ipmi-raw 00 30 91 5A 03 00 00
ipmi-raw 00 30 91 5A 03 01 00
ipmi-raw 00 30 91 5A 03 02 00
ipmi-raw 00 30 91 5A 03 03 00

One is for Write and one is for Read.
// for full speed
ipmi-raw 00 30 91 5A 03 10 ff
ipmi-raw 00 30 91 5A 03 11 ff

//for half speed
ipmi-raw 00 30 91 5A 03 10 7f
ipmi-raw 00 30 91 5A 03 11 7f

Set/Get Fan speed mode
Input : NetFn 30
Cmd 45
Data1 Get/Set ->[0/1]
Data2 Fan Speed Mode, standard/full/optimal -> [0/1/2] // for Set only

Output: Completion Code 00

Example: Set fans to full speed would be #ipmi-raw 00 30 45 01 01

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

30 70 66 Fan Control Manually (X10)
#100% duty cycle
ipmi-raw 00 30 70 66 01 00 64
     
#50% duty cycle
ipmi-raw 00 30 70 66 01 00 32
The last value is the duty cycle, with max = 64, and minimum = 0.
You can set the duty cycle in 64 steps, between minimum and full speed.

 

I'd love to test these out for you, I'm just unfamiliar with how to do so. Where can I implement these and report back to you. That same config file you had me export earlier?

The ipmi-sensors-config command it's only for config options. I won't change fan speeds. If your drives are hot with fans at full speed, I'd look at the air flow in the case and over the drives.

 

The ipmi-raw commands are entered in the command line. So you'd have to run one of the commands, it should give a received response or error and then see if the fans respond as intended. You can run ipmi-sensors -t fan to check fan speeds.

Link to comment

 

 

Here's some super micro commands I compiled if anyone wants to test and report back.

Fan Speed CLI ATEN X9
ipmi-raw 00 30 91 5A 03 00 00
ipmi-raw 00 30 91 5A 03 01 00
ipmi-raw 00 30 91 5A 03 02 00
ipmi-raw 00 30 91 5A 03 03 00

One is for Write and one is for Read.
// for full speed
ipmi-raw 00 30 91 5A 03 10 ff
ipmi-raw 00 30 91 5A 03 11 ff

//for half speed
ipmi-raw 00 30 91 5A 03 10 7f
ipmi-raw 00 30 91 5A 03 11 7f

Set/Get Fan speed mode
Input : NetFn 30
Cmd 45
Data1 Get/Set ->[0/1]
Data2 Fan Speed Mode, standard/full/optimal -> [0/1/2] // for Set only

Output: Completion Code 00

Example: Set fans to full speed would be #ipmi-raw 00 30 45 01 01

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

30 70 66 Fan Control Manually (X10)
#100% duty cycle
ipmi-raw 00 30 70 66 01 00 64
     
#50% duty cycle
ipmi-raw 00 30 70 66 01 00 32
The last value is the duty cycle, with max = 64, and minimum = 0.
You can set the duty cycle in 64 steps, between minimum and full speed.

 

I'd love to test these out for you, I'm just unfamiliar with how to do so. Where can I implement these and report back to you. That same config file you had me export earlier?

The ipmi-sensors-config command it's only for config options. I won't change fan speeds. If your drives are hot with fans at full speed, I'd look at the air flow in the case and over the drives.

 

The ipmi-raw commands are entered in the command line. So you'd have to run one of the commands, it should give a received response or error and then see if the fans respond as intended. You can run ipmi-sensors -t fan to check fan speeds.

 

The fans weren't running at full speed, which is why the HD temp was spiking. I just used

ipmi-raw 00 30 45 01 01 and it put them all up to full speed, worked perfectly.

 

If I want to use your temperature-dependent commands I just put this into the command line like so?

 

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

 

Link to comment

 

 

 

 

Here's some super micro commands I compiled if anyone wants to test and report back.

Fan Speed CLI ATEN X9
ipmi-raw 00 30 91 5A 03 00 00
ipmi-raw 00 30 91 5A 03 01 00
ipmi-raw 00 30 91 5A 03 02 00
ipmi-raw 00 30 91 5A 03 03 00

One is for Write and one is for Read.
// for full speed
ipmi-raw 00 30 91 5A 03 10 ff
ipmi-raw 00 30 91 5A 03 11 ff

//for half speed
ipmi-raw 00 30 91 5A 03 10 7f
ipmi-raw 00 30 91 5A 03 11 7f

Set/Get Fan speed mode
Input : NetFn 30
Cmd 45
Data1 Get/Set ->[0/1]
Data2 Fan Speed Mode, standard/full/optimal -> [0/1/2] // for Set only

Output: Completion Code 00

Example: Set fans to full speed would be #ipmi-raw 00 30 45 01 01

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

30 70 66 Fan Control Manually (X10)
#100% duty cycle
ipmi-raw 00 30 70 66 01 00 64
     
#50% duty cycle
ipmi-raw 00 30 70 66 01 00 32
The last value is the duty cycle, with max = 64, and minimum = 0.
You can set the duty cycle in 64 steps, between minimum and full speed.

 

I'd love to test these out for you, I'm just unfamiliar with how to do so. Where can I implement these and report back to you. That same config file you had me export earlier?

The ipmi-sensors-config command it's only for config options. I won't change fan speeds. If your drives are hot with fans at full speed, I'd look at the air flow in the case and over the drives.

 

The ipmi-raw commands are entered in the command line. So you'd have to run one of the commands, it should give a received response or error and then see if the fans respond as intended. You can run ipmi-sensors -t fan to check fan speeds.

 

The fans weren't running at full speed, which is why the HD temp was spiking. I just used

ipmi-raw 00 30 45 01 01 and it put them all up to full speed, worked perfectly.

 

If I want to use your temperature-dependent commands I just put this into the command line like so?

 

if ($max_temp > 39) {
  # at least one hard drive is 40 deg C or higher
  # set fan speed control to Full
  `ipmi-raw 00 30 45 01 01`
}
elsif ($max_temp == 39 ){
  # maximum drive temperature is 39 deg C
  # set fan speed to 50% duty cycle
  `ipmi-raw 00 30 70 66 01 00 32`
}

else {
  # all hard drive temperatures are 38 deg C or cooler
  # set fan speed control to Optimal
  `ipmi-raw 00 30 45 01 02`
}

 

Nice. Did you try any other commands? What board do you have? Also what does ipmi-fru display?

 

That was an excerpt from a script I found. Just examples to try. But I can add functionality to my ipmifan script if we can figure out the right codes.

 

It would be nice if this command could control particular fans. Maybe if you change the 00 32 to 01 32 or 02 32. You could try setting it to 64 for full fan speed too.

ipmi-raw 00 30 70 66 01 00 32

 

Link to comment

IPMI fru displays

 

FRU Inventory Device: BMC FRU (ID 00h)

  FRU Board Manufacturing Date/Time: 01/01/96 - 05:00:00
  FRU Board Manufacturer: Supermicro
  FRU Board Serial Number:

  FRU Product Serial Number:

 

My board is a Supermicro X11SSM-F http://www.supermicro.com/products/motherboard/Xeon/C236_C232/X11SSM-F.cfm

 

 

ipmi-raw 00 30 70 66 01 00 32

This returned "rcvd 70 00" but didn't change any of my fan speeds. The same with 01 32 and 02 32. My fans are currently running at full speed, and this should have turned them down to half right?

 

root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 10 ff
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 11 ff
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 01
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Threshold'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A
root@NeverlandUNRAID:~# ipmi-fru
FRU Inventory Device: BMC FRU (ID 00h)

  FRU Board Manufacturing Date/Time: 01/01/96 - 05:00:00
  FRU Board Manufacturer: Supermicro
  FRU Board Serial Number:

  FRU Product Serial Number:
root@NeverlandUNRAID:~# ipmi-raw 00 30 70 66 01 00 32
rcvd: 70 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 70 66 01 01 32
rcvd: 70 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 70 66 01 02 32
rcvd: 70 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 70 66 01 00 32
rcvd: 70 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 02
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 70 66 01 00 20
rcvd: 70 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Threshold'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A

 

I tried all the above commands but none of them took my fans off of full-blast.

 

I also tried the following and it doesn't seem to have any effect either.

 

//for half speed
ipmi-raw 00 30 91 5A 03 10 7f
ipmi-raw 00 30 91 5A 03 11 7f

Link to comment

This one might work

ipmi-raw 00 30 45 01 02

 

hmm nope, looks like they are still sitting at 1900, 1400, and 1300:

 

root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 02
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Thresh                   old'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Threshold'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A

Link to comment

 

 

This one might work

ipmi-raw 00 30 45 01 02

 

hmm nope, looks like they are still sitting at 1900, 1400, and 1300:

 

root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 02
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Thresh                   old'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'At or Above (>=) Upper Critical Threshold'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A

 

I would try adjusting your thresholds with the ipmi-sensors-config command again. Your upper critical is set too low. Should be 2000 or higher given your fan speed. A thresh too low can cause fans to rev up too. Any error or bad fan and they all rev up.

Link to comment

 

I would try adjusting your thresholds with the ipmi-sensors-config command again. Your upper critical is set too low. Should be 2000 or higher given your fan speed. A thresh too low can cause fans to rev up too. Any error or bad fan and they all rev up.

 

Yeah I noticed that one was pushing the higher-end of it's RPM limit. I'll have to look into that, because I believe that's the 140mm fan which should have a lower RPM limit. I'll clear that up and see if it fixes it.

 

I set the upper limits to 2100, 2300, 2500 for each fan, and the lower to 300, 200, 100. I went back and re-tried the commands and it still didn't have an effect.

Link to comment

I have finally found some raw commands to control the fans of my Supermicro X9DR7-LN4F. I can't control individial fans, but the two groups.

This is for the motherboards that use the Nuvoton WPCM450R chip with Aten firmware.

 

For this to work I had to enable the full fan mode. This is the command:

 

ipmi-raw 00 30 45 01 01

 

I found out that I have two groups.

 

Group 1: Fan 1-6

Group 2: Fan A&B

 

This is the command to set the first group to lowest speed

 

ipmi-raw 00 30 91 5A 03 00 01

 

This is the command to set the second group to lowest speed

 

ipmi-raw 00 30 91 5A 03 00 02

 

This is the command to set both groups to lowest speed

 

ipmi-raw 00 30 91 5A 03 00 03

 

I also found out how to enable full speed.

 

This is the command to set the first group to full speed

 

ipmi-raw 00 30 91 5A 03 10 ff

 

This is the command to set the second group to full speed

 

ipmi-raw 00 30 91 5A 03 11 ff

 

I also found out how to set the fans to medium speed, but then I had to power down the server and turn off the PSU switch to get it to change the fan speed again.

 

ipmi-raw 00 30 91 5A 04 00 03

 

For the above the last digit is the group. 01 for group 1, 02 for group 2 and 03 for both groups.

I have tried a lot of combinations, but nothing worked to get it out of this mode.

 

For changing/getting the fan mode, this is the commands 

 

ipmi-raw 00 30 45 00
Gets the mode 0/1/2/4  Standard/Full/Optimal/Heavy IO

ipmi-raw 00 30 45 01 00
Sets the mode to Standard

ipmi-raw 00 30 45 01 01
Sets the mode to Full

ipmi-raw 00 30 45 01 02
Sets the mode to Optimal

ipmi-raw 00 30 45 01 04
Sets the mode to Heavy I/O

 

I'm tired of messing around trying to control individual fans, so I think I'll send Supermicro an email and ask  :)

Link to comment

So I tried a bunch of these to see if they had any effect and they didn't. Here are the returns I got from inputting them.

 

root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 01
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 01
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 02
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 03
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'OK'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 02
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 00
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 00
rcvd: 45 00 00

Link to comment

So I tried a bunch of these to see if they had any effect and they didn't. Here are the returns I got from inputting them.

 

root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 01
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 01
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 02
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 91 5A 03 00 03
rcvd: 91 00
root@NeverlandUNRAID:~# ipmi-sensors -t fan
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'OK'
674 | FAN2 | Fan  | 1400.00    | RPM   | 'OK'
741 | FAN3 | Fan  | N/A        | RPM   | N/A
808 | FAN4 | Fan  | 1300.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 02
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 01 00
rcvd: 45 00
root@NeverlandUNRAID:~# ipmi-raw 00 30 45 00
rcvd: 45 00 00

 

Those commands won't work on your board as it's X11 and use a different chip.

Might be better to email supermicro directly and ask for the raw commands.

It might be that the fans are on full mode since you have two fan ports not connected. That is the case here if I remove one fan.

Link to comment

 

Those commands won't work on your board as it's X11 and use a different chip.

Might be better to email supermicro directly and ask for the raw commands.

It might be that the fans are on full mode since you have two fan ports not connected. That is the case here if I remove one fan.

 

I figured it might be the case but was worth trying. I'll contact them and see if I can get the raw commands. When I first installed the fans, the RPM threshholds were out of the range of the plugin, which caused them to cycle up and down. When I fixed this, they stayed at their lowest setting, and I found one command a few pages ago that put them on their highest, and they haven't come down since. I'll see if I can get the raw commands from them though.

Link to comment

Thanks for all the info and testing saarg and cyriouslydylan. You can reset the bmc without having to pull the plug.

bmc-device --warm-reset

 

Also saarg, I think group commands would be the most beneficial. Since FANA&B are usually CPU, group 1 could be throttled based on drive temps.

 

Link to comment

Thanks for all the info and testing saarg and cyriouslydylan. You can reset the bmc without having to pull the plug.

bmc-device --warm-reset

 

Also saarg, I think group commands would be the most beneficial. Since FANA&B are usually CPU, group 1 could be throttled based on drive temps.

 

Fan A&B is tied to the temperature of the PCH chip on my motherboard. Setting the heavy I/O mode turns FAN A&B to full. But I guess this might be different on each motherboard.

 

Good to know about the warm reset. I think I did a cold reset and it didn't work, but I did too much in a short time so I might have been thinking I did, but didn't :)

I'll keep you informed about the answer from supermicro.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.