ipmi-fan-control is a program written in Rust to control the fans on SuperMicro motherboards based on the readings of temperature sensors.
Note: This has primarily been tested on a 6028U-TR4T+, which uses the X10DRU-i+ motherboard. Also, only Linux and other Unix-like operating systems are currently supported.
Prebuilt packages for Arch Linux, CentOS, Fedora, openSUSE, Debian, and Ubuntu are available from OBS. Please follow the instructions at the repo's landing page.
For other Unix-like systems, follow the instructions in the next section to build from source. Windows is currently not supported.
The project can be built with the normal cargo tool. To make a debug build, run:
cargo build
or to make a release build, run:
cargo build --release
To build Linux distro-specific packages, first build the corresponding source package:
# SRPM for RPM-based distros
./dist/build_source_package.py -t srpm
# PKGBUILD for Arch Linux
./dist/build_source_package.py -t pkgbuild
# dsc for Debian-based distros
./dist/build_source_package.py -t debian
and then use the distro's standard utilities for building the binary packages. The source packages will be placed in dist/output/
.
If ipmi-fan-control was installed from a package, update /etc/ipmi-fan-control.toml
to match the desired configuration and then enable and start the ipmi-fan-control
systemd service.
If built from source, make a copy of config.sample.toml
and update the values to match your server's configuration. Then, run ipmi-fan-control
with:
# Debug
sudo ./target/debug/ipmi-fan-control --config config.toml
# Release
sudo ./target/release/ipmi-fan-control --config config.toml