diff --git a/README.md b/README.md index 8c2379b..fdabc0c 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,29 @@ reappear after serial ambiguity is resolved. The identity identifies the controller's header, not the physical fan attached to it; replacing the fan does not change the saved assignment. +## MSI boards with the nct6687 driver + +On some MSI boards the nct6687 driver accepts speed changes for the system +fans (`pwm3` and up) but does not apply them, so those fans stay at about 60%. +The driver documents this and fixes it with its `msi_fan_brute_force` module +option. When a configured fan uses one of those channels and the option is not +detected, the settings page shows a notice with the workaround. The option's +loaded state is read from the driver's `fan_control_watchdog` attribute or its +"MSI fan brute force mode" kernel log line, falling back to the modprobe +configuration. While a fan on one of those channels is set above 60% but reads +back 60% or less for 10 seconds, the plugin also sends one Unraid +notification per fan per boot. On Unraid, set the option on the flash drive and +reboot: + +```bash +mkdir -p /boot/config/modprobe.d +echo "options nct6687 msi_fan_brute_force=1" >> /boot/config/modprobe.d/nct6687.conf +``` + +The option was added to the driver in December 2025; `modinfo nct6687` lists +it when the installed build supports it. See the +[driver documentation](https://github.com/Fred78290/nct6687d#loading-msi_fan_brute_force-parameter-fails). + Support / Issues - https://github.com/andrebrait/fanctrlplus/issues diff --git a/src/usr/local/emhttp/plugins/fanctrlplus2/css/fcp.base.css b/src/usr/local/emhttp/plugins/fanctrlplus2/css/fcp.base.css index ef97674..29162bd 100644 --- a/src/usr/local/emhttp/plugins/fanctrlplus2/css/fcp.base.css +++ b/src/usr/local/emhttp/plugins/fanctrlplus2/css/fcp.base.css @@ -296,6 +296,8 @@ margin: 0; white-space: nowrap; } +.fcp-nct6687-notice { justify-content: flex-start; } +.fcp-nct6687-notice code.fcp-cmd { display: block; margin: 4px 0; user-select: all; } /* ===== Sort toggle ===== */ .fanctrl-sort-toggle { diff --git a/src/usr/local/emhttp/plugins/fanctrlplus2/fanctrlplus2.page b/src/usr/local/emhttp/plugins/fanctrlplus2/fanctrlplus2.page index 4b4a76c..f3e8d88 100644 --- a/src/usr/local/emhttp/plugins/fanctrlplus2/fanctrlplus2.page +++ b/src/usr/local/emhttp/plugins/fanctrlplus2/fanctrlplus2.page @@ -156,6 +156,7 @@ flock($page_config_lock, LOCK_UN); fclose($page_config_lock); $cpu_sensors = detect_cpu_sensors(); $aux_sensors = detect_aux_sensors(); +$fcp_nct6687_notice = fcp_nct6687_brute_force_missing(array_column($all_cfg, 'controller')); ?>
msi_fan_brute_force option. Run the commands below from an Unraid terminal, then reboot:
+ mkdir -p /boot/config/modprobe.d
+ echo "options nct6687 msi_fan_brute_force=1" >> /boot/config/modprobe.d/nct6687.conf
+ If modinfo nct6687 | grep msi_fan_brute_force prints nothing, the installed driver predates the option and needs an update.
+ Driver documentation
+
+