[Plugin] IPMI for unRAID 6.1+


Recommended Posts

Everything is working great!

 

The only thing I'm not sure of is the backup.  I set the switch to "backup on", do I need to click "remove all" to have it do something?  What actually happens if I do that?

I know it's a little ambiguous. Maybe I could label the switch Backup on Clear or Save on Clear and the lable the 'dellete all' 'clear all' With backup on it sets the ipmi-sel option to --post-clear instead of just --clear. This clears the SEL after displaying all the SEL records. The output is then stored in a gzip like this ipmi_event_log-2016-03-12-214431.gz in /boot/config/plugins/ipmi/logs.

Link to comment

Fixed bug with freeipmi creating an init.d directory on install. I guess it's more a bug with libvirt or virsh but virtual machines won't autostart if there is an /etc/init.d directory. And I already got a talking to cause the tv's in the house wouldn't work because I didn't notice that my Mythbuntu VM wasn't started.

Link to comment

Everything is working great!

 

The only thing I'm not sure of is the backup.  I set the switch to "backup on", do I need to click "remove all" to have it do something?  What actually happens if I do that?

I know it's a little ambiguous. Maybe I could label the switch Backup on Clear or Save on Clear and the lable the 'dellete all' 'clear all' With backup on it sets the ipmi-sel option to --post-clear instead of just --clear. This clears the SEL after displaying all the SEL records. The output is then stored in a gzip like this ipmi_event_log-2016-03-12-214431.gz in /boot/config/plugins/ipmi/logs.

 

I'm thinking we don't even need a switch, just have it backup automatically when you press delete all?

 

What sort of format is the backup in?  Is it something the plugin can use somehow or is it something else?

Link to comment

Everything is working great!

 

The only thing I'm not sure of is the backup.  I set the switch to "backup on", do I need to click "remove all" to have it do something?  What actually happens if I do that?

I know it's a little ambiguous. Maybe I could label the switch Backup on Clear or Save on Clear and the lable the 'dellete all' 'clear all' With backup on it sets the ipmi-sel option to --post-clear instead of just --clear. This clears the SEL after displaying all the SEL records. The output is then stored in a gzip like this ipmi_event_log-2016-03-12-214431.gz in /boot/config/plugins/ipmi/logs.

 

I'm thinking we don't even need a switch, just have it backup automatically when you press delete all?

 

What sort of format is the backup in?  Is it something the plugin can use somehow or is it something else?

It's the same output as if you typed ipmi-sel from the command line. I think I know where your going. I could make an Archived Events tab.

ipmi_event_log-2016-03-12-214431.gz

Link to comment

Awesome! Thanks for your continuing work on this!  :)

 

Re: Fan Control: Do you need us to post more raw data to help with the completion of the fan control functionality, or do you have everything you need?

I only have raw values for my ASRock board that have been tested to work with c2750d4i, c2550d4i, E3C224D4I-14S, and one other. I'm not sure if it will work with your ASRock board but it should. If you test, let me know your fan names and id's and if the are the same.

 

I don't have any raw commands for any other board manufacturer. So if others want to try and find out the raw commands and test that's the only way I can add support for that board.

 

When I was figuring out raw commands for test events I started working on the fan script again using freeipmi now. This is the command if you want to test. The debug is just to see the send and receive response.

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

This would set all fans to smart mode

And here's a key for the fan values

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

00 = smartfan mode
01 - 64  = 1% - 100%

ID 13 'CPU_FAN1'  => 'AA',
ID 18 'CPU_FAN2'  => 'BB',
ID 14 'REAR_FAN1' => 'CC',
ID 17 'REAR_FAN2' => 'DD',
ID 15 'FRNT_FAN1' => 'EE',
ID 16 'FRNT_FAN2' => 'FF',
?                     => 'GG',
?                     => 'HH'

 

So for testing I would run a command like this to set CPU_FAN1 to full speed and check the fan jumps to full rpms

ipmi-raw 00 3a 01 64 00 00 00 00 00 00 00 --debug

set CPU_FAN1 to 1/2 speed

ipmi-raw 00 3a 01 32 00 00 00 00 00 00 00 --debug

 

Set all fans full speed

ipmi-raw 00 3a 01 64 64 64 64 64 64 64 64 --debug

 

Link to comment

I can try to do some tests for Supermicro board when I get some time.

I guess the raw command might be different?

Yes they are different. The command options are ipmi-raw [<lun> <netfn> COMMAND-HEX-BYTES]

lun is usually 0 and COMMAND is usually 01 but the 3a netnf is proprietary. And the Hex may be different.

 

I seem to remember that the supermicro boards may have separate commands for each fan.

Link to comment

I can try to do some tests for Supermicro board when I get some time.

I guess the raw command might be different?

Yes they are different. The command options are ipmi-raw [<lun> <netfn> COMMAND-HEX-BYTES]

lun is usually 0 and COMMAND is usually 01 but the 3a netnf is proprietary. And the Hex may be different.

 

I seem to remember that the supermicro boards may have separate commands for each fan.

Thanks for the info. IPMI is new to me so I'll have to dig a little bit to know it better.

Link to comment
  • 2 weeks later...

I'm trying to install it but it's getting a 404 when trying to download libgcrypt

 

plugin: installing: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg
plugin: downloading https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg
plugin: downloading: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg ... done

+==============================================================================
| Skipping package tablesorter-2016.02.12-x86_64-1 (already installed)
+==============================================================================



+==============================================================================
| Skipping package freeipmi-1.4.11-x86_64-3 (already installed)
+==============================================================================


plugin: downloading: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz ... failed (Invalid URL / Server error response)
plugin: wget: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz download failure (Invalid URL / Server error response)

 

wget from the command line:

 

~# wget https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz
--2016-03-24 20:01:42--  https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 23.235.47.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|23.235.47.133|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2016-03-24 20:01:42 ERROR 404: Not Found.

Link to comment

I'm trying to install it but it's getting a 404 when trying to download libgcrypt

 

plugin: installing: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg
plugin: downloading https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg
plugin: downloading: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/plugins/ipmi.plg ... done

+==============================================================================
| Skipping package tablesorter-2016.02.12-x86_64-1 (already installed)
+==============================================================================



+==============================================================================
| Skipping package freeipmi-1.4.11-x86_64-3 (already installed)
+==============================================================================


plugin: downloading: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz ... failed (Invalid URL / Server error response)
plugin: wget: https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz download failure (Invalid URL / Server error response)

 

wget from the command line:

 

~# wget https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz
--2016-03-24 20:01:42--  https://raw.githubusercontent.com/dmacias72/unRAID-plugins/master/source/packages/libgcrypt-1.5.5-x86_64-1_slack14.1.txz
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 23.235.47.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|23.235.47.133|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2016-03-24 20:01:42 ERROR 404: Not Found.

Sorry you caught me in the middle of updating the plugin. I removed that package prematurely. The libgcrypt version included in unRAID 6.1 and 6.2 are different. It is not included anymore since I compiled freeipmi 1.5.1. So freeipmi 1.4.11 will work with 6.1 and freeipmi 1.5.1 will be for 6.2. They will use the unRAID included libgcrypt for each version. I'll finish updating in a bit.

 

Link to comment

###2016.03.25

- fix: archived events page update on event delete

- fix: archived events with same timestamp

- fix: archived events tablesorter pager

 

###2016.03.24

- update for 6.2 to freeipmi 1.5.1

- new installs on 6.2 will work fine

- 6.2 users with previous install will need to reboot or install libgcrypt-1.6.5 (temporarily) to use freipmi 1.5.1

- libgcrypt-1.6.5 is included with unRAID 6.2 and previous versions downgraded it to 1.5.5 to use freeipmi 1.4.11

- http://ftp.slackware.com/pub/slackware/slackware64-current/slackware64/n/libgcrypt-1.6.5-x86_64-1.txz

- fix: bug local ipmi timeout webgui to wait for ipmi (only affected systems without local ipmi)

- changed backup events to archived events

- add archived event page and switch

 

Link to comment

Hi dmacias,

 

I updated the IPMI plugin from 2016.03.14 to 2016.03.25 on unRAID 6.1.9, and now my Event Log doesn't load.  It just displays "Please wait, retrieving event information..."

 

I did some digging and found that there is a problem with ipmi_events.php.  This url:

  http://[server ip]/plugins/ipmi/include/ipmi_events.php

returns:

  Fatal error: Call to a member function format() on boolean in /usr/local/emhttp/plugins/ipmi/include/ipmi_helpers.php on line 70

 

Is there anything else I can provide to help diagnose this?

 

 

Aside from that :) I see you added an Archived Events tab, very cool!  So to use it, just turn the switch on and hit "Clear All"?

Link to comment

Take your time, and thanks for all of your work on this plugin!

 

I still have 2016.03.14 installed on one of my servers, and I noticed another issue - the sort by timestamp column does an alphabetical sort rather than a date sort.  Sorry :)

 

The archive function sounds great!

Link to comment

Take your time, and thanks for all of your work on this plugin!

 

I still have 2016.03.14 installed on one of my servers, and I noticed another issue - the sort by timestamp column does an alphabetical sort rather than a date sort.  Sorry :)

 

The archive function sounds great!

That was the reasoning behind converting the date and time to a sortable numeric format.  Could you run ipmi-sel from the command line and see if you have some weird dates or times that don't fall in the format | Mar-27-2016 | 00:57:28 |.

Link to comment

Take your time, and thanks for all of your work on this plugin!

 

I still have 2016.03.14 installed on one of my servers, and I noticed another issue - the sort by timestamp column does an alphabetical sort rather than a date sort.  Sorry :)

 

The archive function sounds great!

That was the reasoning behind converting the date and time to a sortable numeric format.  Could you run ipmi-sel from the command line and see if you have some weird dates or times that don't fall in the format | Mar-27-2016 | 00:57:28 |.

 

oh cool.  Yes, I have several that have "PostInit" in both the date and time columns. See attached.

impi.txt

Link to comment

Take your time, and thanks for all of your work on this plugin!

 

I still have 2016.03.14 installed on one of my servers, and I noticed another issue - the sort by timestamp column does an alphabetical sort rather than a date sort.  Sorry :)

 

The archive function sounds great!

That was the reasoning behind converting the date and time to a sortable numeric format.  Could you run ipmi-sel from the command line and see if you have some weird dates or times that don't fall in the format | Mar-27-2016 | 00:57:28 |.

 

oh cool.  Yes, I have several that have "PostInit" in both the date and time columns. See attached.

Added a couple checks for valid date.  Should be fixed now.

Link to comment

Take your time, and thanks for all of your work on this plugin!

 

I still have 2016.03.14 installed on one of my servers, and I noticed another issue - the sort by timestamp column does an alphabetical sort rather than a date sort.  Sorry :)

 

The archive function sounds great!

That was the reasoning behind converting the date and time to a sortable numeric format.  Could you run ipmi-sel from the command line and see if you have some weird dates or times that don't fall in the format | Mar-27-2016 | 00:57:28 |.

 

oh cool.  Yes, I have several that have "PostInit" in both the date and time columns. See attached.

Added a couple checks for valid date.  Should be fixed now.

 

It works perfectly!

 

And the archive tab is great too, thanks a lot dmacias!

Link to comment

dmacias,

 

I've installed your plugin on my system and it is working great for monitoring.  I'm EXTREMELY interested in the fan control capability, and am happy to assist with information gathering if I can help.  I have an ASRock EP2C602 board and I've tried entering the command you mentioned earlier in the thread and it doesn't seem to be working.

 

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

 

This outputs:

 

root@Tower:/# ipmi-raw 00 3a 01 00 00 00 00 00 00 00 00 --debug
=====================================================
OEM - Unknown Request
=====================================================
[  HEX DUMP ..... ] = HEX[ 9B]
[ 01h 00h 00h 00h 00h 00h 00h 00h ]
[ 00h ]
=====================================================
OEM - Unknown Response
=====================================================
[  HEX DUMP ..... ] = HEX[ 2B]
[ 01h C7h ]
rcvd: 01 C7 

 

I assume this is not the expected output.  Does this suggest that 3a is not the correct netfn for my motherboard?  What should I try next?

 

-David

Link to comment

dmacias,

 

I've installed your plugin on my system and it is working great for monitoring.  I'm EXTREMELY interested in the fan control capability, and am happy to assist with information gathering if I can help.  I have an ASRock EP2C602 board and I've tried entering the command you mentioned earlier in the thread and it doesn't seem to be working.

 

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

 

This outputs:

 

root@Tower:/# ipmi-raw 00 3a 01 00 00 00 00 00 00 00 00 --debug
=====================================================
OEM - Unknown Request
=====================================================
[  HEX DUMP ..... ] = HEX[ 9B]
[ 01h 00h 00h 00h 00h 00h 00h 00h ]
[ 00h ]
=====================================================
OEM - Unknown Response
=====================================================
[  HEX DUMP ..... ] = HEX[ 2B]
[ 01h C7h ]
rcvd: 01 C7 

 

I assume this is not the expected output.  Does this suggest that 3a is not the correct netfn for my motherboard?  What should I try next?

 

-David

 

That's working fine. It just means freeipmi didn't recognize the oem command. But it shows it was sent and received. If it was the wrong netfn then you'd see "Invalid netfn value."  Now to test, you'd want to adjust a value for a fan to 64 and see if the fan reads full speed then back to 00 and see if it returns to auto. Or try a lower value like 20 or 30. You don't need the --debug option. It just shows the send and receive status.

 

Edit. Also let me know your fan names and which spot in the hex they correspond to.

 

Mine look like this

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'  => 'AA',
'CPU_FAN2'  => 'BB',
'REAR_FAN1' => 'CC',
'REAR_FAN2' => 'DD',
'FRNT_FAN1' => 'EE',
'FRNT_FAN2' => 'FF'

Link to comment

So I went through and tried setting each value individually to 32 (with all others set to 00) and refreshed the Sensors page to see if any fan speeds changed, and nothing seemed to make a difference.  The two fans that are showing non-zero values (REAR_FAN1 and REAR_FAN2) are still showing the same values (which fluctuate between 5100 and 5200).

 

I tried setting all values to 01 also just to see what would happen, and there was no effect.  Every time I set the values I get back the same response:  01 C7

 

Anything else I should try?

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.