@kodi,
@Sonner
ipmitool raw 0x30 0x91 0x5A 0x3 0x10 0x7f
works on
x9dri-ln4f+ with IPMI 3.61 (dated 2020-01-07).
also, some guys were asking about
x9drd-???. according the Supermicro FAQ answers, this functionality of direct control was removed from IPMI firmware. I tried firmwares down to 3.15 and none worked, then I gave up on trying to set this via raw ipmi commands.
BUT: I had success with controlling them via linux hwmon driver for the chip on this MB models which is nct7904. after loading it creates /sys/class/hwmon/hwmonX/ folder with pwm1 and pwm1_enable files (it is still needed to set fan mode to full before as with the other described solutions).
Although this way works, it has quite irritating issue - the chip is being accessed via i2c and communication via it requires locking control. and because that lock is not being handled at hw level, so driver and ipmi basically happen to clash while reading/writing which kicks the driver out of control reporting ~"communication errors" by i2c-i801 in kernel log. then removal of nct7904, i2c-i801, i2c-smbus and loading them back was needed.
I managed to minimise this hassle with various settings, like for instance disabling readouts (temps, in, ...) - all but the fan_inputs by lm_sensors and not trying to set the pwm more often than once / 30s.
All this being said, for
x9drd I ended this story by buying Corsair Commander PRO controller (there is a driver in linux for it, it presents 6pwm controlled outputs/inputs and 4temp inputs). I burned two until I realised that the controller does not meet the paper specs (1A max per pwm / 4A in total) ((the SM boards are on the other hand excelent with this, in general the fan headers are rated for 3A each)). So finally I had to attach my fans to it with cable providing external power (molex/sata).
Anyhow a bit of info to question whether those boards provide controll per fan header - the answer is no. The limitation is set by the nct7904 which can monitor up to 12 fans,. but it has only 4pwm controlled outputs, so SM is wiring them into the usual zones (system only - 1 zone, or system + cpu - 2 zones). Also what I realised is, that not even the IPMI fw is controlling the fans directly, it uses the auto controll provided by the nct7904 which allows to link those 4pwm to various inputs (temp/rpm/peci) and various alarms (high temp, low rpm etc). the profile tables are fed on power-on of the MB by nct7904 itself from some storage (perhaps BIOS?????). they can be reprogrammed on the fly and I initially planned to do that, but all this takes so much time, ... then I bought the CCPro and never looked back.
Last note to the issues in respect to "ipmi reverting back the controls" - the low RPM of a fan is far not the only factor here. as said in the previous paragraph, the nct auto control is linked to various temps too - for sure CPU/PCH and maybe even the DIMMs (as peci can read those and all this data are then pushed to nct). One way is the already provided solution with changing the assertion levels, but perhaps easier is to simply turn the assertions off.
export the sensor setup with:
ipmi-sensors-config --checkout --filename=ipmi-sensors-config
edit the file by changing "Yes" on the required assertions to "No" and load the file back:
ipmi-sensors-config --commit --filename=ipmi-sensors-config
One of my systems is x9dri board inside SC847 case with all 36 drive bays full, another 8x 2.5" SSDs inside (the case is 4U, 24bays front, 12bays back. due to the 12bays in back/bottom, the MB department is only low profile so basically the back is split into 2x2U and there was lot of space for the ssd drives between the middle FANs and back Backplane) + 6xNVME drives in 3x aoc-slg3-2m2 addon cards. The board is fully loaded with 24dimms.
To cool that beast I had to swap the factory passive cpu coolers for active ones and two more screamers (
FAN-0127L4) were needed, standing behind each other to double the air pressure (in the lower department right in front of the back backplane). SC847 fully loaded like this is making any Noctuas useless unfortunatelly (far too low pressure), honestly it renders any consumer grade FAN useless. So if anyone complains about the noise, imagine to have instead of 7 provided middle fans in the SC847, 11 of those.
So after many weeks struggling with the noise and my marriage going towards divorce I decided for a dramatic rebuild.
Spoiler alert - I ended up with custom water loop consisting of two radiators (one 2x12cm wide, one 3x12cm wide), two cpu water blocks and two Peltiers. this made it possible to run only with 3 middle fans at lowest rpm (1400).
The result is: "wife approved"
@solon
I wish I had 3D printer. the rebuild would be a lot easier. Kudos anyhow for that idea, I think 3D printer should be required tool for any "do it yourself" guy.