The Issue

Modern ASUS mainboards, often come equipped with temperature sensors to monitor system health. Sometimes, however, these temperature sensors are not detected using the usual way of just probing the hardware with lm-sensors. Normally, one would issue the command sensors-detect and load the appropriate kernel modules for them in the /etc/modules file.

The probing via sensors-detect may look like this:

root@ubuntu:~# sensors-detect
[... Results ...]
Found `Nuvoton NCT6798D Super IO Sensors'                   Success!
    (address 0x290, driver `nct6775')
[... Results ...]

For my particular hardware (ASUS PRIME H610I-PLUS D4-CSM) I loaded up coretemp and nct6775:

# Chip drivers for temperature sensors (lm-sensors)
coretemp
nct6775

Everything’s loaded and ready, but there is still an error message:

root@ubuntu:~# service kmod start
root@ubuntu:~# pwmconfig
# pwmconfig version 3.6.0
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

What gives? Isn’t nct6775 already kernel-native and additional drivers not necessary anymore (See kernel source)?

The Fix

Basically, it turns out that the mainboards Super I/O chipset is not correctly detected by the nct6775 kernel module (See this bug), thus causing this behavior.

Please edit your GRUB configuration and add acpi_enforce_resources=lax to your GRUB_CMDLINE_LINUX line:

GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax <OTHER-PARAMS-YOU-MAY-HAVE>"

Update GRUB and restart your system afterwards:

root@ubuntu:~# update-grub
root@ubuntu:~# shutdown -r now

And that’s it! Your pwmconfig should now run flawlessly:

root@ubuntu:~# pwmconfig
# pwmconfig version 3.6.0
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following devices:
   hwmon0 is acpitz
   hwmon1 is nvme
   hwmon2 is coretemp
   hwmon3 is nct6798
   hwmon4 is asus
   hwmon5 is nouveau

Found the following PWM controls:
   hwmon3/pwm1           current value: 183
hwmon3/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n)
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like