Installation NCT6687D Kernel module for CoolerControl

Hello! I’m a complete noob and apologize in advance for the stupid question. I installed CoolerControl to control the fans connected to my MSI B550M Mortar motherboard. As far as I understand, this motherboard requires the NCT6687D Kernel module to be installed. I ran “pacman -S make automake linux-firmware linux-headers dkms base-devel” to install the dependencies, but I don’t understand how to run “Build with DKMS” from the installation instructions:
~$ git clone GitHub - Fred78290/nct6687d: Linux kernel module for Nuvoton NCT6687-R · GitHub
~$ cd nct6687d
~$ make dkms/install

Please tell me what to do next? Perhaps there’s an easier installation path I’m unaware of.

hello, there should be aur package for that

just to make sure, after finishing the installation, do rebuild initrams
sudo mkinitcpio -P

and reboot your system

more details on wiki (go find that have similar of your 6687)

if everything was good, you should see something like this (or similar) on your coolercontrol

Thanks a lot for the advice!

I installed the driver, and the fan speed appeared in the CoolerControl menu. However, I couldn’t change the fan speed. After a little research, I discovered the problem was in the file:
/etc/conf.d/lm_sensors
After installing the driver, the file’s value was “nct6683,” manually changing it to “nct6687,” and rebooting, everything worked.

p.s I found a description of this problem on GabMus’s Dev Log “MSI/ASUS Motherboard Fan Control on Linux”. Perhaps this will help someone.

instead changing the lm_sensors configuration (in case it will be overwritten in update, or broke something), you may revert it to nct6683 again

and you might want to try this instead
image

create a files in here with that modules inside
/etc/modules-load.d/nct6687.conf
and reboot

hopely it will make the lm_sensors detect the nct6687 properly. (because what i did is only that, without changing the lm_sensors conf files)

I created the file /etc/modules-load.d/nct6687.conf. Add the string inside it nct6687. I also changed nct6687 back to nct6683 in /etc/conf.d/lm_sensors. But after a reboot, the fans aren’t adjusted. Is there anything else I need to do?

did it detected without issue ? and if you change it with manual, is it can be done ?
if yes, here i created a short video for how to use coolercontrol

incase not, just to make sure go copy this output
lsmod | grep nct

Yes, they are detected with warnings (from pwm1 to pwm7 same error):

WARN  coolercontrold::repositories::hwmon::fans] PWM fan at /sys/class/hwmon/hwmon7/pwm1 is NOT writable - Fan control is not currently supported by the installed driver.

However, I can’t manually control them due to the error shown in the screenshot above.

Output this:

❯ lsmod | grep nct
nct6683 36864 0
nct6687 49152 0

hmmm, try

sudo modprobe -r nct6683
and
reload lm_sensors and coolercontrol
sudo systemctl restart lm_sensors && sudo systemctl restart coolercontrold


if the above method solve it, then nct6683 is conflicted with nct6687, and it seems you didn’t use 6683 ones
you can blacklist it from load via

create file in
/etc/modprobe.d/nct6683.conf

inside just put this

blacklist nct6683

Thank you very much, this method helped!

glad it’s worked for you, happy tuning your fan curve ~

Thank you. Working through the steps given here I got coolercontrol working nicely with my MSI Z490 Tomahawk (MS-7C80) motherboard and NZXT Kraken z53 AIO cooler. cachyos with 7 kernel I also had to blacklist NCT6683

So much much more control than Windows and NZXT cam.