This script controls IPMI compatible server's fan speeds in response to CPU Temperatures provided by lm-sensors. This script has been tested on a Dell PowerEdge R210 II in a homelab environment, but should work on any IPMI compatible server.
The script puts your server into "Full Fan Speed Mode", and then modifies what "Full Speed" means, You have to manually use IPMI to set it to e.g. "Optimal" when you're not using the script.
You use this script at your own risk, and no warranty is provided. Do not use in produciton environments.
- Maintainer: Brian Wilson brian@wiltech.org
- Original Author: Layla Mah layla@insightfulvr.com
- Original Version: https://github.com/missmah/ipmi_tools
The original script provided a "step" approach where fans would take large "steps" depending on the temps.
In this version, scalar equations are generated to provide an easy (and quiet) slope to follow to the next step.
These equations are simple Y=mx+b linear slopes that effectivly provide a fan "curve" based on the entries in the
%cpu_temp_to_fan_speed
hash table.
# Install dependencies (Debian, your pkg names may be different)
apt install lm-sensors ipmitool
# Verify IPMI modules are loaded
lsmod | grep -i ipmi
# Install
cp ipmi_fancontrol-ng /usr/bin/
cp ipmi_fancontrol-ng.service /usr/lib/systemd/system/
chmod +x /usr/bin/ipmi_fancontrol-ng
# Enable on boot and start
systemctl enable ipmi_fancontrol-ng
systemctl start ipmi_fancontrol-ng
Metrics are output to the file /tmp/fan_speed_telegraf
by default and can be input into InfluxDB with the following Telegraf config block:
[[inputs.exec]]
commands = [
"/usr/bin/cat /tmp/fan_speed_telegraf"
]
timeout = "5s"
data_format = "influx"
- Fan Speed %
- Fan Speed HEX
More documentation is planned, however I am available to answer basic configuration questions in the mean time.