From d0f36fb0ca04856a8bf9493360e5af9c1d5e0636 Mon Sep 17 00:00:00 2001 From: Andre Brait Date: Tue, 6 Oct 2026 06:45:54 +0000 Subject: [PATCH 1/8] fanctrlplus2: warn when MSI nct6687 system fans need msi_fan_brute_force On MSI boards using the nct6687 msi_alt1 register layout, writes to the system-fan channels are accepted but ignored unless the driver's msi_fan_brute_force option is set, leaving those fans at about 60% (#13). Show a notice on the settings page with the documented workaround when a configured fan uses such a channel and the option is not detected. --- README.md | 18 +++++ .../plugins/fanctrlplus2/css/fcp.base.css | 2 + .../plugins/fanctrlplus2/fanctrlplus2.page | 13 ++++ .../plugins/fanctrlplus2/include/Common.php | 34 ++++++++++ tests/nct6687_notice_test.php | 65 +++++++++++++++++++ 5 files changed, 132 insertions(+) create mode 100644 tests/nct6687_notice_test.php diff --git a/README.md b/README.md index 8c2379b..39f5d0b 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,24 @@ 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. 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..4c26d2f 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')); ?>
@@ -173,6 +174,18 @@ $aux_sensors = detect_aux_sensors(); FanCtrl Plus 2 files changed on the server. Reload to use matching interface resources.
+ +
+ + MSI board detected: the nct6687 driver may ignore speed changes on system fans, which then stay at about 60%. + The driver's documented workaround is its 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 + +
+