manual fan control for Dell 11th and 12th Generation servers (R710, R720XD)

old servers are too loud for home use by default. it's possible to manually set chassis fan speeds by using ipmitool (a Linux tool for communicating with management interfaces like Dell's IDRAC) to send raw hex commands to the IDRAC. using lm-sensors and a bit of Python to monitor CPU temperatures, I have set these servers to keep their fan speeds significantly lower than default while still ramping them up when needed to keep temperatures in check. this approach made the R710 I used to have, and the R720XD I have now significantly quieter; quiet enough that they aren't annoying to keep in working spaces. I have tested this only on these two servers, but I think it should also work with other servers from these generations (those using iDRAC 6 or 7).

here is an example of a working ipmitool command - it sets fan speeds to auto:

ipmitool -I lanplus -H -U username -P password raw 0x30 0x30 0x01 0x01

sending raw 0x30 0x30 0x01 0x00 sets fan control to manual mode. Sending raw 0x30 0x30 0x01 0x01 sets fan control back to automatic/defaults. once in manual mode, sending raw 0x30 0x30 0x02 0xff 0x01 sets the fans to the lowest RPM possible. incrementing the final byte of that command (i.e raw 0x30 0x30 0x02 0xff 0x02, raw 0x30 0x30 0x02 0xff 0x03) sets the fan speed higher in small intervals. some experimentation will be required to find some values that result in acceptable noise levels, acceptable temperatures and no hunting.

the Python script I use to do that is here. it errs on the side of quietness and overheating which hasn't proven to be a problem yet, but I urge you to set your own temperature limits where you feel comfortable rather than copying mine.