2 Commits
Author SHA1 Message Date
ergosteurandClaude Opus 5 3a1973b3a4 Mark ipmi-fancontrol-daemon executable
It was the only script in the repository tracked as 100644. Every other one is
100755, and it has been executable on the Proxmox host all along, so this never
showed up while deploying by scp, which carries the mode across.

It would have broken the first deployment made by cloning instead:
ipmi-fancontrol.service runs it as ExecStart, and a fresh checkout would have
produced a non-executable file and a permission denied at start, leaving the
fans on whatever duty the BMC last had.

Found while converting /opt/ergosteur to a git checkout, where it showed up as
the one tracked file differing from the host.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 16:48:04 +00:00
ergosteurandClaude Opus 5 00384e7463 Make IPMI fan control temperature-aware without Docker
Manual fan mode pins the fans at a fixed duty and never ramps, so a sustained
load had no cooling response until the BMC's own critical-temperature
override stepped in. docker-idrac.sh solved that, but needs Docker, which is
not installed on the host.

ipmi-fancontrol-daemon polls the CPU sensors and switches between the fixed
duty and the BMC's automatic curve around a threshold, which is what that
container did. Measured on the host: 1440 RPM pinned versus roughly 4200 RPM
on the automatic curve at the same 60C.

- Hysteresis, default 5C, stops the fans oscillating at the boundary.
- An unreadable temperature fails safe to automatic rather than staying
  pinned.
- SIGTERM restores the automatic curve, with ExecStopPost as the backstop for
  an outright kill.

Default to the local "open" interface. It needs no credentials and no
network, which matters for the shutdown path, where lanplus to the iDRAC
could fail once networking is down. ipmi-fancontrol-auto and -manual honour
the same setting and stay available for ad-hoc use.

Enable the third-party PCIe cooling response suppression that docker-idrac.sh
was configured with, so the automatic curve is not held to a raised floor by
the aftermarket NICs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 16:31:05 +00:00