Fred78290 / nct6687d

Linux kernel module for Nuvoton NCT6687-R
GNU General Public License v2.0
211 stars 40 forks source link

Partially works with ASRock B650E PG-ITX #68

Open J-Pai opened 1 year ago

J-Pai commented 1 year ago

Thanks for implementing this module! Tested with Ubuntu 22.04 LTS.

Just wanted to leave a note for those who may have this motherboard and want to get Sensor data on Linux.

$ sudo sensors
nct6686-isa-0a20
Adapter: ISA adapter
+12V:            0.00 V  (min =  +0.00 V, max =  +0.00 V)
+5V:             0.00 V  (min =  +0.00 V, max =  +0.00 V)
+3.3V:           3.39 V  (min =  +0.00 V, max =  +3.39 V)
CPU Soc:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU Vcore:       0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU 1P8:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU VDDP:        0.00 V  (min =  +0.00 V, max =  +0.00 V)
DRAM:            0.00 V  (min =  +0.00 V, max =  +0.00 V)
Chipset:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU SA:          0.00 V  (min =  +0.00 V, max =  +0.00 V)
Voltage #2:      0.00 V  (min =  +0.00 V, max =  +0.00 V)
AVCC3:           0.00 V  (min =  +0.00 V, max =  +0.00 V)
AVSB:            3.39 V  (min =  +0.00 V, max =  +3.39 V)
VBat:            1.81 V  (min =  +0.00 V, max =  +1.81 V)
CPU Fan:        773 RPM  (min =  646 RPM, max = 1435 RPM)
Pump Fan:       758 RPM  (min =  718 RPM, max =  766 RPM)
System Fan #1:    0 RPM  (min =    0 RPM, max =    0 RPM)
System Fan #2:  785 RPM  (min =  771 RPM, max =  809 RPM)
System Fan #3:    0 RPM  (min =    0 RPM, max =    0 RPM)
System Fan #4:    0 RPM  (min =    0 RPM, max =    0 RPM)
System Fan #5:    0 RPM  (min =    0 RPM, max =    0 RPM)
System Fan #6:    0 RPM  (min =    0 RPM, max =    0 RPM)
CPU:            +45.0°C  (low  = +45.0°C, high = +46.5°C)
System:         +45.0°C  (low  = +45.0°C, high = +46.5°C)
VRM MOS:        +36.0°C  (low  = +36.0°C, high = +38.0°C)
PCH:            +48.0°C  (low  = +41.0°C, high = +71.0°C)
CPU Socket:     +32.0°C  (low  = +25.0°C, high = +89.0°C)
PCIe x1:        +62.0°C  (low  = +62.0°C, high = +62.0°C)
M2_1:           +62.0°C  (low  = +62.0°C, high = +62.0°C)
J-Pai commented 1 year ago

Actually. I take that back.

Needed to run some diagnostics to make sure CPU Soc voltage was within range.

+12V:            0.00 V  (min =  +0.00 V, max =  +0.00 V)
+5V:             0.00 V  (min =  +0.00 V, max =  +0.00 V)
+3.3V:           3.39 V  (min =  +0.00 V, max =  +3.39 V)
CPU Soc:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU Vcore:       0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU 1P8:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU VDDP:        0.00 V  (min =  +0.00 V, max =  +0.00 V)
DRAM:            0.00 V  (min =  +0.00 V, max =  +0.00 V)
Chipset:         0.00 V  (min =  +0.00 V, max =  +0.00 V)
CPU SA:          0.00 V  (min =  +0.00 V, max =  +0.00 V)
Voltage #2:      0.00 V  (min =  +0.00 V, max =  +0.00 V)
AVCC3:           0.00 V  (min =  +0.00 V, max =  +0.00 V)
AVSB:            3.39 V  (min =  +0.00 V, max =  +3.39 V)
VBat:            1.81 V  (min =  +0.00 V, max =  +1.81 V)

It looks like for this particular motherboard (ASRock B650E PG-ITX), the voltages are not reported through the driver correctly.

hfc2x commented 7 months ago

I think it partially works because AFAIK, AsRock boards use a different Nuvoton sensor model. I'm not sure about your particular board, but I believe AsRock boards tend to use NCT6796D instead.

Fred78290 commented 7 months ago

@hfc2x Did you test with the force flag?

hfc2x commented 7 months ago

Oh, I'm sorry but I don't actually own an AsRock board. I was simply clarifying for the OP.

I have an MSI board, and this kernel module works perfectly for me :)

J-Pai commented 7 months ago

@hfc2x Did you test with the force flag?

What do you mean by the force flag? I might be able to try that out.

Fred78290 commented 7 months ago

@hfc2x Did you test with the force flag?

What do you mean by the force flag? I might be able to try that out.

@J-Pai

sudo sh -c 'echo "nct6687 force=1" >> /etc/modules'

The flag allow to force module to be installed

J-Pai commented 6 months ago

Been a while. Finally got the chance to try this out.

So it looks like the module is being loaded, so doesn't look like force=1 is entirely necessary. It's just like not every setting is mapped correctly.

Looks like I may need to attempt the Manual voltage configuration.

The Voltage settings are still missing.

J-Pai commented 6 months ago

And just some more pieces of information.

@hfc2x is probably right where the device is not entirely supported by the driver.

○ → for d in /sys/class/hwmon/*; do echo "$d: $(cat "$d/name")"; done 
/sys/class/hwmon/hwmon0: nvme
/sys/class/hwmon/hwmon1: amdgpu
/sys/class/hwmon/hwmon2: k10temp
/sys/class/hwmon/hwmon3: iwlwifi_1
/sys/class/hwmon/hwmon4: nct6686

My device reports back as a nct6686 (not nct6687d).

sibradzic commented 5 months ago

Kudos to the project. However I had much better luck with my B650E PG-ITX using nct6686 with these settings:

sensors nct6686-isa-0a20 k10temp-pci-00c3
nct6686-isa-0a20
Adapter: ISA adapter
Vcore:          768.00 mV (min =  +0.00 V, max =  +0.00 V)
+5.0V:            4.98 V  (min =  +0.00 V, max =  +0.00 V)
+12V:            12.10 V  (min =  +0.00 V, max =  +0.00 V)
CPU Input?:       3.49 V  (min =  +0.00 V, max =  +0.00 V)
VDDCR_SOC:        1.31 V  (min =  +0.00 V, max =  +0.00 V)
VDD_MISC:         1.10 V  (min =  +0.00 V, max =  +0.00 V)
DRAM:             1.36 V  (min =  +0.00 V, max =  +0.00 V)
+3.3V:            3.33 V  (min =  +0.00 V, max =  +0.00 V)
VSB:              3.39 V  (min =  +0.00 V, max =  +0.00 V)
AVSB:             3.39 V  (min =  +0.00 V, max =  +0.00 V)
VTT:              1.81 V  (min =  +0.00 V, max =  +0.00 V)
VBAT:             3.23 V  (min =  +0.00 V, max =  +0.00 V)
VREF:            64.00 mV (min =  +0.00 V, max =  +0.00 V)
CPU Fan:           0 RPM  (min =    0 RPM)
CPU/WP Fan:        0 RPM  (min =    0 RPM)
Chassis/WP Fan:    0 RPM  (min =    0 RPM)
GPU?:            +63.5°C  (low  =  +0.0°C)
                          (high =  +0.0°C, hyst =  +0.0°C)
                          (crit =  +0.0°C)  sensor = thermistor
M/B:             +59.5°C  (low  =  +0.0°C)
                          (high =  +0.0°C, hyst =  +0.0°C)
                          (crit =  +0.0°C)  sensor = thermistor
VRM:             +67.5°C  (low  =  +0.0°C)
                          (high =  +0.0°C, hyst =  +0.0°C)
                          (crit =  +0.0°C)  sensor = thermistor
CPU:             +76.0°C  (low  =  +0.0°C)
                          (high =  +0.0°C, hyst =  +0.0°C)
                          (crit =  +0.0°C)  sensor = AMD AMDSI
intrusion0:     OK
beep_enable:    disabled

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +76.6°C  
Tccd1:        +75.0°C

The only outputs I ain't confident about are "CPU Input" voltage and "GPU" temperature, everything else matches with what's set and reported by BIOS. And please disregard the FANs showing 0, sensors do work, it is just that I'm running 100% fan-less system right now.

J-Pai commented 2 months ago

Thanks for the mappings.

I guess my other issue is almost all the sensor inputs are also reporting zero. So even if I remap some of these inputs the outputs are still effectively all zeroes.

Not sure how you were able to get values out of your chipset. To be clear, I haven't updated my BIOS since the first day. Not sure if that might also have something to do with it.