Temperature, System Monitoring for Ryzen 3000 and X570 Motherboards in Linux

Hi, there are some similar older threads, which I have looked through:

But I thought I’d make one specifically for Ryzen 3000 and X570 since they appear to be different enough. I’m specifically running Arch Linux (custom USB boot disk to work around the systemd bug, made with archiso), although I expect most of this might apply to any Linux. Currently I’m running kernel 5.2.2-arch1-1-ARCH.

I’ve just started setting up a Ryzen 3700X on an ASUS ROG Crosshair VIII Hero (CH8) with the 0702 (AGESA 1.0.0.3AB) BIOS, currently fully stock atm. Running lm_sensor’s sensors-detect, it finds an nct6775 by default, but gives nothing useful. I’ve installed the latest driver via AUR ( nct6775-master-dkms-git, a fork of Guenter Roeck’s unmaintained out-of-tree driver), and after adding acpi_enforce_resources=lax as a boot option, was able to get something more better:

nct6798-isa-0290
Adapter: ISA adapter
in0:                    +0.21 V  (min =  +0.00 V, max =  +1.74 V)
in1:                    +1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in2:                    +3.41 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in3:                    +3.34 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in4:                    +1.74 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:                    +0.60 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in6:                    +1.10 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in7:                    +3.41 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in8:                    +3.26 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in9:                    +0.89 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in10:                   +0.00 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in11:                   +0.10 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in12:                   +1.03 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in13:                   +1.20 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in14:                   +0.89 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
fan1:                     0 RPM  (min =    0 RPM)
fan2:                   762 RPM  (min =    0 RPM)
fan3:                     0 RPM  (min =    0 RPM)
fan4:                   719 RPM  (min =    0 RPM)
fan5:                     0 RPM  (min =    0 RPM)
fan6:                     0 RPM  (min =    0 RPM)
fan7:                  2532 RPM  (min =    0 RPM)
SYSTIN:                 +34.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
CPUTIN:                 +33.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
AUXTIN0:                +21.0°C    sensor = thermistor
AUXTIN1:               +127.0°C    sensor = thermistor
AUXTIN2:               +106.0°C    sensor = thermistor
AUXTIN3:                +32.0°C    sensor = thermistor
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  
intrusion0:            ALARM
intrusion1:            ALARM
beep_enable:           disabled

Here’s the dmidecode output for those looking to try forcing by address or doing other things:

Handle 0x0036, DMI type 34, 11 bytes
Management Device
	Description: NCT6798D-R
	Type: Other
	Address: 0x00000295
	Address Type: I/O Port

One notable missing number is the SMBUSMASTER, which I believe is the on-die CPU temperature? I was not able to get k10temp detected by lm_sensors (looks like there is a patch that I might try out and it will land in 5.4). zenpower currently isn’t working either.

AMDuProf looks like it might work (and provide not just temp, but fine grained power, voltage, current, and frequency) but I wasn’t able to get the driver installed - just wondering if anyone has tried this or written a utility against the uProf API?

3 Likes