I recently came across a thread in !linux_gaming@lemmy.world that pointed me in the right direction, so I figured I’d summarize my findings for anyone else having issues with this specific chipset.
If you have a MSI B650 like me, you’ve probably struggled with custom fan speeds. Case and even CPU fans are not even detected, running sensors-detect doesn’t help and applications like CoolerControl don’t show any fans aside from the GPU.
Background:
The chip responsible for the interface is NCT6683D. You can confirm this by running dmesg | grep -i nct
as root. “nct6683” will appear there.
“nct6683” is also the name of the corresponding kernel driver that is most likely included in your distribution but may not be loaded by default. In my case the default driver was “nct6775”, which is why my fans were not detected by any application.
Viewing fan speeds:
Simply loading nct6683 will give you access to the fan speeds, but you won’t be able to control them. They will be read only. You can test this by running modprobe nct6683 force=1
as root - this way the driver will be loaded for your current session but won’t persist after a reboot.
Controlling fan speeds:
If you want full control over your fan speeds for custom curves and such, you need driver “NCT6687D”, which is not included in the kernel and instead available on Github:
https://github.com/Fred78290/nct6687d
You can install it by following the build instructions in the link. After that is done, navigate to /etc/modules-load.d/ and edit modules.conf. There you will find your current chip driver listed. Either delete it or comment it out and put nct6687
in its place.
Reboot your system and you now should have access to all the fan controls in the software of your choice.
I hope this guide can be of help to some. It should be noted that my system is based on Ubuntu LTS, so I can’t guarantee that it will work the same on other distributions. Good luck!
Thanks for sharing!