Git Product home page Git Product logo

dell_idrac_fan_controller_docker's Introduction

Warning If you update to the latest version, be sure to replace "CPU_TEMPERATURE_TRESHOLD" environment variable with "CPU_TEMPERATURE_THRESHOLD" which was a typo

Dell iDRAC fan controller Docker image

Download Docker image from :

Table of Contents
  1. Container console log example
  2. Supported architectures
  3. Usage
  4. Parameters
  5. Troubleshooting
  6. Contributing

Container console log example

image

(back to top)

Prerequisites

iDRAC version

This Docker container only works on Dell PowerEdge servers that support IPMI commands, i.e. < iDRAC 9 firmware 3.30.30.30.

To access iDRAC over LAN (not needed in "local" mode) :

  1. Log into your iDRAC web console

001

  1. In the left side menu, expand "iDRAC settings", click "Network" then click "IPMI Settings" link at the top of the web page.

002

  1. Check the "Enable IPMI over LAN" checkbox then click "Apply" button.

003

  1. Test access to IPMI over LAN running the following commands :
apt -y install ipmitool
ipmitool -I lanplus \
  -H <iDRAC IP address> \
  -U <iDRAC username> \
  -P <iDRAC password> \
  sdr elist all

(back to top)

Supported architectures

This Docker container is currently built and available for the following CPU architectures :

  • AMD64
  • ARM64

(back to top)

Usage

  1. with local iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=local \
  -e FAN_SPEED=<decimal or hexadecimal fan speed> \
  -e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
  -e CHECK_INTERVAL=<seconds between each check> \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  --device=/dev/ipmi0:/dev/ipmi0:rw \
  tigerblue77/dell_idrac_fan_controller:latest
  1. with LAN iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=<iDRAC IP address> \
  -e IDRAC_USERNAME=<iDRAC username> \
  -e IDRAC_PASSWORD=<iDRAC password> \
  -e FAN_SPEED=<decimal or hexadecimal fan speed> \
  -e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
  -e CHECK_INTERVAL=<seconds between each check> \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  tigerblue77/dell_idrac_fan_controller:latest

docker-compose.yml examples:

  1. to use with local iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: tigerblue77/dell_idrac_fan_controller:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=local
      - FAN_SPEED=<decimal or hexadecimal fan speed>
      - CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
      - CHECK_INTERVAL=<seconds between each check>
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>
    devices:
      - /dev/ipmi0:/dev/ipmi0:rw
  1. to use with LAN iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: tigerblue77/dell_idrac_fan_controller:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=<iDRAC IP address>
      - IDRAC_USERNAME=<iDRAC username>
      - IDRAC_PASSWORD=<iDRAC password>
      - FAN_SPEED=<decimal or hexadecimal fan speed>
      - CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
      - CHECK_INTERVAL=<seconds between each check>
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>

(back to top)

Parameters

All parameters are optional as they have default values (including default iDRAC username and password).

  • IDRAC_HOST parameter can be set to "local" or to your distant iDRAC's IP address. Default value is "local".
  • IDRAC_USERNAME parameter is only necessary if you're adressing a distant iDRAC. Default value is "root".
  • IDRAC_PASSWORD parameter is only necessary if you're adressing a distant iDRAC. Default value is "calvin".
  • FAN_SPEED parameter can be set as a decimal (from 0 to 100%) or hexadecimaladecimal value (from 0x00 to 0x64) you want to set the fans to. Default value is 5(%).
  • CPU_TEMPERATURE_THRESHOLD parameter is the T°junction (junction temperature) threshold beyond which the Dell fan mode defined in your BIOS will become active again (to protect the server hardware against overheat). Default value is 50(°C).
  • CHECK_INTERVAL parameter is the time (in seconds) between each temperature check and potential profile change. Default value is 60(s).
  • DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE parameter is a boolean that allows to disable third-party PCIe card Dell default cooling response. Default value is false.

(back to top)

Troubleshooting

If your server frequently switches back to the default Dell fan mode:

  1. Check Tcase (case temperature) of your CPU on Intel Ark website and then set CPU_TEMPERATURE_THRESHOLD to a slightly lower value. Example with my CPUs (Intel Xeon E5-2630L v2) : Tcase = 63°C, I set CPU_TEMPERATURE_THRESHOLD to 60(°C).
  2. If it's already good, adapt your FAN_SPEED value to increase the airflow and thus further decrease the temperature of your CPU(s)
  3. If neither increasing the fan speed nor increasing the threshold solves your problem, then it may be time to replace your thermal paste

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

dell_idrac_fan_controller_docker's People

Contributors

alombardo4 avatar hollanbm avatar louispires avatar soxguy avatar tigerblue77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dell_idrac_fan_controller_docker's Issues

Changed for Dell rx40 series

More of a note2self on some changes needed for the rX40 series. You do need idrac version 3.30.30.30 or lower for these API commands to work.

  1. CPU shows up as <CPU_NUM_1> <TEMP> <CPU_NUM_2> <TEMP>, dual CPU for example 01 30 02 30 - Code Link
  2. 3rd party PCI hook does not exist on this platform Code Link

TODO, add a env variable to indicate newer platforms and omit these options if True

Support the absence of CPU2 and EXHAUST temperature sensors

Hi, was hoping to get some advice on how to modify the .sh to delete unused temperature sensors. My server is a Dell Poweredge T320 which only has two temperature sensors built in, CPU1 & INLET.

Here's what the log is showing:
log

I've already exported and extracted the image. Opened the .sh file and commented out the unnecessary lines. Here's a pic of the changes I made:

changes

But upon trying to import the updated .tar through Portainer nothing seems to happen.

Is there an easier method I may be overlooking? I'm rather new to docker in general and just came across your script this weekend.

Fan control does not function correctly with Dell PowerEdge R330

Server Platform: Dell PowerEdge R330
CPU: Intel Xeon E3-1270 v6
iDRAC Version: 2.84.84.84
Docker Version: 20.10.18, build b40c2f6
Other info: Running as K3s pod via TrueNAS Scale 22.12.3.3 (TrueCharts Catalog)

This script works great on my PowerEdge R620 when ran as a TrueNAS Scale Application but not so much on my R330. The issue shows up in two forms: Unable to print the information about CPU temperatures and unable to compare CPU temperatures.

Relevant Logs:

2023-08-11 02:58:21.386121+00:002023-08-11T02:58:21.386121228Z
2023-08-11 02:58:41.463842+00:00Error: Unable to establish IPMI v2 / RMCP+ session
2023-08-11 02:58:41.474752+00:00No exhaust temperature sensor detected.
2023-08-11 02:58:41.474778+00:00No CPU2 temperature sensor detected.
2023-08-11 02:58:41.474785+00:002023-08-11T02:58:41.474785154Z
2023-08-11 02:59:01.535821+00:00Error: Unable to establish IPMI v2 / RMCP+ session
2023-08-11 02:59:01.599634+00:00/Dell_iDRAC_fan_controller.sh: line 169: [: -gt: unary operator expected
2023-08-11 02:59:21.671821+00:00Error: Unable to establish IPMI v2 / RMCP+ session
2023-08-11 02:59:41.741275+00:00Error: Unable to establish IPMI v2 / RMCP+ session
2023-08-11 03:00:01.807774+00:00Error: Unable to establish IPMI v2 / RMCP+ session
2023-08-11 03:00:01.810218+00:00------- Temperatures -------
2023-08-11 03:00:01.810303+00:00Date & time Inlet CPU 1 CPU 2 Exhaust Active fan speed profile Third-party PCIe card Dell default cooling response Comment
2023-08-11 03:00:01.813478+00:0011-08-2023 03:00:01 0°C 0°C User static fan control profile (30%)°C Enabled°C CPU temperature decreased and is now OK (<= 70°C), user's fan control profile applied.
2023-08-11 03:00:01.813542+00:00/Dell_iDRAC_fan_controller.sh: line 234: printf: -: invalid number
2023-08-11 03:00:01.813661+00:00/Dell_iDRAC_fan_controller.sh: line 234: printf: -: invalid number

I'm not sure if this is an error in the script or an error in my environment. I am leaning slightly towards an error in the script:

2023-08-11 02:59:01.599634+00:00/Dell_iDRAC_fan_controller.sh: line 169: [: -gt: unary operator expected
This seems to imply that the CPU temperature isn't being polled correctly

2023-08-11 03:00:01.813542+00:00/Dell_iDRAC_fan_controller.sh: line 234: printf: -: invalid number
This seems to imply that the CPU temp is showing as "null".

I'm going to test this out by simply running the script standalone and report back later with those results.

Container keeps shutting down

I'm running the latest stable and it keeps shutting down automatically. It will only stay up for a second or two.

Server powered off then back online,Fan Contoller can't detect CPU2 Temperature

./Dell_iDRAC_fan_controller.sh: line 94: [: -gt: unary operator expected
------- Temperatures -------
Date & time Inlet CPU 1 CPU 2 Exhaust Active fan speed profile Third-party PCIe card Dell default cooling response Comment
./Dell_iDRAC_fan_controller.sh: line 159: printf: -: invalid number
21-05-2024 07:45:31 27°C 0°C 34°C User static fan control profile (15%)°C Disabled CPU temperature decreased and is now OK (<= 55°C), user's fan control profile applied.
./Dell_iDRAC_fan_controller.sh: line 94: [: -gt: unary operator expected
./Dell_iDRAC_fan_controller.sh: line 159: printf: -: invalid number
21-05-2024 07:46:31 27°C 0°C 34°C User static fan control profile (15%)°C Disabled -
./Dell_iDRAC_fan_controller.sh: line 94: [: -gt: unary operator expected
./Dell_iDRAC_fan_controller.sh: line 159: printf: -: invalid number
21-05-2024 07:47:31 27°C 0°C 34°C User static fan control profile (15%)°C Disabled -
./Dell_iDRAC_fan_controller.sh: line 94: [: -gt: unary operator expected
./Dell_iDRAC_fan_controller.sh: line 159: printf: -: invalid number
21-05-2024 07:48:31 27°C 0°C 34°C User static fan control profile (15%)°C Disabled -
./Dell_iDRAC_fan_controller.sh: line 94: [: -gt: unary operator expected
21-05-2024 07:49:34 27°C 0°C 34°C User static fan control profile (15%)°C Disabled -
./Dell_iDRAC_fan_controller.sh: line 159: printf: -: invalid number
21-05-2024 07:50:36 27°C 39°C -°C 34°C User static fan control profile (15%) Disabled -
21-05-2024 07:51:32 27°C 46°C -°C 33°C User static fan control profile (15%) Disabled -
21-05-2024 07:52:42 27°C 43°C -°C 33°C User static fan control profile (15%) Disabled -
21-05-2024 07:53:35 27°C 45°C -°C 34°C User static fan control profile (15%) Disabled -
21-05-2024 07:54:32 27°C 53°C -°C 34°C User static fan control profile (15%) Disabled -

Your server isn't a dell product

I have a dell PowerEdge R720xd. And I'm trying to reduce the fan speed a bit. I stubled across this script and when I tried executing it using docker I get the following error when doing sudo docker logs (containername).

iDRAC/IPMI username: root
iDRAC/IPMI password: calvin
/!\ Your server isn't a Dell product. Exiting.

Any fix for this?

Does not work on iDRAC 9

I own a R550 with an iDRAC 9 running firmware 6.0.30.0. The script does not work and the error returned is: Insufficient privilege level.

Is there any way I could downgrade to version 3.30.30.30 (before Dell removed the ability to control fan speed)? I really need to lower the noise of the server and I can't find anything...

Change CPU_TEMPERATURE_TRESHOLD default value to "high" value returned by "lm-sensors" utility

# apt install -y lm-sensors
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +45.0°C  (high = +62.0°C, crit = +72.0°C)
Core 0:        +44.0°C  (high = +62.0°C, crit = +72.0°C)
Core 1:        +44.0°C  (high = +62.0°C, crit = +72.0°C)
Core 2:        +44.0°C  (high = +62.0°C, crit = +72.0°C)
Core 3:        +44.0°C  (high = +62.0°C, crit = +72.0°C)
Core 4:        +44.0°C  (high = +62.0°C, crit = +72.0°C)
Core 5:        +44.0°C  (high = +62.0°C, crit = +72.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Package id 1:  +40.0°C  (high = +62.0°C, crit = +72.0°C)
Core 0:        +36.0°C  (high = +62.0°C, crit = +72.0°C)
Core 1:        +39.0°C  (high = +62.0°C, crit = +72.0°C)
Core 2:        +40.0°C  (high = +62.0°C, crit = +72.0°C)
Core 3:        +38.0°C  (high = +62.0°C, crit = +72.0°C)
Core 4:        +37.0°C  (high = +62.0°C, crit = +72.0°C)
Core 5:        +36.0°C  (high = +62.0°C, crit = +72.0°C)

CPU_TEMPERATURE_TRESHOLD variable getting ignored

Hi..

Manually entered CPU temp threshold (in the docker config) is getting ignored no matter what I set it to and the "default" value is used.

The fan speed is controlled as expected (ie. goes "Dell Default" when temp is above threshold and fans spin up, goes to the FAN_SPEED objective I entered in the container variable when temp drops below threshold), just not sure why the CPU temp threshold I entered is getting ignored.

Using unRAID 6.11.5 on a Dell r720xd and iDRAC7 v2.60.60.60 build 52

I have tried with DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE set to both false and true with no change in result. I also tried changing the "Default" container variable from 50 to 65. It seems intent on using 50 as the threshold.

Log output below is with container variable CPU_TEMPERATURE_TRESHOLD set to 65

iDRAC/IPMI host: 192.168.xxx.yyy
iDRAC/IPMI username: aaa
iDRAC/IPMI password: bbb
Fan speed objective: 35%
CPU temperature threshold: 50°C
Check interval: 15s

                     ------- Temperatures -------
    Date & time      Inlet  CPU 1  CPU 2  Exhaust          Active fan speed profile          Third-party PCIe card Dell default cooling response  Comment
15-03-2023 16:34:32   27°C   48°C   56°C     37°C  Dell default dynamic fan control profile

Any help is greatly appreciated!

Dell_iDRAC_fan_controller.sh: line 234: printf: -: invalid number

Dell_iDRAC_fan_controller  |                      ------- Temperatures -------
Dell_iDRAC_fan_controller  |     Date & time      Inlet  CPU 1  CPU 2  Exhaust          Active fan speed profile          Third-party PCIe card Dell default cooling response  Comment
Dell_iDRAC_fan_controller  | 12-08-2023 06:31:55   30°C    0°C    -°C  User static fan control profile (5%)°C                                   Enabled  CPU temperature decreased and is now OK (<= 50°C), user's fan control profile applied.  
Dell_iDRAC_fan_controller  | /Dell_iDRAC_fan_controller.sh: line 234: printf: -: invalid number
^CGracefully stopping... (press Ctrl+C again to force)

this is my output.
Using docker compose.
Tried docker compose with configured parameters and tried with only Host, Username, and Password configured. Still getting the printf error on line 234.

This is on a dell T620

Unraid - Add ability to ramp fan based on Array device temperatures instead of CPU

Hello,

I would love to see an option to have the fan control be based off a different temp for my Unraid server. I have a few cache drives at the back of my R720XD and the tend to stay at higher temps than the CPU so the fan control doesn't manage it very well. It would be nice to have this track thresholds for different devices and allow fans to ramp up for any of them.

Add Docker image versionning tags

Hi just updated to v1.5 which isn't working for me (see issue #76)
and wanted to rollback to previous version but there don't appear to be tags to pull older images, only latest.

Thanks you so much for your project.

Unable to send RAW command Error

iDRAC/IPMI host: local
Fan speed objective: 5%
CPU temperature threshold: 50°C
Check interval: 60s

Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xce rsp=0xc1): Invalid command

                     ------- Temperatures -------

    Date & time      Inlet  CPU 1  CPU 2  Exhaust          Active fan speed profile          Third-party PCIe card Dell default cooling response  Comment

11-03-2023 03:32:15   24°C   59°C   58°C     42°C  Dell default dynamic fan control profile                                              Enabled   -

Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xce rsp=0xc1): Invalid command

11-03-2023 03:33:15   23°C   58°C   51°C     41°C  Dell default dynamic fan control profile                                              Enabled   -

Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xce rsp=0xc1): Invalid command

11-03-2023 03:34:15   23°C   58°C   54°C     41°C  Dell default dynamic fan control profile

R720xD, over local, default ENV variables

Installed this on my Dell R510 in Unraid and have an error in the bash script ( Posting details below )

bash Dell_iDRAC_fan_controller.sh

iDRAC/IPMI host: 192.168.2.11
iDRAC/IPMI username: root
iDRAC/IPMI password: xxxxxx
Fan speed objective: 5%
CPU temperature treshold: 50°C
Check interval: 60s

No exhaust temperature sensor detected.
No CPU2 temperature sensor detected.

Dell_iDRAC_fan_controller.sh: line 165: [: -gt: unary operator expected
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0x30 rsp=0xcc): Invalid data field in request
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xce rsp=0xc1): Invalid command
------- Temperatures -------
Date & time Inlet CPU 1 CPU 2 Exhaust Active fan speed profile Third-party PCIe card Dell default cooling response Comment
Dell_iDRAC_fan_controller.sh: line 230: printf: -: invalid number
Dell_iDRAC_fan_controller.sh: line 230: printf: -: invalid number
08-02-2023 06:55:41 0°C 0°C User static fan control profile (5%)°C Enabled°C CPU temperature decreased and is now OK (<= 50°C), user's fan control profile applied.

Platform check failing on a Dell PowerEdge R730xd

I just updated and now it is not booting up. "/!\ Your server isn't a Dell product. Exiting." is logged twice.

I'm running this container on Unraid on a Poweredge R730xd.

This project has solved a problem for me and many of us, I'm sure. Thanks!

Error: Unable to establish IPMI v2 / RMCP+ session

I am running it on unraid on a Dell R410. I can run IPMI commands from my windows PC.

The logs on unraid are

Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 69: [: -gt: unary operator expected
/Dell_iDRAC_fan_controller.sh: line 70: [: -gt: unary operator expected
Error: Unable to establish IPMI v2 / RMCP+ session
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 114: printf: User static fan control profile (5%): invalid number
/Dell_iDRAC_fan_controller.sh: line 114: printf: CPU temperature decreased and is now OK (<= 50°C). User's fan control profile applied.: invalid number
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 69: [: -gt: unary operator expected
/Dell_iDRAC_fan_controller.sh: line 70: [: -gt: unary operator expected
Error: Unable to establish IPMI v2 / RMCP+ session
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 114: printf: User static fan control profile (5%): invalid number
/Dell_iDRAC_fan_controller.sh: line 114: printf:  -: invalid number
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 69: [: -gt: unary operator expected
/Dell_iDRAC_fan_controller.sh: line 70: [: -gt: unary operator expected
Error: Unable to establish IPMI v2 / RMCP+ session
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 114: printf: User static fan control profile (5%): invalid number
/Dell_iDRAC_fan_controller.sh: line 114: printf:  -: invalid number
Error: Unable to establish IPMI v2 / RMCP+ session
/Dell_iDRAC_fan_controller.sh: line 69: [: -gt: unary operator expected
/Dell_iDRAC_fan_controller.sh: line 70: [: -gt: unary operator expected
Idrac/IPMI host: 192.168.1.10
Idrac/IPMI username: anthony0030
Idrac/IPMI password: <PASSWORD HERE>
Fan speed objective: 5%
CPU temperature treshold: 50°C
Check interval: 10s

                   ------- Temperatures -------
   Date & time     Inlet  CPU 1  CPU 2  Exhaust          Active fan speed profile          Comment
02-02-23 19:29:16    0°C    0°C    0°C      0°C                                            
02-02-23 19:30:16    0°C    0°C    0°C      0°C                                            
02-02-23 19:31:17    0°C    0°C    0°C      0°C                                            
Idrac/IPMI host: 192.168.1.10
Idrac/IPMI username: anthony0030
Idrac/IPMI password: <PASSWORD HERE>
Fan speed objective: 5%
CPU temperature treshold: 50°C
Check interval: 10s

On my computer I get

C:\ipmitool_1.8.18-dellemc_p001>ipmitool -I lanplus -H 192.168.1.10 -U anthony0030 -P <PASSWORD HERE> sdr elist all
Temp             | 01h | ns  |  3.1 | Disabled
Temp             | 02h | ns  |  3.2 | Disabled
Temp             | 05h | ns  | 10.1 | Disabled
Temp             | 06h | ns  | 10.2 | Disabled
Ambient Temp     | 07h | ns  | 10.1 | Disabled
Ambient Temp     | 08h | ns  | 10.2 | Disabled
Temp             | 0Ah | ns  |  8.1 | Disabled
Temp             | 0Bh | ns  |  8.1 | Disabled
Temp             | 0Ch | ns  |  8.1 | Disabled
Ambient Temp     | 0Eh | ok  |  7.1 | 19 degrees C
Planar Temp      | 0Fh | ns  |  7.1 | Disabled
CMOS Battery     | 10h | ok  |  7.1 |
ROMB Battery     | 11h | ns  | 26.3 | Disabled
VCORE PG         | 12h | ok  |  3.1 | State Deasserted
VCORE PG         | 13h | ok  |  3.2 | State Deasserted
0.75 VTT PG      | 14h | ok  |  3.2 | State Deasserted
0.75 VTT PG      | 15h | ok  |  3.1 | State Deasserted
CPU VTT PG       | 16h | ok  |  7.1 | State Deasserted
1.5V PG          | 17h | ok  |  7.1 | State Deasserted
1.8V PG          | 18h | ok  |  7.1 | State Deasserted
5V PG            | 1Ah | ok  |  7.1 | State Deasserted
MEM CPU2 FAIL    | 1Bh | ok  |  7.1 | State Deasserted
5V Riser1 PG     | 1Ch | ok  | 16.1 | State Deasserted
MEM CPU1 FAIL    | 1Eh | ok  |  7.1 | State Deasserted
VTT CPU2 FAIL    | 1Fh | ok  |  7.1 | State Deasserted
VTT CPU1 FAIL    | 20h | ok  |  7.1 | State Deasserted
0.9V PG          | 21h | ok  |  7.1 | State Deasserted
CPU2 1.8 PLL PG  | 22h | ok  |  7.1 | State Deasserted
CPU1 1.8 PLL PG  | 24h | ok  |  7.1 | State Deasserted
1.1 FAIL         | 28h | ok  |  7.1 | State Deasserted
1.0 LOM FAIL     | 29h | ok  |  7.1 | State Deasserted
1.0 AUX FAIL     | 2Ah | ok  |  7.1 | State Deasserted
FAN MOD 1A RPM   | 30h | ok  |  7.1 | 5400 RPM
FAN MOD 1B RPM   | 31h | ok  |  7.1 | 3840 RPM
FAN MOD 2A RPM   | 32h | ok  |  7.1 | 5520 RPM
FAN MOD 2B RPM   | 33h | ok  |  7.1 | 3720 RPM
FAN MOD 3A RPM   | 34h | ok  |  7.1 | 5400 RPM
FAN MOD 3B RPM   | 35h | ok  |  7.1 | 3720 RPM
FAN MOD 4A RPM   | 36h | ok  |  7.1 | 7680 RPM
FAN MOD 4B RPM   | 37h | ok  |  7.1 | 5400 RPM
FAN MOD 5A RPM   | 38h | ns  |  7.1 | Disabled
FAN MOD 5B RPM   | 39h | ns  |  7.1 | Disabled
FAN MOD 6A RPM   | 3Ah | ns  |  7.1 | Disabled
FAN MOD 6B RPM   | 3Bh | ns  |  7.1 | Disabled
Presence         | 50h | ok  |  3.1 | Present
Presence         | 51h | ok  |  3.2 | Present
Heatsink Pres    | 52h | ok  |  7.1 | Present
Presence         | 54h | ok  | 10.1 | Absent
Presence         | 55h | ok  | 10.2 | Absent
Presence         | 56h | ok  | 26.1 | Present
USB Cable Pres   | 59h | ok  |  7.1 | Present
Riser1 Pres      | 5Ch | ok  |  7.1 | Present
PFault Fail Safe | 5Fh | ns  |  7.1 | No Reading
Status           | 60h | ok  |  3.1 | Presence detected
Status           | 61h | ok  |  3.2 | Presence detected
Status           | 64h | ns  | 10.1 | Disabled
Status           | 65h | ns  | 10.2 | Disabled
Status           | 66h | ok  |  7.1 | Connected
iDRAC6 Ent PRES  | 70h | ok  |  7.1 | Present
OS Watchdog      | 71h | ok  |  7.1 |
SEL              | 72h | ns  |  7.1 | No Reading
Intrusion        | 73h | ok  |  7.1 |
PS Redundancy    | 74h | ns  |  7.1 | No Reading
Fan Redundancy   | 75h | ok  |  7.1 | Fully Redundant
CPU Temp Interf  | 76h | ns  |  7.1 | Disabled
iDRAC6 Upgrade   | 77h | ns  |  7.1 | No Reading
Drive            | 80h | ok  | 26.1 | Drive Present
Cable SAS A      | 90h | ok  | 26.1 | Connected
Current          | 94h | ns  | 10.1 | No Reading
Current          | 95h | ns  | 10.2 | No Reading
Voltage          | 96h | ns  | 10.1 | No Reading
Voltage          | 97h | ns  | 10.2 | No Reading
System Level     | 98h | ns  |  7.1 | No Reading
Power Optimized  | 99h | ok  |  7.1 |
DKM Status       | A0h | ok  |  7.1 |
iDRAC6           | 00h | ok  |  7.1 | Dynamic MC @ 20h
System Board     | 00h | ns  |  7.1 | Logical FRU @00h
CPU1             | 00h | ns  |  3.1 | Physical FRU @B0h
CPU2             | 00h | ns  |  3.2 | Physical FRU @B0h
PS 1             | 00h | ns  | 10.1 | Logical FRU @02h
PS 2             | 00h | ns  | 10.2 | Logical FRU @03h
Storage          | 00h | ns  | 26.1 | Logical FRU @05h
Riser1           | 00h | ns  | 16.1 | Physical FRU @B0h
Riser2           | 00h | ns  | 16.2 | Physical FRU @B1h
ECC Corr Err     | 01h | ns  | 34.1 | No Reading
ECC Uncorr Err   | 02h | ns  | 34.1 | No Reading
I/O Channel Chk  | 03h | ns  | 34.1 | No Reading
PCI Parity Err   | 04h | ns  | 34.1 | No Reading
PCI System Err   | 05h | ns  | 34.1 | No Reading
SBE Log Disabled | 06h | ns  | 34.1 | No Reading
Logging Disabled | 07h | ns  | 34.1 | No Reading
Unknown          | 08h | ns  | 34.1 | No Reading
CPU Protocol Err | 0Ah | ns  | 34.1 | No Reading
CPU Bus PERR     | 0Bh | ns  | 34.1 | No Reading
CPU Init Err     | 0Ch | ns  | 34.1 | No Reading
CPU Machine Chk  | 0Dh | ns  | 34.1 | No Reading
Memory Spared    | 11h | ns  | 34.1 | No Reading
Memory Mirrored  | 12h | ns  | 34.1 | No Reading
Memory RAID      | 13h | ns  | 34.1 | No Reading
Memory Added     | 14h | ns  | 34.1 | No Reading
Memory Removed   | 15h | ns  | 34.1 | No Reading
Memory Cfg Err   | 16h | ns  | 34.1 | No Reading
Mem Redun Gain   | 17h | ns  | 34.1 | No Reading
PCIE Fatal Err   | 18h | ns  | 34.1 | No Reading
Chipset Err      | 19h | ns  | 34.1 | No Reading
Err Reg Pointer  | 1Ah | ns  | 34.1 | No Reading
Mem ECC Warning  | 1Bh | ns  | 34.1 | No Reading
Mem CRC Err      | 1Ch | ns  | 34.1 | No Reading
USB Over-current | 1Dh | ns  | 34.1 | No Reading
POST Err         | 1Eh | ns  | 34.1 | No Reading
Hdwr version err | 1Fh | ns  | 34.1 | No Reading
Mem Overtemp     | 20h | ns  | 34.1 | No Reading
Mem Fatal SB CRC | 21h | ns  | 34.1 | No Reading
Mem Fatal NB CRC | 22h | ns  | 34.1 | No Reading
OS Watchdog Time | 23h | ns  | 34.1 | No Reading
Non Fatal PCI Er | 26h | ns  | 34.1 | No Reading
Fatal IO Error   | 27h | ns  | 34.1 | No Reading
MSR Info Log     | 28h | ns  | 34.1 | No Reading
Storage          | 00h | ns  | 26.3 | Logical FRU @04h
vFlash           | D3h | ok  | 11.2 |

C:\ipmitool_1.8.18-dellemc_p001>

PS: the username is not root

Latest version error "/!\ Your server isn't a Dell product. Exiting.'

Just pulled the latest version of the image and am getting the following now with an R730xd, dRAC 8 v2.81.81.81:

/!\ Your server isn't a Dell product. Exiting.

Compose:

version: '3'

services:
  Dell_iDRAC_fan_controller:
    image: tigerblue77/dell_idrac_fan_controller
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=<HOST IP>
      - IDRAC_USERNAME=root
      - IDRAC_PASSWORD=password!
      - FAN_SPEED=5
      - CPU_TEMPERATURE_THRESHOLD=50
      - CHECK_INTERVAL=15
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=true
    labels:
     - diun.enable=true

Add the ability to disable the third-party PCIe card default cooling

image

  • maybe apply only if parameter supplied as boolean environment variable ?
  • maybe apply only if PCIe card present ?

Enable third-party PCIe card default cooling response

ipmitool -I lanplus -H <IPADDRESS> -U <USERNAME> -P <PASSWORD> raw 0x30 0xce 0x00 0x16 0x05 0x00 0x00 0x00 0x050x00 0x00 0x00 0x00

Disable third-party PCIe card default cooling response

ipmitool -I lanplus -H <IPADDRESS> -U <USERNAME> -P <PASSWORD> raw 0x30 0xce 0x00 0x16 0x05 0x00 0x00 0x00 0x05 0x00 0x01 0x00 0x00

Get Third-Party PCIe Card Default Cooling Response Logic Status

ipmitool -I lanplus -H <IPADDRESS> -U <USERNAME> -P <PASSWORD> raw 0x30 0xce 0x01 0x16 0x05 0x00 0x00 0x00

The response data is:

  • 16 05 00 00 00 05 00 01 00 00 (Disabled)
  • 16 05 00 00 00 05 00 00 00 00 (Enabled)

Source : https://www.dell.com/support/kbdoc/en-us/000135682/how-to-disable-the-third-party-pcie-card-default-cooling-response-on-poweredge-13g-servers

Other links :

Invalid Octal Number

When running the container, an invalid octal number error is thrown during execution of the shell script.

It appears that all the values are in the echo, so I'm unsure what's causing this.

username: root
iDRAC/IPMI password:
Server model: DELL PowerEdge R930
iDRAC/IPMI host:
Fan speed objective: 5%
CPU temperature threshold: 28°C
Check interval: 300s
------- Temperatures -------
Date & time Inlet CPU 1 CPU 2 Exhaust Active fan speed profile Third-party PCIe card Dell default cooling response Comment
26-05-2024 03:09:23 22°C 0°C 29°C 28°C Dell default dynamic fan control profile Enabled -
./Dell_iDRAC_fan_controller.sh: line 159: printf: 09: invalid octal number

iDrac6 missing product info causing exit

Recent update broke the tool on my PowerEdge R410 where IPMI does not return product info in LAN mode with command:

ipmitool -I lanplus -H <IP> -U <user> -P <pass> fru

Example output PowerEdge R410:

 FRU Device Description : Builtin FRU Device (ID 0)
  Board Mfg Date        : Sun Jan  3 06:18:00 2010 CET
  Board Mfg             : DELL
  Board Product         : PowerEdge R410                
  Board Serial          : XXXXX
  Board Part Number     : 0N051FA04

Example output PowerEdge R730:

 FRU Device Description : Builtin FRU Device (ID 0)
  Board Mfg Date        : Fri Aug 28 07:20:00 2015 CEST
  Board Mfg             : DELL
  Board Product         : PowerEdge R730                
  Board Serial          : XXXXX
  Board Part Number     : 0H21J3A10
  Product Manufacturer  : DELL
  Product Name          : PowerEdge R730
  Product Version       : 01
  Product Serial        : XXXXX

The container exits with message:

Your server isn't a Dell product. Exiting.

As I understand the script uses "Product Manufacturer" and "Product Name" to verify correct hardware, without this the tool exits.

Updated description to correct formatting.

2nd Threshold?

It might be nice if there were an intermediate threshold as well. For example, I have mine set at 25% fan speed, which is fine most of the time. However, occasionally when the load increases, it will jump to the BIOS setting, and be running at like 93% for a bit until it cools down.

I'd prefer to have at least one more threshold, as an option. When it hits that 2nd threshold, perhaps I'd set the fan to go up 45% or 50% instead of the BIOS settings. Then, if it hits my current threshold, it would kick over to the BIOS like normal.

Hopefully that makes sense, and I know that if you could have 2, then people could request 3, 4, or 5. Hopefully people wouldn't ask for that, but I think that 2 would be sufficient for me.

Either way, thanks a ton. This has been the best solution I've found.

Unraid App No

It looks like the Unraid app version of this has disappeared. Could you look into getting this republished?

Periodic Error: User static fan control profile (5%): invalid number

Running a container with idrac over IP with the following settings:

docker run
  -d
  --name='Dell-iDRAC-Fan-Controller'
  --net='bridge'
  -e TZ="Europe/Paris"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Tower"
  -e HOST_CONTAINERNAME="Dell-iDRAC-Fan-Controller"
  -e 'IDRAC_HOST'='192.168.1.205'
  -e 'FAN_SPEED'='5'
  -e 'CPU_TEMPERATURE_TRESHOLD'='50'
  -e 'CHECK_INTERVAL'='60'
  -e 'IDRAC_USERNAME'='<username>'
  -e 'IDRAC_PASSWORD'='<password>'
  -l net.unraid.docker.managed=dockerman 'tigerblue77/dell_idrac_fan_controller:latest'

And is seeing the following error in the log
image

Every now and then the error is duplicated in the log

Default container on Poweredge R410 stopped/started fans a few times then powered off "permanently". Not responding to AC re-plugging, not even the little blue status display at the front.

I've got a Poweredge R410 here with a faulty fan which seems to be pushing out as much air as all the others - but its sensor is not being detected. As such, the server is running at 100% fan speeds until this gets addressed, which is a few weeks away.

I started up the example docker-compose.yml for local mode and went out to check this server which was running its fans at full speed. The server's fans stopped and started over the course of a few minutes and then seemingly dropped offline as I went back to the desk no longer responding to pings.

Upon further inspection the host no longer powers on and removing the two AC leads from the dual power supplies for a few minutes and re-plugging them causes each power supply to light up ready for work, but the host itself is entirely unresponsive to this event including the little blue LCD status panel at the front.

Not sure why this has happened or whether other fan speed control methods may have resulted in the same outcome but the machine is seemingly healthy having only today just done some updates and rebooted to continue its primary fileserver role with the latest kernel hours earlier. But upon starting this project in the suggested container format - the host seems to have entirely died.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.