ASRock IPMI Fan Control

On ASRock boards with IPMI (or at least my board, X470D4U), there is no simple way to control the fan speeds manually. You can set some settings in the UEFI, but as the board's main use is a server it's not ideal to reboot to change settings. There's nothing visible in the IPMI web interface either.

I discovered on a forum that the fans can be controlled through ipmitool, but it's not the most intuitive. You have to use ipmitool raw and provide hexadecimal values for each fan along the way each time. So to just set the second fan to 100%, you need to run impitool raw 0x3a 0x01 0x00 0x64. Not very intuitive, right?

So I wrote a tool in python 3 that not only is much more intuitive and easier to use, but also allows for setting fan speeds dynamically from temperature, with your own defined ranges. I've been using it on my server for the last few months, and it's been very reliable and allows for keeping my fans quiet when the system is idle, and ramps them up as temperatures rise during a higher system load. You can download and see the source here: https://git.deck.sh/shark/asrock-pwm-ipmi/

Leave a Reply

Your email address will not be published. Required fields are marked *