Unable to get lm-sensors to report my fan speeds for Asus Z97-WS

Solution 1:

I happen to have this board as well and now that it is primarily running Ubuntu instead of Windows, I finally decided to figure out how to control the fans without using the BIOS UI.

In short;

Boot with lax acpi resource sharing and load the nct6775 driver.

grep CMDLINE /etc/default/grub
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"
update-grub
reboot
modprobe nct6775

Leave GRUB_CMDLINE_LINUX_DEFAULT as it is unless you have reasons to change it.

Before doing the lax thing, I could see this error in dmesg after loading the nct6775 module:

[84740.224136] nct6775: Enabling hardware monitor logical device mappings.
[84740.224146] nct6775: Found NCT6791D or compatible chip at 0x2e:0x290
[84740.224151] ACPI Warning: SystemIO range 0x0000000000000295-0x0000000000000296 conflicts with OpRegion 0x0000000000000290-0x0000000000000299 (\_GPE.HWM) (20210331/utaddress-204)
[84740.224156] ACPI: OSL: Resource conflict; ACPI support missing from driver?

After, I get these sensors:

# sensors
(...)
nct6791-isa-0290
Adapter: ISA adapter
Vcore:                 880.00 mV (min =  +0.00 V, max =  +1.74 V)
in1:                     1.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
AVCC:                    3.38 V  (min =  +2.98 V, max =  +3.63 V)
+3.3V:                   3.38 V  (min =  +2.98 V, max =  +3.63 V)
in4:                     1.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:                     1.99 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in6:                   384.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
3VSB:                    3.41 V  (min =  +2.98 V, max =  +3.63 V)
Vbat:                    3.30 V  (min =  +2.70 V, max =  +3.63 V)
in9:                     1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in10:                    0.00 V  (min =  +0.00 V, max =  +0.00 V)
in11:                  824.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in12:                  104.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in13:                   96.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in14:                  424.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
fan1:                   742 RPM  (min =    0 RPM)
fan2:                   558 RPM  (min =    0 RPM)
fan3:                   906 RPM  (min =    0 RPM)
fan4:                     0 RPM  (min =    0 RPM)
fan5:                     0 RPM  (min =    0 RPM)
fan6:                     0 RPM  (min =    0 RPM)
SYSTIN:                 +63.0°C  (high =  +0.0°C, hyst =  +0.0°C)  sensor = thermistor
CPUTIN:                 +50.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
AUXTIN0:               -128.0°C    sensor = thermistor
AUXTIN1:               -128.0°C    sensor = thermistor
AUXTIN2:                +35.0°C    sensor = thermistor
AUXTIN3:                +63.0°C    sensor = thermistor
PECI Agent 0:           +50.0°C
PCH_CHIP_CPU_MAX_TEMP:   +0.0°C
PCH_CHIP_TEMP:           +0.0°C
PCH_CPU_TEMP:            +0.0°C
intrusion0:            ALARM
intrusion1:            ALARM
beep_enable:           disabled
(...)

And these fan-crontrollers:

# find /sys/ -name 'pwm?'
/sys/devices/platform/nct6775.656/hwmon/hwmon3/pwm5
/sys/devices/platform/nct6775.656/hwmon/hwmon3/pwm3
/sys/devices/platform/nct6775.656/hwmon/hwmon3/pwm1
/sys/devices/platform/nct6775.656/hwmon/hwmon3/pwm4
/sys/devices/platform/nct6775.656/hwmon/hwmon3/pwm2

You can read this discussion about why the lax acpi parameter is necessary. It is probably safe to use, but be careful. TBH, idk what could go wrong but you can probably research this further.

  • https://bugzilla.kernel.org/show_bug.cgi?id=204807#c37

tl;dr - the kernel message you're seeing is correct. Avoiding it requires a new driver to be written. If you personally feel safe in ignoring the risks, you can pass the acpi_enforce_resources=lax option, but that can't be the default because it's unsafe in the general case, and so it isn't the solution to the wider problem.


When you have that working, use fancontrol utility to control the fan speed in auto mode or configure the fan speeds manually with pwmconfig.