A simple and robust solution to control fan speeds on certain ASRock Rack server motherboards via IPMI, designed to run automatically at boot.
- Sets custom fan speeds using raw IPMI commands.
- Configuration is managed in a simple
.inifile, separate from the code. - Installs as a
systemdservice for reliable execution on boot. - Installation script for easy setup and updates.
- A Linux server with
systemd. python3installed.gitinstalled.ipmitoolinstalled (sudo apt install ipmitool).- Root or
sudoprivileges.
-
Clone the Repository Clone this repository to your server, for example in your home directory.
git clone https://your-git-repo-url/fan-control.git cd fan-control -
Run the Installer The installer script will copy the necessary files to system locations and set permissions.
sudo ./install.sh
After installation, a new configuration file will be created at /etc/ipmi-fan-control/config.ini (if it didn't already exist).
-
Edit the Configuration File: Open the file with a text editor to set your desired fan speeds and IPMI interface.
sudo nano /etc/ipmi-fan-control/config.ini
-
Configure
[Settings]:interface: Useopenfor local access (recommended) orlanplusfor network access.
-
Configure
[FanSpeeds]:- Set
fan_1throughfan_8to your desired percentage (0-100).
- Set
Once configured, you can manage the service using standard systemctl commands.
-
Enable the service (to start on boot):
sudo systemctl enable ipmi-fan-control.service -
Start the service immediately:
sudo systemctl start ipmi-fan-control.service
-
Check the service status:
sudo systemctl status ipmi-fan-control.service
-
View service logs:
journalctl -u ipmi-fan-control.service
-
Restart the service (after changing config):
sudo systemctl restart ipmi-fan-control.service
To update to the latest version from your Git repository:
- Navigate to your cloned repository directory.
cd ~/fan-control
- Pull the latest changes.
git pull
- Re-run the installer to copy the new files. Your configuration file will be preserved.
sudo ./install.sh
- Restart the service to apply the new script.
sudo systemctl restart ipmi-fan-control.service