smfc
smfc copied to clipboard
X10DRG
Originally posted in another thread, then realized probably better to not clutter that motherboard's thread with X10DRG data.
Anyway, I did some testing and the X10DRG has FOUR zones, not 2. So instead of zones 0x00 and 0x01, you use 0x00 - 0x03. They're all "CPU zones".
To make things work correctly, you'll need to edit the set_ipmi_fan_level.sh file, and make sure it handles all four zones for CPU calls. After you've tested the .SH files in the ipmi folder and everything is working correctly, update the actual smfc.py file prior to running install.sh, specifically the set_fan_level function, to make sure it handles all four zones in the same way as testing.
Obviously every config is different, so I wanted to share these notes for anyone else running a X10DRG mobo, as it took a few hours to figure this all out and why some of the fans weren't working!!
Thanks to @petersulyok for his work on this, it helped me immensely as I was completely lost by the ipmi documentation.
Hi @varanova, thanks for sharing this! I would appreciate if you could share a picture about the motherboard to help me understand the physical topology of the board (I checked on Supermicro site and there are many variants). I'm wondering to know how multiple CPU zones and fans can be placed properly in this setup.
BTW, how many CPUs do you have installed on this board?
My build has 2 CPUs, so I set "cpus" to 2 under the conf file. I may be wrong, but I assumed it just averaged CPU temps? Or maybe takes the max between the two?
The server is the one listed here: (has photos and descriptions) https://www.supermicro.com/products/system/4u/4028/sys-4028gr-trt.cfm
It's a GPU server, but there was no GPU zone as far as I could tell. On the default fan control, when the CPU temps went up, the fans went up. CPU down, fans down. However the fans were too aggressive for just CPU cooling, and mine still has these tiny 12k RPM fans which are like 100x nosier than noctua ones. That's why I was looking for some way to tone them down since the server room is close to my office.
How many fans are installed in this system?
It has 8 fans. FAN1 - FAN8. There's also no FANA/FANB in this system.
Here's an example output from ipmitool: (sudo ipmitool sensor|grep FAN) FAN1 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN2 | 3400.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN3 | 3400.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN4 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN5 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN6 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN7 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000 FAN8 | 3300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
Just for the clarification, I assume this is the typical fan placing/setup here:
where the fans cool everything, HDs, motherboard, CPUs, GPUs.
I think the challenge here to find the proper temperature source for the fan control.
That's the correct placement yes.
The ideal controller would look at all the temps (GPU/drives/CPU...)
Though it doesn't measure the GPU temps at all, so the fans don't ramp up at all for them. I don't even see a GPU temp measurement in the sensors list. I think you'd have to get the GPU temps from somewhere else (nvidia-smi for instance) in order to use that data in the fan speed calculation.