[Plugin] IPMI for unRAID 6.1+


Recommended Posts

So I opened up my server last night and you are right - the fans are all 3-pin and not pwm fans.  I'm planning on upgrading all of them and will do more testing once that has happened.  Thanks for the guidance and am really looking forward to the forthcoming fan control feature.  Six 5000 RPM fans running at full speed is EXTREMELY loud!

Link to comment

 

 

So I opened up my server last night and you are right - the fans are all 3-pin and not pwm fans.  I'm planning on upgrading all of them and will do more testing once that has happened.  Thanks for the guidance and am really looking forward to the forthcoming fan control feature.  Six 5000 RPM fans running at full speed is EXTREMELY loud!

I bet that's loud. Mine only go up to 1500, l believe.

 

I took a look at your case and it does say right on the page 5000 rpm pwm fans. I also looked at your motherboard manual and it says all fans default to Full On. But the manual didn't say what other values there are other than Full On. And didn't show any smart fan settings.

 

Also you can check just the fans after you try the raw command like this

ipmi-raw 00 3a 01 00 00 32 00 00 00 00 00
ipmi-sensors -t fan

Link to comment

So I opened up my server last night and you are right - the fans are all 3-pin and not pwm fans.  I'm planning on upgrading all of them and will do more testing once that has happened.  Thanks for the guidance and am really looking forward to the forthcoming fan control feature.  Six 5000 RPM fans running at full speed is EXTREMELY loud!

Could you tell me what the output of "ipmi-sensors -t fan".  Since you have more fans connections than I do, I'd like to know the name of the other 2 fans since the ipmi-raw command has 8 values. Here's mine.

root@server:~# ipmi-sensors -t fan
ID | Name      | Type | Reading    | Units | Event
13 | CPU_FAN1  | Fan  | 1100.00    | RPM   | 'OK'
14 | REAR_FAN1 | Fan  | 800.00     | RPM   | 'OK'
15 | FRNT_FAN1 | Fan  | N/A        | RPM   | N/A
16 | FRNT_FAN2 | Fan  | 800.00     | RPM   | 'OK'
17 | REAR_FAN2 | Fan  | N/A        | RPM   | N/A
18 | CPU_FAN2  | Fan  | N/A        | RPM   | N/A
root@server:~#

Link to comment

Could you tell me what the output of "ipmi-sensors -t fan".  Since you have more fans connections than I do, I'd like to know the name of the other 2 fans since the ipmi-raw command has 8 values. Here's mine.

Sure.  Here you go:

 

root@Tower:~# ipmi-sensors -t fan
ID | Name       | Type | Reading    | Units | Event
17 | CPU_FAN1_1 | Fan  | N/A        | RPM   | N/A
18 | CPU_FAN2_1 | Fan  | N/A        | RPM   | N/A
19 | REAR_FAN1  | Fan  | 0.00       | RPM   | 'At or Below (<=) Lower Non-Critical Threshold'
20 | REAR_FAN2  | Fan  | 0.00       | RPM   | 'At or Below (<=) Lower Non-Critical Threshold'
21 | FRNT_FAN1  | Fan  | N/A        | RPM   | N/A
22 | FRNT_FAN2  | Fan  | N/A        | RPM   | N/A
23 | FRNT_FAN3  | Fan  | N/A        | RPM   | N/A
24 | FRNT_FAN4  | Fan  | 2900.00    | RPM   | 'OK'
25 | CPU_FAN1_2 | Fan  | N/A        | RPM   | N/A
26 | CPU_FAN2_2 | Fan  | N/A        | RPM   | N/A

 

Three of my front four fans are still connected to the drive array backplane power (not the motherboard) which is why only FRNT_FAN4 is reporting readings.  Not sure why the two REAR_FANs are showing zero, since they are definitely running.

 

Hope this helps.

Link to comment

Thanks. Since CPU_FAN1_2 and CPU_FAN2_2 are 3pin and are last in ipmi-sensors list that's good. I already cut the fan page down to 8 possible fans since there's only 8 values. So that works out since they aren't controllable. When you get some 4pin pwm fans you'll have to do some testing and see if the fans and values below are a match.

 

ipmi-raw 00 3a 01 00 00 00 00 00 00 00 00
ipmi-raw 00 3a 01 AA BB CC DD EE FF GG HH

00 = smartfan mode
01 - 0x64  = 1% - 100%

'CPU_FAN1_1'  => 'AA',
'CPU_FAN2_1'  => 'BB',
'REAR_FAN1' => 'CC',
'REAR_FAN2' => 'DD',
'FRNT_FAN1' => 'EE',
'FRNT_FAN2' => 'FF',
'FRNT_FAN3' => 'GG',
'FRNT_FAN4' => 'HH'

 

Link to comment
  • 2 weeks later...

Hi dmacias,

 

I followed CHBMB's instructions:

  https://www.linuxserver.io/index.php/2015/12/14/creating-an-unraid-virtual-machine-to-run-on-an-unraid-host/

to install 6.2 b21 as a guest in 6.1.9.  There were a few extra difficulties I talked about here:

  https://lime-technology.com/forum/index.php?topic=36768.msg462285#msg462285

but it works great for testing plugins and such.

 

So I installed the IPMI plugin in the guest VM, thinking it would be able to access the IPMI system over the network and display temperature info.  But the system slowed to a crawl and started dumping these messages in the syslog:

Apr  7 18:02:31 TowerVM kernel: x86/PAT: ipmi-fru:3178 map pfn expected mapping type uncached-minus for [mem 0x7ffe2000-0x7ffe2fff], got write-back
Apr  7 18:03:39 TowerVM kernel: x86/PAT: ipmi-sensors:3400 map pfn expected mapping type uncached-minus for [mem 0x7ffe2000-0x7ffe2fff], got write-back

 

And these on the console:

modprobe: ERROR: could not insert 'ipmi_si' : No such device
Caching SDR repository information: /root/.freeipmi/sdr-cache/sdr-cache-TowerVM.
ipmi_sdr_cache_create: internal IPMI error

 

I had to uninstall it from the VM's console to revive the UI:

  plugin remove ipmi.plg

 

Do you know if it would be possible to get the plugin to work in a VM?  This isn't critical or anything, but it would be cool :)

Link to comment

I will work fine in a vm. I already had a fix in place.  I just had added another condition but didn't enclose in braces.  I updated the plugin.  Unlike ipmitool, freeipmi doesn't have a variable for local timeout.  I think its set to 20 seconds.  That's the reason the webgui becomes slow.

 

Edit: I also setup a couple VM's for testing. My board doesn't support vx-d  and only one usb controller so I can't passthrough a usb. And if I forget and leave the usb in, then a reboot will cause problems.  So I just left the VM image named UNRAID and boot directly from the image using the usb option for hard drive in 6.2 vm manager. I can't start the array in the vm but I can test things and compile packages.

Link to comment

OK, thanks!  Since it works for you, I pushed through the delays until I could enable the IPMI network connection and set the ip address, username and password.  Once the connection was successful the GUI sped back up.

 

However, I'm seeing these two lines added to the syslog every 10 seconds, any idea how to stop that?

 

Apr  7 21:40:10 TowerVM kernel: IPMI System Interface driver.
Apr  7 21:40:10 TowerVM kernel: ipmi_si: Unable to find any System Interface(s)
Apr  7 21:40:20 TowerVM kernel: IPMI System Interface driver.
Apr  7 21:40:20 TowerVM kernel: ipmi_si: Unable to find any System Interface(s)
Apr  7 21:40:31 TowerVM kernel: IPMI System Interface driver.
Apr  7 21:40:31 TowerVM kernel: ipmi_si: Unable to find any System Interface(s)
Apr  7 21:40:41 TowerVM kernel: IPMI System Interface driver.
Apr  7 21:40:41 TowerVM kernel: ipmi_si: Unable to find any System Interface(s)

 

Also, even though I was able to select which temp/fan sensors to display, there are no temp/fan speeds shown in the footer.  Have I forgotten a setting somewhere?  The readings *do* show up on the Tools -> IPMI page, so it is able to get the data.

 

Here's my ipmi.cfg if it helps:

 

SERVICE="disable"
IPMIPOLL="15"
NETWORK="enable"
LOCAL="disable"
IPADDR="192.168.10.50"
USER="admin"
PASSWORD="***"
IPMISELD="disable"
DISP_TEMP1="3232238130_27"
DISP_TEMP2="3232238130_30"
DISP_FAN1="3232238130_21"
DISP_FAN2="3232238130_19"
IPMIFAN="disable"
IPMIBOARD=""

 

Actually, I went ahead and attached my diagnostics in case you want to poke around.

towervm-diagnostics-20160407-2156.zip

Link to comment

I updated the plugin last night. That will get rid of the delays. I get the same in the log and no footer though. The footer worked before so I'll figure out what I broke. The log is a result of it checking for local ipmi by getting a result from modprobe. I'll try to suppress that or figure out a different way to check.

 

Link to comment

Cool, at least we are seeing the same things :)

 

Do we have the option of not loading "modprobe ipmi_si" for network installs?

Yes that what I did to fix it.  Not check for ipmi if network is enabled.  The footer not working was because I changed the separator for the long ip and sensor id to an underscore instead of a dash and forgot one area of code.  I'll update later today maybe with much more.

Link to comment

 

 

I'm trying to get this to work on my Supermicro X11SSM-F and I don't seem to be having any luck. Could anyone point me in the right direction?

 

Try ipmi-sensors from the command line. What does it show?

 

"-bash: ipmi-sensors: command not found"

 

I didn't have the ipmi plugin installed, but when I do install it I get this message repeating constantly:

 

"-u: ipmi-fru: invalid hostname"

 

Apologies, I'm dumb. I just got the command to work:

 

ID   | Name            | Type              | Reading    | Units | Event
4    | CPU Temp        | Temperature       | 28.00      | C     | 'OK'
71   | PCH Temp        | Temperature       | 34.00      | C     | 'OK'
138  | System Temp     | Temperature       | 27.00      | C     | 'OK'
205  | Peripheral Temp | Temperature       | 31.00      | C     | 'OK'
272  | VcpuVRM Temp    | Temperature       | 31.00      | C     | 'OK'
339  | DIMMA1 Temp     | Temperature       | 27.00      | C     | 'OK'
406  | DIMMA2 Temp     | Temperature       | N/A        | C     | N/A
473  | DIMMB1 Temp     | Temperature       | 28.00      | C     | 'OK'
540  | DIMMB2 Temp     | Temperature       | N/A        | C     | N/A
607  | FAN1            | Fan               | 900.00     | RPM   | 'OK'
674  | FAN2            | Fan               | 800.00     | RPM   | 'OK'
741  | FAN3            | Fan               | N/A        | RPM   | N/A
808  | FAN4            | Fan               | 800.00     | RPM   | 'OK'
875  | FANA            | Fan               | N/A        | RPM   | N/A
942  | 12V             | Voltage           | 12.13      | V     | 'OK'
1009 | 5VCC            | Voltage           | 4.95       | V     | 'OK'
1076 | 3.3VCC          | Voltage           | 3.38       | V     | 'OK'
1143 | VBAT            | Voltage           | 3.08       | V     | 'OK'
1210 | VCPU            | Voltage           | 0.86       | V     | 'OK'
1277 | VDIMMAB         | Voltage           | 1.19       | V     | 'OK'
1344 | 5VSB            | Voltage           | 5.00       | V     | 'OK'
1411 | 3.3VSB          | Voltage           | 3.21       | V     | 'OK'
1478 | VBMC 1.2V       | Voltage           | 1.20       | V     | 'OK'
1545 | VPCH 1.0V       | Voltage           | 1.00       | V     | 'OK'
1612 | Chassis Intru   | Physical Security | N/A        | N/A   | 'OK'

Link to comment

 

 

I'm trying to get this to work on my Supermicro X11SSM-F and I don't seem to be having any luck. Could anyone point me in the right direction?

 

Try ipmi-sensors from the command line. What does it show?

 

"-bash: ipmi-sensors: command not found"

 

I didn't have the ipmi plugin installed, but when I do install it I get this message repeating constantly:

 

"-u: ipmi-fru: invalid hostname"

Did the plugin show any errors when you installed it? Also what version of unRAID?

Here's the link

https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg

Link to comment

 

 

 

 

I'm trying to get this to work on my Supermicro X11SSM-F and I don't seem to be having any luck. Could anyone point me in the right direction?

 

Try ipmi-sensors from the command line. What does it show?

 

"-bash: ipmi-sensors: command not found"

 

I didn't have the ipmi plugin installed, but when I do install it I get this message repeating constantly:

 

"-u: ipmi-fru: invalid hostname"

 

Did you set up networking? You only need that for remote ipmi monitoring e.g. another machine on the network.

Link to comment

 

 

I'm trying to get this to work on my Supermicro X11SSM-F and I don't seem to be having any luck. Could anyone point me in the right direction?

 

Try ipmi-sensors from the command line. What does it show?

 

"-bash: ipmi-sensors: command not found"

 

I didn't have the ipmi plugin installed, but when I do install it I get this message repeating constantly:

 

"-u: ipmi-fru: invalid hostname"

Did the plugin show any errors when you installed it? Also what version of unRAID?

Here's the link

https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg

 

I reinstalled it and was able to get it to work, ipmi-sensors returns this:

ID   | Name            | Type              | Reading    | Units | Event
4    | CPU Temp        | Temperature       | 28.00      | C     | 'OK'
71   | PCH Temp        | Temperature       | 34.00      | C     | 'OK'
138  | System Temp     | Temperature       | 27.00      | C     | 'OK'
205  | Peripheral Temp | Temperature       | 31.00      | C     | 'OK'
272  | VcpuVRM Temp    | Temperature       | 31.00      | C     | 'OK'
339  | DIMMA1 Temp     | Temperature       | 27.00      | C     | 'OK'
406  | DIMMA2 Temp     | Temperature       | N/A        | C     | N/A
473  | DIMMB1 Temp     | Temperature       | 28.00      | C     | 'OK'
540  | DIMMB2 Temp     | Temperature       | N/A        | C     | N/A
607  | FAN1            | Fan               | 900.00     | RPM   | 'OK'
674  | FAN2            | Fan               | 800.00     | RPM   | 'OK'
741  | FAN3            | Fan               | N/A        | RPM   | N/A
808  | FAN4            | Fan               | 800.00     | RPM   | 'OK'
875  | FANA            | Fan               | N/A        | RPM   | N/A
942  | 12V             | Voltage           | 12.13      | V     | 'OK'
1009 | 5VCC            | Voltage           | 4.95       | V     | 'OK'
1076 | 3.3VCC          | Voltage           | 3.38       | V     | 'OK'
1143 | VBAT            | Voltage           | 3.08       | V     | 'OK'
1210 | VCPU            | Voltage           | 0.86       | V     | 'OK'
1277 | VDIMMAB         | Voltage           | 1.19       | V     | 'OK'
1344 | 5VSB            | Voltage           | 5.00       | V     | 'OK'
1411 | 3.3VSB          | Voltage           | 3.21       | V     | 'OK'
1478 | VBMC 1.2V       | Voltage           | 1.20       | V     | 'OK'
1545 | VPCH 1.0V       | Voltage           | 1.00       | V     | 'OK'
1612 | Chassis Intru   | Physical Security | N/A        | N/A   | 'OK'

Link to comment

Everything works in the unRAID webgui?

 

Yes I can see all these sensors now if I go to tools > IPMI. My event log is filled with "Lower Critical - going low ; Sensor Reading = 500.00 RPM ; Threshold = 500.00 RPM" warnings and errors. And in the IPMI settings, fan control has a big red "NOT FUNCTIONAL YET" next to "IPMI Fan Control"

 

As far as the rest of the unRAID webgui is concerned, yes everything seems to be going fine. It looks like my FAN4 is the one constantly cycling.

Link to comment

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

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.

 

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.