Jump to content

[PLUGIN] IPMI for 6.11+


Recommended Posts

  • 3 weeks later...

Hey Simon, i appreciate your work on this tool, i love that it works out of the box on both my motherboard and SAS enclosure

 

is there any chance you plan on supporting a second IPMI connection any time in the future? i have a Supermicro H11-SSL EPYC system with my storage in a supermicro CSE-847 SAS enclosure that also supports IPMI and i would love the option of having monitoring for both on the dashboard.

Link to comment

I have been asking about this plugin not working with my board, the ASRockRack X470D4U, in this thread before.

After putting it aside for a while I started to look into the issue again. This is what I found:

 

It worked with the original bios, but stopped after I updated to the latest. This pointed towards the ipmi-raw commands having changed.

The now working command to change fan speeds is: 00 3a d6, not 00 3a 01

This command also expects 16 fan speed values now, not 8, or it will fail.

The highest value is still 64, but the command seems to fail for me if less than 14 is specified.

 

This is a working json config for me, however fan speed minimum cannot be lower than ~25% or the value this tool generates will drop below 14 and fail.

 

This is with 6 fans connected. If your number is different, you may have to adjust this: 

{
    "ASRockRack": {
        "raw": "00 3a d6",
        "auto": "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00",
        "full": "64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64",
        "fans": {
            "FAN1": "01",
            "FAN2": "01",
            "FAN3": "01",
            "FAN4": "01",
            "FAN5": "01",
            "FAN6": "01",
            "FAN_POS7": "01",
            "FAN_POS8": "01",
            "FAN_POS9": "01",
            "FAN_POS10": "01",
            "FAN_POS11": "01",
            "FAN_POS12": "01",
            "FAN_POS13": "01",
            "FAN_POS14": "01",
            "FAN_POS15": "01",
            "FAN_POS16": "01"
        }
    }
}

 

Additionally, I had to make a small change in the code of the ipmifan command itself. This is necessary since the ipmifan tool tries to set a fan speed of 0 for any non-connected fan. But, since the Asrock IPMI won't allow fan speeds below 20% the command will therefore fail.

 

So to fix this you have to SSH into your unraid server, and edit this file:

nano /usr/sbin/ipmifan

 

Then in line #482 change this:

          }else{
                $pwm ='0';
          }

 

to this:

          }else{
               $pwm ='64';
          }

 

Save the changes (if you used nano, Ctrl+O and then Ctrl+X) and restart the IPMI Fan Control via the Web Interface.

Link to comment

This plugin works great for me, but I have noticed one strange issue regarding Fan Control.  Specifically, I cannot control one of my fan headers from Fan Control.  Fan Controls lists:  FAN12345 and FANA.  However, FANB is missing.  

 

I can see sensor data for FANB just fine, but it cannot be controlled via Fan Control in the plugin.  How can I fix this?

 

The motherboard is a Supermicro H12SSL-NT.  

 

 

galactica-diagnostics-20240402-1951.zip

Link to comment

Hi, new user here.  I have a Supermicro X13SAE-F so installed this plugging primarily for fan control.  It does indeed control the fans via IPMI which is great so thank you!

 

However I've noticed an odd behaviour which my attempts to correct have so far failed.

 

Basically the plugin is detecting that my CPU Fan RPM is hitting the low threshold and shifting the entire system fan profile to full untill the next polling interval where the CPU Fan RPM is reporting normal.  It then oscilates between these 2 states untill my BMC has enough and falls over needing a reset.

 

image.thumb.png.c1b3c91a57470d4d768265d69136c15a.png

 

The CPU fan is a Noctua NH-L9i-17xx, I dont believe it is dropping down to or below 420 RPM but suspect that because its an atypical fan for this board its being misreported, all my observations are that the fan sits consistently at 700 RPM.  I've no issues with temps at all on the CPU or PCH.

 

I tried reducing the low critical threshold below 420 but I get an error on the values I enter.  I suspect the value I need to enter should be a derivative of a formulae or condition but I'm not finding this detail/understanding.  Would appreicate any steerage here?

 

Thanks.

Link to comment

Thanks, I think I have just found the error in configuration.  My IPMI wouldn't accept 300 or 150 but it would accept 140 for the lower critical threshold.  Once I set that and re-enabled fan control in the pluging my BMC started to complain the CPU fan was inoperable even though it was reporting RPM above this new lower threshold.  However the CPU Fan RPM had dropped below 700, so I then realised the 'Fan Speed Minimum %' parameter was down at 1.5% which my BMC has issue with regardless of the detected RPM.  So nudging this % up so the fan idles around 500 RPM seems to get the BMC happy again.

Link to comment
On 4/17/2024 at 5:01 AM, Silentlightning said:

Hey Simon, i appreciate your work on this tool, i love that it works out of the box on both my motherboard and SAS enclosure

 

is there any chance you plan on supporting a second IPMI connection any time in the future? i have a Supermicro H11-SSL EPYC system with my storage in a supermicro CSE-847 SAS enclosure that also supports IPMI and i would love the option of having monitoring for both on the dashboard.

Was not looking to provide a second source as no one has requested before. But I will look to see if easy to implement. Would it just be the sensors?

Link to comment

Hi, I'm trying interpret the /var/log/ipmifan to better train my fans vs. temps and have come up with a couple of questions I'd appreicate a steer with.

 

Physically my server has 4 system fans fed from 2 SYS_FAN headers and a single CPU+Fan. 

  • The below all suggests everything is as it should be and correctly mapped although where are the HDD Temps being sourced from (device id 99 in the cfg file)?
  • FAN1234 being mapped as my CPU fan is a little unintuitive for me, whilst its certainly something I can live with I was wondering whether a simple edit of the fan.cfg is supported/recommend to alter this?

Thanks

 

# tail /var/log/ipmifan
2024-04-23 11:14:13 Fan:Temp, FAN1234(25%):CPU Temp(40C), FANA(16%):HDD Temp(36C)
2024-04-23 11:14:43 Fan:Temp, FAN1234(16%):CPU Temp(35C), FANA(16%):HDD Temp(36C)
2024-04-23 11:15:14 Fan:Temp, FAN1234(19%):CPU Temp(37C), FANA(16%):HDD Temp(36C)

 

# cat /boot/config/plugins/ipmi/fan.cfg
FANCONTROL="enable"
FANPOLL="3"
FANIP=""
HDDPOLL="6"
HDDIGNORE="ST4000VN000-1H4168_S300LXWX"
HARDDRIVES="enable"
FAN_FAN1234="674"
TEMP_FAN1234="4"
FAN_FANA="808"
TEMP_FANA="99"
TEMPHI_FANA="50"
TEMPLO_FANA="45"
FANMAX_FANA="64"
FANMIN_FANA="10"
TEMPHDD_FANA="0"
TEMPHI_FAN1234="80"
TEMPLO_FAN1234="35"
FANMAX_FAN1234="64"
FANMIN_FAN1234="10"

 

# ipmi-sensors
ID   | Name            | Type              | Reading    | Units | Event
4    | CPU Temp        | Temperature       | 36.00      | C     | 'OK'
71   | PCH Temp        | Temperature       | 59.00      | C     | 'OK'
138  | System Temp     | Temperature       | 32.00      | C     | 'OK'
205  | Peripheral Temp | Temperature       | 33.00      | C     | 'OK'
272  | VRMVCORE Temp   | Temperature       | 33.00      | C     | 'OK'
339  | VRMIN_AUX Temp  | Temperature       | 33.00      | C     | 'OK'
406  | M2_SSD1 Temp    | Temperature       | N/A        | C     | N/A
473  | M2_SSD2 Temp    | Temperature       | N/A        | C     | N/A
540  | M2_SSD3 Temp    | Temperature       | N/A        | C     | N/A
607  | DIMMAB Temp     | Temperature       | 34.00      | C     | 'OK'
674  | CPU_FAN1        | Fan               | 560.00     | RPM   | 'OK'
741  | CPU_FAN2        | Fan               | N/A        | RPM   | N/A
808  | SYS_FAN1        | Fan               | 840.00     | RPM   | 'OK'
875  | SYS_FAN2        | Fan               | 840.00     | RPM   | 'OK'
942  | SYS_FAN3        | Fan               | N/A        | RPM   | N/A
1009 | MB 12V          | Voltage           | 12.13      | V     | 'OK'
1076 | MB 5VCC         | Voltage           | 5.00       | V     | 'OK'
1143 | MB 3.3VCC       | Voltage           | 3.29       | V     | 'OK'
1210 | VBAT            | Battery           | N/A        | N/A   | 'battery presence detected'
1277 | MB 5V_AUX       | Voltage           | 4.94       | V     | 'OK'
1344 | MB 3.3V_AUX     | Voltage           | 3.31       | V     | 'OK'
1411 | PCH 1.8V        | Voltage           | 1.80       | V     | 'OK'
1478 | PCH PVNN        | Voltage           | 0.83       | V     | 'OK'
1545 | PCH 1.05V       | Voltage           | 1.05       | V     | 'OK'
1612 | BMC 2.5V        | Voltage           | 2.56       | V     | 'OK'
1679 | BMC 1.8V        | Voltage           | 1.81       | V     | 'OK'
1746 | BMC 1.2V        | Voltage           | 1.20       | V     | 'OK'
1813 | BMC 1.0V        | Voltage           | 1.02       | V     | 'OK'
1880 | VDimmAB         | Voltage           | 1.11       | V     | 'OK'
1947 | CPU 1.8V_AUX    | Voltage           | 1.80       | V     | 'OK'
2014 | CPU 1.05V       | Voltage           | 1.05       | V     | 'OK'
2081 | Chassis Intru   | Physical Security | N/A        | N/A   | 'OK'

image.thumb.png.a4992379a356a111fd1e5228d516097c.png

Link to comment

Hi I recently built my first unraid install,

 

and this is my first ever post on the unraid forum,  I apologize for this poorly written post, I wanted to jot it all down before I forgot what I did, I will come back and edit it later.

 

 

the mob I used is a w480d4u ASRock board and I was having a hard time getting the ipmitools plugin to work. I eventually found this forum and after many hours of not being able to get it to work I found a few interesting things 1 the script that configures the fans was trying to call ipmi-raw, after installing the plugin this file didn't exist, however there was ipmiraw so at the bash shell on unraid I tried to do a manual write to the fans to control the speed with ipmiraw copying the values from the asrock section of the ipmi2json which is when I figured out that ASRock has changed the codes for their ipmiraw to be:

 

    View the current manually set duty cycle  > 00 3a d7     

    Change fan duty cycle                              > 00 3a d6

    Set to auto on and off                              > 00 3a d8  

 

After notice that I can set the ipmi duty cycle to manual and a speed in the bmc then run ipmiraw 003a d7 to view it and got a response that was D7 00 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 I was hopeful that I could then change it, so I ran ipmiraw 00 3a d6 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 and i then opened my bmc went to settings then looked at fan settings and notices that all my fans were set to 20 which is the lowest duty cycle in the acceptable range i knew that it was possible to get this working. So I then ran the ipmi2json --debug and saw the command line was wrong  ipmi-raw 00 3a 01 00 00 00 00 00 which only returned location : none

so I then found a different ipmi2json that has some changes in it for ASRock bords which also didn't work. but it lead me to ipmi-raw not being a valid command on my unraid 6.12 then after typing ipmi and hitting tab a few times I found ipmiraw, so I did a find and replace in the ipmi2json and reran it with the --debug switch to which it still failed but I then saw what was the last issue I was going to run into. (01) the impiraw 00 3a d6 01 64 64 64 64 64 64 64 64 64 after a bit of digging on the ASRock site I found an faq https://www.asrockrack.com/support/faq.asp#:~:text=by running%3A “-,Sudo ipmitool raw 0x3a 0xd6,-0x64 0x64 0x64  that listed the formate this command needs to be the length and the characters meaning no 01 so then I went into the ipmi2json and found this  

 

 $raw = "${lun} ${netfn} ${i}1";

 

to which I modified to 

 

 $raw = "${lun} ${netfn}"; #${i}1";  I commented out the last part that was adding the 0 Infront of the 1 as I don't know what it does normally but I knew that it was breaking it for me.

 

then I reran impi2json and it found my fans and I just about jumped out of my chair scarring the cat.

 

Then I did a find and replace on ipmifan as well then I put my fans in manual mode and click configure, and it worked and found my pmw fans then I also found that the configure button in the settings can't only be pressed once, because the ipmi2json puts the fans back into auto which is controlled by the bmc so they need to be put in manually mode before the configure button is ran each time so I added that to the ipmi2json  and that is done by ipmiraw 00 3a d8 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01,

if you choose to use these you will need to chmod them to make them executable.

 

I hope this helps someone. good luck.

ipmifan ipmi2json

  • Thanks 1
Link to comment
  • 3 weeks later...
On 2/24/2024 at 3:47 PM, SimonF said:

Are you using my version of the plugin? Or the original authors one.

Hi, I'm sorry for missing your question. Yes,I use your version. I also tried the other one once it started failing, without success. I cleaned all files manually and re-installed several times to no effect and we're getting exact same errors reproduced each time as shared before.

Eventually I moved the server into garage (cooler place) and its doing fine there (somehow the ipmi's own fan control is working well in the garage and not stressing the fan as much as when I kept it in the heated room). But the package doesn't work.

Im wondering whether I could get hold of the previous version say one before update posted last December and to install it manually and see if it works again?

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.

×
×
  • Create New...