ASRock Taichi x870e Linux fan controller / sensors issue

Has anyone had any luck getting fan controls and sensors working on linux with the Taichi x870e?

I’ve tried loading kernel modules nct6683 and I’ve also tried Fred78290’s nct6687d module from his github.

Both got more sensors to actually display, but neither can see or control fan RPMS. They all read zero still with the sensors command or pwmconfig.

Does anyone know which nuvoton fan control module is present on this board, or how to find out?

1 Like

OK I did find a solution / module that works.

sudo modprobe nct6775

nct6775 show valid fan RPMS and allows control.

❯ sensors
spd5118-i2c-7-51
Adapter: SMBus PIIX4 adapter port 0 at 0b00
temp1:        +33.8°C  (low  =  +0.0°C, high = +55.0°C)
                       (crit low =  +0.0°C, crit = +85.0°C)

nct6799-isa-0290
Adapter: ISA adapter
in0:                     1.14 V  (min =  +0.00 V, max =  +1.74 V)
in1:                     1.81 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in2:                     3.42 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in3:                     3.31 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in4:                     1.68 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:                     1.06 V  (min =  +0.00 V, max =  +0.00 V)
in6:                   800.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in7:                     3.42 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in8:                     3.30 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in9:                     1.81 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in10:                    1.20 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in11:                    2.05 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in12:                    1.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in13:                  904.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in14:                    2.04 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in15:                  808.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in16:                    3.31 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in17:                    2.04 V  (min =  +0.00 V, max =  +0.00 V)
fan1:                   686 RPM  (min =    0 RPM)
fan2:                   952 RPM  (min =    0 RPM)
fan3:                   976 RPM  (min =    0 RPM)
fan4:                     0 RPM  (min =    0 RPM)
fan5:                   679 RPM  (min =    0 RPM)
SYSTIN:                 +37.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +80.0°C)  sensor = thermistor
CPUTIN:                 +33.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +80.0°C)  sensor = thermistor
AUXTIN0:                +37.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +80.0°C)  sensor = thermistor
AUXTIN1:                +15.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit =  +0.0°C)  sensor = thermistor
AUXTIN2:                -62.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +80.0°C)  sensor = thermistor
AUXTIN3:                -62.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +100.0°C)  sensor = thermistor
SMBUSMASTER 0:          +51.5°C  (high = +80.0°C, hyst = +75.0°C)
AUXTIN4:                +23.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +100.0°C)
AUXTIN5:                -62.0°C
PCH_CHIP_CPU_MAX_TEMP:   +0.0°C
PCH_CHIP_TEMP:           +0.0°C
PCH_CPU_TEMP:            +0.0°C
TSI0_TEMP:              +51.9°C
intrusion0:            ALARM
intrusion1:            ALARM
beep_enable:           disabled
1 Like

The other sensors dont seem to have any valid ranges defined so they are all in alarm, but I guess thats fine?

Yeah, that’s normal, unfortunately.

I actually mailed ASRock once and asked about documentation on how the sensor chip is connected (what the different sensor channels are sensing, and what scalings and offsets they are using), thinking I could write an lm-sensors config file for the motherboard in question.

ASRock’s response:

Hi,

Due to our policy, we are not able to provide this kind of information.

All the best
ASRock TSD

D*ckheads. It’s so annoying. Why even hook the sensor chip up and then not share what it’s reading!?

But anyway, that’s why the sensor info is not available in any useful format.

A good way to find out is by using a flashlight. :slight_smile: The Nuvoton chips are usually clearly marked and rather large, so looking at the chip to figure out the model is very possible.

Hi Juts,

I’m thinking about making the X870E Taichi Lite my next motherboard but fan control is a major factor in my final choice. Especially as I’m a 24/7 Linux user. So I’m a little bit disheartened to find this thread. Hopefully the / situation has improved in the last few months though.

Do you have any update on the state of fan control on you X870E Taichi please?

Have you considered or tried using CoolerControl? - GitHub - codifryed/coolercontrol: This is mirror of the official repository on GitLab. Please go there for reporting issues and requesting new features.

The question mark I have surrounding the X870E Taichi Lite’s fan control, is pretty much the only thing stopping me making the final decision to buy it.

I’ve been using x870e taichi lite since late November on Bazzite (F41-based, but from the fedora atomic/silverblue project). I had some problems with fan control as well as no ethernet support early on when F41 was still on kernel 6.11. Once I was able to get on kernel 6.12 the ethernet stuff was fixed, and my fan control was working great via coolercontrol, but the kernel I’m using recently forced removal of nct6687 kernel module, which seems to have completely borked my fan control setup, and it’s not very straightforward for me to roll my own kernel modules in on fedora atomic :cry: so I’m a little hosed at the moment.

I think so long as you’re intending to use a distro where you have a little more control over kernel modules and you can grab nct6687 you should be good to go. As mentioned elsehwere here, there’s also decent support using nct6775, but I have found that I can’t control all of the fan headers with that module in coolercontrol.

Sorry very late reply. I found nct6775 to work perfectly. The nuvoton drivers are in that module

I tested this out a little bit more now that I’ve got nct6687 again and can recreate the setup that I was using.

I do agree that nct6775 works, however there are at least two fan headers that aren’t addressable when using nct6775 and won’t appear in sensors output and aren’t responding to pwmconfig.

I am able to address all fan headers if I load two separate modules:

  • nct6687 (out of tree, requires manual installation from AUR or bundled into kernel - Fred78290 on GH publishes the module)
  • nct6775

Most of the fans appear after modprobing nct6775, but I have two more that only appear when modprobing 6687. I think they’re connected to pump headers, FWIW, but I’m using them for additional case fans.

I’m sure you can probably work around the limitation and just swap physical headers/plugs around and use some Y-cables if you’ve got more fans than headers until you get a set that agrees with nct6775. But if you want to use all of the headers I haven’t found a single module that exposes them as a single device :cry: