AMD MI25 Fan Control Service
Automatic fan control for AMD MI25 GPUs on Linux. The MI25 is a datacenter GPU whose BIOS cannot control a fan; without runtime control it overheats and shuts down the server.
Status
- Project status: complete.
- Service name:
amd-mi25-fanctl.service - Deployed and running on beast.lan, verified across a reboot.
- Controls every MI25 found; other AMD GPUs are reported but not controlled.
- Language: C++ (C++17), built with CMake.
- Version: see the dashboard.
How it works
The service discovers MI25 cards by PCI identity (vendor 0x1002,
device 0x6860) and drives the fan through the amdgpu hwmon
interface: pwm1_enable = 1 for manual control, then writes
pwm1.
Temperatures come from temp1_input (edge),
temp2_input (junction), and temp3_input (mem).
Control uses the higher of junction and mem, mapped through a stage table
with linear interpolation, ramped smoothly.
Documentation
- Interface map:
documents/05-mi25-driver-interfaces.md - Service plan:
documents/06-fan-control-service-plan.md - Failure behavior:
documents/07-failure-behavior.md - Records:
records/