Cant control case fans on NCT5532D/NCT6779D

I cannot seem to get my case fans running at any other speed that the default set by my BIOS, I have run sensors-detect and said yes to everything but i still cannot seem to get my case fans to work. I will also note that it is just my case fans I am having trouble with.
I did notice that my motherboard has pinouts for 3 pin fans which are voltage controlled but i cant set my motherboard to using the nct driver to set it to such.
NCT5532D/NCT6779D

Driver `nct6775':
  * ISA bus, address 0xa20
    Chip `Nuvoton NCT5532D/NCT6779D Super IO Sensors' (confidence: 9)
usr_40476@2xeon:~> sudo sensors-detect                   
[sudo] password for root: 
# sensors-detect version 3.6.2
# System: INTEL X99 [Default string]
# Kernel: 6.14.6-1-default x86_64
# Processor: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz (6/79/1)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): 
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
AMD Family 19h thermal sensors...                           No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): 
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found `Nuvoton NCT5532D/NCT6779D Super IO Sensors'          Success!
    (address 0xa20, driver `nct6775')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): 
Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (yes/NO): yes
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): 
Using driver `i2c-i801' for device 0000:00:1f.3: Wellsburg (PCH)

Next adapter: AMDGPU DM i2c hw bus 0 (i2c-0)
Do you want to scan it? (yes/NO/selectively): 

Next adapter: AMDGPU DM i2c hw bus 1 (i2c-1)
Do you want to scan it? (yes/NO/selectively): 

Next adapter: AMDGPU DM i2c hw bus 2 (i2c-2)
Do you want to scan it? (yes/NO/selectively): 

Next adapter: AMDGPU DM i2c hw bus 3 (i2c-3)
Do you want to scan it? (yes/NO/selectively): 

Next adapter: AMDGPU DM aux hw bus 0 (i2c-4)
Do you want to scan it? (yes/NO/selectively): 

Next adapter: SMBus I801 adapter at 0580 (i2c-5)
Do you want to scan it? (yes/NO/selectively): yes
Client found at address 0x48
Probing for `National Semiconductor LM75'...                No
Probing for `National Semiconductor LM75A'...               No
Probing for `Dallas Semiconductor DS75'...                  No
Probing for `National Semiconductor LM77'...                No
Probing for `Analog Devices ADT7410/ADT7420'...             No
Probing for `Analog Devices ADT7411'...                     No
Probing for `Maxim MAX6642'...                              No
Probing for `Texas Instruments TMP435'...                   No
Probing for `National Semiconductor LM73'...                No
Probing for `National Semiconductor LM92'...                No
Probing for `National Semiconductor LM76'...                No
Probing for `Maxim MAX6633/MAX6634/MAX6635'...              No
Probing for `NXP/Philips SA56004'...                        No
Probing for `SMSC EMC1023'...                               No
Probing for `SMSC EMC1043'...                               No
Probing for `SMSC EMC1053'...                               No
Probing for `SMSC EMC1063'...                               No


Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Driver `nct6775':
  * ISA bus, address 0xa20
    Chip `Nuvoton NCT5532D/NCT6779D Super IO Sensors' (confidence: 9)

Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no): ^C
Unloading cpuid... OK

usr_40476@2xeon:~>
usr_40476@2xeon:~> printf 0 | sudo tee /sys/devices/platform/nct6775.2592/hwmon/hwmon0/pwm5_mode && echo
0tee: /sys/devices/platform/nct6775.2592/hwmon/hwmon0/pwm5_mode: Invalid argument
usr_40476@2xeon:~>

I have been looking here.

You hit Ctrl C so it never saved your configuration.
You need to save it and get the fan control service running.

But you can skip the fan control service by using CoolerControl.

Also, Cooler Control is great. Do sensors-detect again and hit yes to save. Then run CoolerControl.

CoolerControl is in this repo.

https://download.opensuse.org/repositories/home:/codifryed/openSUSE_Tumbleweed/

Have you ever configured the fan control service? It might be difficult for you if you have never done it.


these fans are not responding, i have been using cc for a while now but it still wont do my case fans

snippet from sensors

nct6796-isa-0a20
Adapter: ISA adapter
Vcore:                   1.80 V  (min =  +0.00 V, max =  +1.74 V)  ALARM
in1:                     0.00 V  (min =  +0.00 V, max =  +0.00 V)
AVCC:                    3.15 V  (min =  +2.98 V, max =  +3.63 V)
+3.3V:                   3.15 V  (min =  +2.98 V, max =  +3.63 V)
in4:                     0.00 V  (min =  +0.00 V, max =  +0.00 V)
in5:                     0.00 V  (min =  +0.00 V, max =  +0.00 V)
in6:                     1.10 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
3VSB:                    3.30 V  (min =  +2.98 V, max =  +3.63 V)
Vbat:                    3.22 V  (min =  +2.70 V, max =  +3.63 V)
in9:                     1.05 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in10:                  160.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in11:                  136.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in12:                  1000.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in13:                  600.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in14:                  144.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
fan1:                  1757 RPM  (min =    0 RPM)
fan2:                  1778 RPM  (min =    0 RPM)
fan3:                     0 RPM  (min =    0 RPM)
fan4:                     0 RPM  (min =    0 RPM)
fan5:                     0 RPM  (min =    0 RPM)
fan6:                  65535 RPM  (min =    0 RPM)  ALARM
fan7:                  65535 RPM  (min =    0 RPM)
SYSTIN:                 +17.5°C    sensor = thermistor
CPUTIN:                 +20.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
AUXTIN0:                +20.0°C  (high =  +0.0°C, hyst =  +0.0°C)  ALARM  sensor = thermistor
AUXTIN1:               +106.0°C    sensor = thermistor
AUXTIN2:               +107.0°C    sensor = thermistor
AUXTIN3:               +106.0°C    sensor = thermistor
PECI Agent 0:           +22.5°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +74.0°C)
PCH_CHIP_CPU_MAX_TEMP:   +0.0°C  
PCH_CHIP_TEMP:           +0.0°C  
PCH_CPU_TEMP:            +0.0°C  
PCH_MCH_TEMP:            +0.0°C  
Agent0 Dimm0:            +0.0°C  
pwm1:                       74%  (mode = dc)  MANUAL CONTROL
pwm2:                       74%  (mode = pwm)  MANUAL CONTROL
pwm3:                       68%  (mode = pwm)  MANUAL CONTROL
pwm4:                       60%  (mode = pwm)  MANUAL CONTROL
pwm5:                       40%  (mode = pwm)  MANUAL CONTROL
pwm6:                        2%  (mode = pwm)  MANUAL CONTROL
pwm7:                        2%  (mode = pwm)  MANUAL CONTROL
intrusion0:            OK
intrusion1:            ALARM
beep_enable:           disabled

Are they 4 pin or 3 pin?
Are they on PWM or DC mode in the BIOS?

How new is that board? The soon to be released Kernel 6.15 will include support for many more boards.

Ok, your fan screenshot shows them at 0 RPM which means they are not readable or controllable.

Again, you need to save the configuration.
You exited with Ctrl C without saving as far as I can tell.

Your sensors output says they are configured for PWM mode but are they PWM (4 pin) fans?

the fans are explicitly labeled as cross compatible and I have verified this by plugging them into a network switch and they work fine, on another note, here is my bios version if that helps, i just checked and could not find any indication of a setting.

They must be PWM fans. I assume they’re not.
You need to check if they have a 4 pin plug.

Without the PWM pin you cannot control them.

If they are hooked up with an adapter you cannot control them.

it looks like the nct kernel module is wrongly indentifying the chip I have a picture of the bios showing it has a NCT5532D but sensors is showing it as a nct6796

I can’t see the details in your photo very well. It looks liike they have a 4th pin and are plugged into a 3 pin header. And it looks like two fans wired into one plug and each fan has 3 wires. If so, you can’t control them.

What’s the exact model of your motherboard?

When I plug them into a device that only supports voltage control the speed changes just fine.

its a cheap generic motherboard but here you go https://www.amazon.com/dp/B0B8PLCVHR

That looks like two 3 pin headers on your board.
You cannot control them with PWM.

If the board supports it, you may be able to configure them for voltage control.

@40476 I see no where you ran the command as root user pwmconfig

Any progress?

Hardware-wise I was thinking of two things:

  1. Did your fan splitter cable come with the fans? Are you sure it’s properly wired? Did you use the same splitter when you tested the fans with another device? A splitter with wrong wiring may cause erratic behavior, like unreliable fan speed readings.
  2. If there really is no setting for DC fan control in the BIOS, then that is pretty strange considering that A) the board has 3-pin fan headers and B) DC control is considered a legacy option. If you have any PWM headers free, consider getting something like a SATA-powered fan controller board with a PWM input and mutliple DC outputs.

As for the driver, even some mainstream boards require custom driver modules for accessing all temperature sensors and fan control channels. Could be that your NCT5532D chip is not supported out of the box.

I don’t have experience using pwmconfig so I’ll leave it up to wiser people to help with anything related to that.

Go up. He posted a photo. The fans have a 4 pin plug but are plugged into a 3 pin header. No control possible.

@jsmith64 yes, but pwmconfig should run since sensors show pwm%, fans won’t spin up, but it will show it would work or not…

1 Like

@jsmith64 Again, I have verified these fans support DC control, I have one connected to a variable resistor and have verified that.

it looks like the nct kernel module is wrongly indentifying the chip I have a picture of the bios showing it has a NCT5532D but sensors is showing it as a nct6796

how do force it to run for a specific chip?