[Plugin] IPMI for unRAID 6.1+


Recommended Posts

Your support made all the difference.  Now I can live with my home-made unRAID Media server in the same room.  I was contemplating moving it out to the garage due to the noisy Noctura Fans!  Best wishes for a prosperous New Year and happy holidays!
You're welcome. Glad we figured it out. Only other advice would be to add a fan minimum to keep the fans above the lower threshold or turn off the low threshold alerts in the Config Editor/Sensors config for each fan you want to shut off. With the Asrock boards you can actually have the fans turn off.
Link to comment

Hi guys, 

 

I have an AsRock EP2C602 dual socket motherboard, with two CPU fans (that is getting auto-detected by the configure button) - but got 4 more fans, all connected to the FRNT_FAN's 1 thru 4 - but none of them are getting detected like the CPU fans. But they are all getting listed in the Readings tab in the IPMI plugin. Both my BIOS (1.80) and BMC (02.07.00) is the newest versions available on ASRocks website for my mb. I have tried so many things now. Deleting the plugin, deleting the config files from the boot usb, reinstalled the plugin rebooted the server. But nothing seems to help me. Can someone please help me :( the fans are slowly killing me with their high rpm :P

 

Best regards,

Bryde

Link to comment

 

# ASRock Dual Socket
# ipmi-raw 00 3a 01 CPU_1_OVERRIDE CPU_1 REAR_1 FRONT_1 FRONT_2 FRONT_3
# ipmi-raw 00 3a 11 CPU_2_OVERRIDE CPU_2 REAR_2 FRONT_4
# ipmi-raw 00 3a 01 01 AA BB CC DD EE
# ipmi-raw 00 3a 11 01 AA BB CC
# AA-EE values can be 01-64
# 00 is smartfan

 

ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 64 64 64 64 64
# wait a few seconds
ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 32 32 32 32 32
# wait a few seconds 
ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 00 00 00 00 00

Try the above commands and see if there's a change in rpm. These are for CPU_1 REAR_1 FRONT_1 FRONT_2 FRONT_3. You can also just target one fan by leaving the other fans 00 and just changing the one fan location. Use ipmi-raw 00 3a 11 01 AA BB CC for CPU_2 REAR_2 FRONT_4.

Link to comment
1 hour ago, dmacias said:

 


# ASRock Dual Socket
# ipmi-raw 00 3a 01 CPU_1_OVERRIDE CPU_1 REAR_1 FRONT_1 FRONT_2 FRONT_3
# ipmi-raw 00 3a 11 CPU_2_OVERRIDE CPU_2 REAR_2 FRONT_4
# ipmi-raw 00 3a 01 01 AA BB CC DD EE
# ipmi-raw 00 3a 11 01 AA BB CC
# AA-EE values can be 01-64
# 00 is smartfan

 


ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 64 64 64 64 64
# wait a few seconds
ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 32 32 32 32 32
# wait a few seconds 
ipmi-sensors -t fan
ipmi-raw 00 3a 01 01 00 00 00 00 00

Try the above commands and see if there's a change in rpm. These are for CPU_1 REAR_1 FRONT_1 FRONT_2 FRONT_3. You can also just target one fan by leaving the other fans 00 and just changing the one fan location. Use ipmi-raw 00 3a 11 01 AA BB CC for CPU_2 REAR_2 FRONT_4.

 

I tried the first commands with the smartfan - and apperently the cpu_1 is the only one willing to change the rpm.

 

Linux 4.9.30-unRAID.
root@Tower:~# ipmi-sensors -t fan
ID | Name       | Type | Reading    | Units | Event
17 | CPU_FAN1_1 | Fan  | 700.00     | RPM   | 'OK'
18 | CPU_FAN2_1 | Fan  | 700.00     | RPM   | 'OK'
19 | REAR_FAN1  | Fan  | N/A        | RPM   | N/A
20 | REAR_FAN2  | Fan  | N/A        | RPM   | N/A
21 | FRNT_FAN1  | Fan  | 700.00     | RPM   | 'OK'
22 | FRNT_FAN2  | Fan  | 900.00     | RPM   | 'OK'
23 | FRNT_FAN3  | Fan  | 900.00     | RPM   | 'OK'
24 | FRNT_FAN4  | Fan  | 1200.00    | RPM   | 'OK'
25 | CPU_FAN1_2 | Fan  | N/A        | RPM   | N/A
26 | CPU_FAN2_2 | Fan  | N/A        | RPM   | N/A
root@Tower:~# ipmi-raw 00 3a 01 01 64 64 64 64 64
rcvd: 01 00
root@Tower:~# ipmi-sensors -t fan
ID | Name       | Type | Reading    | Units | Event
17 | CPU_FAN1_1 | Fan  | 2000.00    | RPM   | 'OK'
18 | CPU_FAN2_1 | Fan  | 700.00     | RPM   | 'OK'
19 | REAR_FAN1  | Fan  | N/A        | RPM   | N/A
20 | REAR_FAN2  | Fan  | N/A        | RPM   | N/A
21 | FRNT_FAN1  | Fan  | 700.00     | RPM   | 'OK'
22 | FRNT_FAN2  | Fan  | 900.00     | RPM   | 'OK'
23 | FRNT_FAN3  | Fan  | 900.00     | RPM   | 'OK'
24 | FRNT_FAN4  | Fan  | 1200.00    | RPM   | 'OK'
25 | CPU_FAN1_2 | Fan  | N/A        | RPM   | N/A
26 | CPU_FAN2_2 | Fan  | N/A        | RPM   | N/A
root@Tower:~# ipmi-raw 00 3a 01 01 32 32 32 32 32
rcvd: 01 00
root@Tower:~# ipmi-sensors -t fan
ID | Name       | Type | Reading    | Units | Event
17 | CPU_FAN1_1 | Fan  | 1100.00    | RPM   | 'OK'
18 | CPU_FAN2_1 | Fan  | 1200.00    | RPM   | 'OK'
19 | REAR_FAN1  | Fan  | N/A        | RPM   | N/A
20 | REAR_FAN2  | Fan  | N/A        | RPM   | N/A
21 | FRNT_FAN1  | Fan  | 700.00     | RPM   | 'OK'
22 | FRNT_FAN2  | Fan  | 900.00     | RPM   | 'OK'
23 | FRNT_FAN3  | Fan  | 900.00     | RPM   | 'OK'
24 | FRNT_FAN4  | Fan  | 1200.00    | RPM   | 'OK'
25 | CPU_FAN1_2 | Fan  | N/A        | RPM   | N/A
26 | CPU_FAN2_2 | Fan  | N/A        | RPM   | N/A
root@Tower:~# ipmi-raw 00 3a 01 01 00 00 00 00 00
rcvd: 01 00
root@Tower:~# ipmi-sensors -t fan
ID | Name       | Type | Reading    | Units | Event
17 | CPU_FAN1_1 | Fan  | 0.00       | RPM   | 'At or Below (<=) Lower Non-Critical Threshold'
18 | CPU_FAN2_1 | Fan  | 700.00     | RPM   | 'OK'
19 | REAR_FAN1  | Fan  | N/A        | RPM   | N/A
20 | REAR_FAN2  | Fan  | N/A        | RPM   | N/A
21 | FRNT_FAN1  | Fan  | 700.00     | RPM   | 'OK'
22 | FRNT_FAN2  | Fan  | 900.00     | RPM   | 'OK'
23 | FRNT_FAN3  | Fan  | 900.00     | RPM   | 'OK'
24 | FRNT_FAN4  | Fan  | 1200.00    | RPM   | 'OK'
25 | CPU_FAN1_2 | Fan  | N/A        | RPM   | N/A
26 | CPU_FAN2_2 | Fan  | N/A        | RPM   | N/A
 

Link to comment

ok, jumping in on this one as I'm now having cycling problems with a SM MB x11ssh-4lnf using 3 industrial Noctua 120's as a fan wall, Noctua CPU can and two rear 80mm Noctua's.  

 

I've been going through the discussion and nothing I enter in makes a dent.  I can go into BMC and set it for full, and it just stays on full blast.  If i change it to standard or optimal it goes up and down non-stop.  Then I found the IPMI plugin and installed that.  Went into the fan settings and changed it to 60c upper and 20c lower.  Still cycling.

 

running the commands listed above and trying to follow along, I've not seeing any changes in the RPM.  and I'm not sure how to change the fan thresholds based on browsing the forums.

 

current output, and subsequent output after doing any raw commands, no changes.

 

root@Tower:~# ipmi-sensors -t fan                
ID  | Name | Type | Reading    | Units | Event
607 | FAN1 | Fan  | 1900.00    | RPM   | 'OK'
674 | FAN2 | Fan  | 2800.00    | RPM   | 'OK'
741 | FAN3 | Fan  | 2900.00    | RPM   | 'OK'
808 | FAN4 | Fan  | 2200.00    | RPM   | 'OK'
875 | FANA | Fan  | N/A        | RPM   | N/A

 

Fan1 - CPU noctua 

Fan 2-4 - fan wall 3x120mm industrial noctua, 2x80mm rear noctua

 

5a4e5c26d7ebc_ScreenShot2018-01-04at8_52_59AM.thumb.png.aabd71e604fd659dbd1a8a5b973dff15.png

 

5a4e5c20c465b_ScreenShot2018-01-04at8_52_46AM.thumb.png.2ee16bb4b34e5009df11bf3705df29ff.png

5a4e5c187b37f_ScreenShot2018-01-04at8_52_36AM.thumb.png.5ffda51e3bf406dcc237ea474fbbac0b.png

Link to comment

 

 

 

 

 

 

 

ok, jumping in on this one as I'm now having cycling problems with a SM MB x11ssh-4lnf using 3 industrial Noctua 120's as a fan wall, Noctua CPU can and two rear 80mm Noctua's.     I've been going through the discussion and nothing I enter in makes a dent.  I can go into BMC and set it for full, and it just stays on full blast.  If i change it to standard or optimal it goes up and down non-stop.  Then I found the IPMI plugin and installed that.  Went into the fan settings and changed it to 60c upper and 20c lower.  Still cycling.   running the commands listed above and trying to follow along, I've not seeing any changes in the RPM.  and I'm not sure how to change the fan thresholds based on browsing the forums.

 

Go to Settings/IPMI/Config Editor click on Select Config and pick Sensors. Scroll down to each Section Fan and change the 3 lower threshold values to something like 300. Do this for every Section Fan. Like this. Section 540_FAN1...

 

## 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 300.000000

 

## Give valid input for sensor type = Fan; units = RPM

 

Lower_Non_Recoverable_Threshold 300.000000

...EndSection

 

When done editing click Save.

 

You'll also need to set under Fan Control a Fan speed minimum to a high enough percentage to keep the fans from going below 300 RPMs. I have mine set to 28%.

 

 

Link to comment
On 20.11.2017 at 6:00 AM, dmacias said:
On 20.11.2017 at 5:25 AM, aberg83 said:
What's the ETA on support for supermicro x9?

I'm waiting on a CPU for my Supermicro X10 board. As soon as I get that and swap out my system. I'll make it a priority.

As I'm also using a SM X9 board, I would like to ask if you have an updated regarding compatibility with this series? Thank you in advance! 

Link to comment
As I'm also using a SM X9 board, I would like to ask if you have an updated regarding compatibility with this series? Thank you in advance! 
No I haven't. Been busy with the holidays and after I swapped out my server, I swapped out all my network equipment. I will soon, before I start anything else. I'm not sure how great it will be for the X9 boards though. I can only set the fans between a few settings. The same settings that are in the bmc and just cycle through them based on temp. So basically a low, medium and high setting.
Link to comment

Hi dmacias, I'm working on adding ipmi status support to the controlr app.

 

I installed the ipmi plugin, and I'm running /usr/sbin/ipmi-sensors from the command line, but I'm getting

Caching SDR repository information: /root/.freeipmi/sdr-cache/sdr-cache-wopr.localhost
ipmi_sdr_cache_create: internal IPMI error

I tried on a 6.3.5 server and a 6.4.0-rc21b virtual machine.

 

Any suggestions ?

 

In any case, would you be able to send me the output of the command on your system ?

 

I could work with that :D

 

 

Link to comment
Hi dmacias, I'm working on adding ipmi status support to the controlr app.

 

I installed the ipmi plugin, and I'm running /usr/sbin/ipmi-sensors from the command line, but I'm getting

Caching SDR repository information: /root/.freeipmi/sdr-cache/sdr-cache-wopr.localhostipmi_sdr_cache_create: internal IPMI error

I tried on a 6.3.5 server and a 6.4.0-rc21b virtual machine.

 

Any suggestions ?

 

In any case, would you be able to send me the output of the command on your system ?

 

I could work with that 

 

 

 

Nice! Does your board have ipmi? Anyway here's one command I use in the plugin. I added the no header on the second run. The interpret oem data is important for some boards. It may be useful to add a network ip, username and password input. Or I created several bash scripts for the freeipmi commands that pull the info from the ipmi.cfg and accept command-line options just like the regular command. E.g. ipmisensors for ipmi-sensors

 

root@Server:~# ipmi-sensors --comma-separated-output --output-sensor-state --interpret-oem-data

ID,Name,Type,State,Reading,Units,Event

4,CPU Temp,Temperature,Nominal,38.00,C,'OK'

71,System Temp,Temperature,Nominal,30.00,C,'OK'

138,Peripheral Temp,Temperature,Nominal,39.00,C,'OK'

205,PCH Temp,Temperature,Nominal,45.00,C,'OK'

272,P1-DIMMA1 Temp,Temperature,Nominal,30.00,C,'OK'

339,P1-DIMMA2 Temp,Temperature,Nominal,31.00,C,'OK'

406,P1-DIMMB1 Temp,Temperature,Nominal,30.00,C,'OK'

473,P1-DIMMB2 Temp,Temperature,Nominal,30.00,C,'OK'

540,FAN1,Fan,Nominal,1100.00,RPM,'OK'

607,FAN2,Fan,Nominal,700.00,RPM,'OK'

674,FAN3,Fan,N/A,N/A,RPM,N/A

741,FAN4,Fan,Nominal,1100.00,RPM,'OK'

808,FANA,Fan,Nominal,300.00,RPM,'OK'

875,Vcpu,Voltage,Nominal,1.84,V,'OK'

942,VDIMM,Voltage,Nominal,1.35,V,'OK'

1009,12V,Voltage,Nominal,12.00,V,'OK'

1076,5VCC,Voltage,Nominal,4.97,V,'OK'

1143,3.3VCC,Voltage,Nominal,3.27,V,'OK'

1210,VBAT,Voltage,Nominal,2.97,V,'OK'

1277,5V Dual,Voltage,Nominal,5.03,V,'OK'

1344,3.3V AUX,Voltage,Nominal,3.28,V,'OK'

1411,1.2V BMC,Voltage,Nominal,1.26,V,'OK'

1478,1.05V PCH,Voltage,Nominal,1.04,V,'OK'

1545,Chassis Intru,Physical Security,Nominal,N/A,N/A,'OK'

root@Server:~# ipmi-sensors --comma-separated-output --output-sensor-state --no-header-output --interpret-oem-data

4,CPU Temp,Temperature,Nominal,38.00,C,'OK'

71,System Temp,Temperature,Nominal,30.00,C,'OK'

138,Peripheral Temp,Temperature,Nominal,39.00,C,'OK'

205,PCH Temp,Temperature,Nominal,45.00,C,'OK'

272,P1-DIMMA1 Temp,Temperature,Nominal,30.00,C,'OK'

339,P1-DIMMA2 Temp,Temperature,Nominal,31.00,C,'OK'

406,P1-DIMMB1 Temp,Temperature,Nominal,30.00,C,'OK'

473,P1-DIMMB2 Temp,Temperature,Nominal,30.00,C,'OK'

540,FAN1,Fan,Nominal,1100.00,RPM,'OK'

607,FAN2,Fan,Nominal,700.00,RPM,'OK'

674,FAN3,Fan,N/A,N/A,RPM,N/A

741,FAN4,Fan,Nominal,1100.00,RPM,'OK'

808,FANA,Fan,Nominal,300.00,RPM,'OK'

875,Vcpu,Voltage,Nominal,1.84,V,'OK'

942,VDIMM,Voltage,Nominal,1.34,V,'OK'

1009,12V,Voltage,Nominal,12.00,V,'OK'

1076,5VCC,Voltage,Nominal,4.95,V,'OK'

1143,3.3VCC,Voltage,Nominal,3.27,V,'OK'

1210,VBAT,Voltage,Nominal,2.97,V,'OK'

1277,5V Dual,Voltage,Nominal,5.03,V,'OK'

1344,3.3V AUX,Voltage,Nominal,3.28,V,'OK'

1411,1.2V BMC,Voltage,Nominal,1.26,V,'OK'

1478,1.05V PCH,Voltage,Nominal,1.05,V,'OK'

1545,Chassis Intru,Physical Security,Nominal,N/A,N/A,'OK'

root@Server:~#

 

 

Also you may or may not need the output sensor state. That's the Nominal or N/A

Link to comment

 

 

 

Thanks dmacias !

 

Yes, the 6.3.5 server has ipmi, that's why I was scratching my head.

 

In any case, thanks for the command output.

 

I can work with that, I'll check your repo for the scripts (if needed) and ping you if I have some question.

 

No problem. Not sure how you were logged in but it needs to create a cache in the users home directory. If you were logged in as root you can try deleting /root/.freeipmi. You could also try connecting using the network options. -h ipaddress -u username -p password. Look forward to what you come up with.

 

One other thing that might be useful is that you can't set the timeout for freeipmi commands through the local host. I don't remember how long the timeout is. So if there was an error you could seemingly hang the webgui or your app especially if multiple commands are run. So thanks to[mention=61877]ljm42[/mention] I run this within the plugin to check for local ipmi.

((file_exists('/dev/ipmi0') || file_exists('/dev/ipmi/0') || file_exists('/dev/ipmidev/0'))

 

In case you're wondering why I chose freeipmi over ipmitool or others it's because of the sensor ID variable and you always get a consistent list of variables for each sensor even if a value is missing for that sensor. You'll get a N/A for any missing data.

 

Link to comment
  • 3 weeks later...

hi dmacias, first thanks a lot for this plugin, a real value add for those of us running x11 boards :-).

I have one question: I use the fancontrol to control the fans for hdd cooling. Now, if all hdds are spun down, it shows temp "N/A".

Is this intended? Or could we also show the temperature when the discs are down.

I can get the temperature from all my disks when they're down on the command line:

for i in $(ls /dev/sd[a-z] 2> /dev/null); do smartctl -a $i |grep Temp;done

Would it make sense to use this at least as a fall back to determine the temps, when all are spun down?

Thanks for all your work!

Link to comment
21 hours ago, Guzzi said:

hi dmacias, first thanks a lot for this plugin, a real value add for those of us running x11 boards :-).

I have one question: I use the fancontrol to control the fans for hdd cooling. Now, if all hdds are spun down, it shows temp "N/A".

Is this intended? Or could we also show the temperature when the discs are down.

I can get the temperature from all my disks when they're down on the command line:


for i in $(ls /dev/sd[a-z] 2> /dev/null); do smartctl -a $i |grep Temp;done

Would it make sense to use this at least as a fall back to determine the temps, when all are spun down?

Thanks for all your work!

Any webGui hdd temp readings are taken directly from the unRAID ini files. I don't poll the hdds again. I use what's already available.  The fancontrol script does poll the hdds but with the exclusion of hdds in standby. The problem is that some drives spin up when polled by smartctl so your drives may never sleep. My Seagate and Toshiba drives all spin up when polled with smartctl. My Western Digital do not.

Link to comment
5 hours ago, dmacias said:

Any webGui hdd temp readings are taken directly from the unRAID ini files. I don't poll the hdds again. I use what's already available.  The fancontrol script does poll the hdds but with the exclusion of hdds in standby. The problem is that some drives spin up when polled by smartctl so your drives may never sleep. My Seagate and Toshiba drives all spin up when polled with smartctl. My Western Digital do not.

Ah, I remember, that in the past there was a discussion, that some drives DO spinup. I use WD drives since decades, so I never had that issue.

So do I understand correct:

1.) display of the temperature can't be fixed anyway within the plugin, because it is using what unraid provides - only Tom could add an option to provide temp info for standby drives. I think I asked for this some time ago, so this probably won't happen any time soon.

2.) Fancontrol script ignores any device in standby - so what does it do, when ALL drives are down? Will it set the fans to minimum? Am I right, that this could lead to a too high temperature, e.g. when hdd fans are switched off due to the fact, that fancontrol script does not know about the hdd temperatures anymore?

I think it is not a biggie, because making sure, that fans at least run at a minimum speed should be able to avoid that.

Releated question: How tdo you get temperature from drives not in the array, e.h. an unassigned drive? Do you poll those separately? (Can't test myself right now, because I have only array drives currently)

Link to comment



Ah, I remember, that in the past there was a discussion, that some drives DO spinup. I use WD drives since decades, so I never had that issue.
So do I understand correct:
1.) display of the temperature can't be fixed anyway within the plugin, because it is using what unraid provides - only Tom could add an option to provide temp info for standby drives. I think I asked for this some time ago, so this probably won't happen any time soon.
2.) Fancontrol script ignores any device in standby - so what does it do, when ALL drives are down? Will it set the fans to minimum? Am I right, that this could lead to a too high temperature, e.g. when hdd fans are switched off due to the fact, that fancontrol script does not know about the hdd temperatures anymore?
I think it is not a biggie, because making sure, that fans at least run at a minimum speed should be able to avoid that.
Releated question: How tdo you get temperature from drives not in the array, e.h. an unassigned drive? Do you poll those separately? (Can't test myself right now, because I have only array drives currently)


1. I don't think they would ever add standby hdd temp polling. I think the answer would be it's spin down and doesn't matter then. It might require too much effort for no real gain.

2. Yes it ignores all standby drives and uses minimums settings for fans assigned to hdd temp. They are in standby so temp shouldn't matter. Like you said it shouldn't matter with minimum settings applied. A hdd shouldn't overheat just sitting. If so, there are other cooling issues. So on my Supermicro board I use FANA connected to 2 fans on the drive cage and control them based on hdd temps.

One problem could arise if the fans assigned to cool the hdds are also expected to cool the system too. But that was the original point if fancontrol. To control hdd specific fans. Often times system/CPU based fans wouldn't spin up enough to cool the hard drives also.

Both the webgui and fancontrol get the hdd ids from the unRAID ini variables which includes unassigned drives. Both use only the highest temp. The fancontrol does poll those drives for temps if not in standby.

There is one problem though. The non array drives ini only gets updated on array start/stop. So a drive added after the array is started won't be included. But for most this is fine since this would most likely be external usb drives that you don't want included in fan temps anyway. But a hot swapped drive wouldn't.
Link to comment
On 1/10/2018 at 2:50 PM, dmacias said:
On 1/10/2018 at 12:55 PM, phasetwo said:
As I'm also using a SM X9 board, I would like to ask if you have an updated regarding compatibility with this series? Thank you in advance! 

No I haven't. Been busy with the holidays and after I swapped out my server, I swapped out all my network equipment. I will soon, before I start anything else. I'm not sure how great it will be for the X9 boards though. I can only set the fans between a few settings. The same settings that are in the bmc and just cycle through them based on temp. So basically a low, medium and high setting.

 

Sorry to bug, but any update on this?

Link to comment
  • 2 weeks later...

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.