- install lm-sensors with your package manager
sensors
If it won't show any fan/speed, continue
sensor-detect
Say YES to at least "Super I/O sensors"
Expected output:
Trying family `ITE'... Yes
Found unknown chip with ID 0x8688
If similar, continue
git clone https://github.com/frankcrawford/it87
cd it87
sudo make clean
sudo make install
sudo modprobe it87 ignore_resource_conflict=1 force_id=0x8622
sensors
The fans should show up now, if yes, continue to make them available at boot:
echo options it87 ignore_resource_conflict=1 force_id=0x8622 > /etc/modprobe.d/it87.conf
echo it87 >> /etc/modules
Confirmed working on the same family of board: Gigabyte B550 Aorus Elite AX V2, IT8689E rev2, MMIO 0xfe000000, BIOS FGd.
The fix is the workaround curve, with one board-specific gotcha: this BIOS caps the Smart Fan 5 temperature field at 65C (it won't accept 90). Set every temp point to 65. Software control then works below 65C; the BIOS forces 100% above that as a failsafe. For a Ryzen 5700X that peaks around 60C under a full load, the cap never binds in practice.
What worked, per controllable header:
pwm_enable=1(reads back 0) - manual mode is locked out entirely.40 40 40 40 40 40 100. Temp:0 65 65 65 65 65 65. Source: CPU. (65 because that's this BIOS's cap; use 90 where the BIOS allows it.)After this,
pwm_enable=1sticks and fancontrol holds through a 6-minute full-CPU-load soak with no re-assertion - the radiator RPM trackspwmpast the ~5-minute point where it used to pin.Two extras that bit me:
pwmvalue stop responding on this chip.acpi_enforce_resources=lax/ignore_resource_conflictadvice was not needed once the MMIO build bound the chip (rev2 binds cleanly at 0xfe000000).Root cause is the IT8689E's on-die vector (SmartFan) controller staying armed and overriding the duty register - see #114, not the Gigabyte EC. Thanks to @TsunamiMommy for the "every temp point" detail in #96.