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
Download Docker image from :
This Docker container only works on Dell PowerEdge servers that support IPMI commands, i.e. < iDRAC 9 firmware 3.30.30.30.
apt -y install ipmitool
ipmitool -I lanplus \
-H <iDRAC IP address> \
-U <iDRAC username> \
-P <iDRAC password> \
sdr elist all
This Docker container is currently built and available for the following CPU architectures :
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
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:
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
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>
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.If your server frequently switches back to the default Dell fan mode:
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).FAN_SPEED
value to increase the airflow and thus further decrease the temperature of your CPU(s)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!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)