Hi — I run TrueFan on a TrueNAS SCALE box with an ASRock Rack B650D4U, where the chassis fans are entirely BMC-owned (AST2600) and invisible to Linux hwmon, so the stock hwmon_pwm backend can't drive them.
I've built this out in a fork: https://github.com/Kyzcreig/truefan
What it adds, in case any of it is interesting upstream:
ast2600_ipmi backend — drives ASRock Rack AST2600 BMCs via LAN IPMI (the 0x3a 0xd0 raw family: mode/duty read + manual-mode set), with fan RPM telemetry over Redfish and per-drive temperatures from the TrueNAS WebSocket API
- Fail-closed safety policy — hot threshold forces 100% and locks controls; sensor failure never lowers known duty; all manual overrides are TTL-bounded (max 15 min) and clamped
- Two-container split — a private control agent owns hardware access; the public dashboard degrades to monitoring-only if the agent is away, with separate agent/UI-write tokens
- Cached status snapshots so UI probes never block on live BMC reads
The diff is large (~4k lines), so I'm not proposing a bulk PR — but if you're interested, I'd be happy to extract the AST2600 backend (or the safety-policy layer) into a reviewable standalone PR. Either way, leaving this here so people with ASRock Rack / BMC-owned-fan boards searching the issues can find a working path.
Thanks for the project!
Hi — I run TrueFan on a TrueNAS SCALE box with an ASRock Rack B650D4U, where the chassis fans are entirely BMC-owned (AST2600) and invisible to Linux hwmon, so the stock
hwmon_pwmbackend can't drive them.I've built this out in a fork: https://github.com/Kyzcreig/truefan
What it adds, in case any of it is interesting upstream:
ast2600_ipmibackend — drives ASRock Rack AST2600 BMCs via LAN IPMI (the0x3a 0xd0raw family: mode/duty read + manual-mode set), with fan RPM telemetry over Redfish and per-drive temperatures from the TrueNAS WebSocket APIThe diff is large (~4k lines), so I'm not proposing a bulk PR — but if you're interested, I'd be happy to extract the AST2600 backend (or the safety-policy layer) into a reviewable standalone PR. Either way, leaving this here so people with ASRock Rack / BMC-owned-fan boards searching the issues can find a working path.
Thanks for the project!