I’ve been facing an issue on the ALTRAD8UD-1L2T in an NZXT H510 where when I sustain a high CPU & memory load, it causes the BMC to throw a deassert error and the entire system locks up. I’ve been running with heatsinks on my DIMMs and that hasn’t fully fixed the problem. So with the help of Claude, I managed to edit the fan curves in the BMC and drop DIMMs F1 & G1 from 95C down to 81C. It involved editing /usr/share/swampd/config.json in OpenBMC and adding the following things:
Steepen the SoC fan curve, I am using. "reading": { "0": 40, "1": 50, "2": 60, "3": 70, "4": 80 }, "output": { "0": 50, "1": 60, "2": 75, "3": 90, "4": 100 }
Adding the DIMM sensors, I had to add this block several times to the sensors list { "name": "TEMP_DIMM_A", "type": "temp", "readPath": "/xyz/openbmc_project/sensors/temperature/TEMP_DIMM_A", "ignoreDbusMinMax": true, "timeout": 0 }
Changing the threshold and minimum thermal output: "minThermalOutput": 60.0, "failsafePercent": 100.0
After changing those and running systemctl restart phosphor-pid-control, I managed to get better temperatures. I also removed the side panel and placed a fan next to my system to help circulate the air around my desk. Hopefully this information is useful to others.
Nice to know that is an option. I’ve done it only according to their guides with a CLI tool from the guest OS, but it only sets static control, doesn’t adjust the curve like this!
I do think these systems need a crossflow case - front to back, across the ram - or a ram cooling solution. At some point I am going to build an AmpereOne system and I have been eyeing ram waterblocks. I put server grade high RPM fans in my system, though the BMC runs them normally at low speeds. I think overall the airflow and RPMs are higher than desktop grade so stock curves have been fine, and if I am doing some heavy work I hear it
You took server motherboard and put it in a case with nearly no airflow…
Try taking out front panel to let some air into the case as this case only takes air from the sides which is definitely not enough in your case.
I have same motherboard and 80 core cpu and system is around 35-50°C when it comes to the RAM temperature during load. CPU temperature was 35°C idle and up to 60°C on 100% system load.
Case I use is “Endorfy 700 Air” model. With 3x 120mm fans at the front, one at the rear and one on the top.
Yeah, when I built it in like late 2024 I think it was, I had 64 cores and only like 128GB of RAM. But since then, I’ve upgraded to 128 cores and 512GB of RAM. I’ve removed the side panel for now and the system seems happier.
If you can provide the full config.json file, I’ll update my OpenBMC build with it.
Using these systems sure has been a learning experience! I never realized how hot DIMMs can get until I stuffed 8 256GB modules into a case with minimal airflow and watched one start smoking while the others overheated and triggered the SMPro to halt the system. When I rebuilt my AmpereOne system, I used Noctua Industrial (industrialPPC) fans at the front to try and make sure I have enough airflow – and a high static pressure, which I believe is important for getting the air through the narrow gaps between the DIMMs?!
Meanwhile, with my Altra system I just hot-glued this piece of cardboard in place to try and force the air to go through the DIMMs and not around the side.