Hardware monitoring in Linux
I have had this motherboard for a few months, currently on BIOS version 1.40. Although fan speed control is available though the BIOS, I wanted to have access through the OS or at least to be able to read temperature, voltage and fan RPM data from within linux like I could on my previous motherboard, an Asrock Z68 Pro3-M.
I found a while back that
# sensors-detect
is able to identify the embedded controller on the Z370M Pro4:
Trying family `VIA/Winbond/Nuvoton/Fintek'... Yes Found `Nuvoton NCT6683D eSIO' (address 0xa10, but not activated)
but is not able to access it.
I spent some time on this today and here are my findings:
[ 4.754471] nct6683: EC is disabled
# modprobe nct6683 force=1
# modprobe: ERROR: could not insert 'nct6683': No such device
[ 4464.599527] nct6683: Found NCT6683D or compatible chip at 0x2e:0xa20 [ 4464.600616] nct6683 nct6683.2592: NCT6683D EC firmware version 1.0 build 07/18/16
# sensors
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +35.0°C (high = +82.0°C, crit = +100.0°C) Core 0: +34.0°C (high = +82.0°C, crit = +100.0°C) Core 1: +33.0°C (high = +82.0°C, crit = +100.0°C) Core 2: +35.0°C (high = +82.0°C, crit = +100.0°C) Core 3: +37.0°C (high = +82.0°C, crit = +100.0°C) Core 4: +35.0°C (high = +82.0°C, crit = +100.0°C) Core 5: +33.0°C (high = +82.0°C, crit = +100.0°C) nct6683-isa-0a20 Adapter: ISA adapter VIN0: +0.34 V (min = +0.00 V, max = +0.00 V) VIN1: +1.02 V (min = +0.00 V, max = +0.00 V) VIN2: +1.01 V (min = +0.00 V, max = +0.00 V) VIN3: +1.06 V (min = +0.00 V, max = +0.00 V) VIN7: +1.34 V (min = +0.00 V, max = +0.00 V) VIN16: +1.07 V (min = +0.00 V, max = +0.00 V) VIN12: +0.00 V (min = +0.00 V, max = +0.00 V) VIN13: +1.02 V (min = +0.00 V, max = +0.00 V) VCC: +3.30 V (min = +0.00 V, max = +0.00 V) VSB: +3.42 V (min = +0.00 V, max = +0.00 V) AVSB: +3.42 V (min = +0.00 V, max = +0.00 V) VTT: +1.06 V (min = +0.00 V, max = +0.00 V) VBAT: +3.04 V (min = +0.00 V, max = +0.00 V) fan1: 0 RPM (min = 0 RPM) fan2: 2474 RPM (min = 0 RPM) fan3: 0 RPM (min = 0 RPM) fan4: 781 RPM (min = 0 RPM) Thermistor 14: +34.0°C (low = +0.0°C) (high = +0.0°C, hyst = +0.0°C) (crit = +0.0°C) sensor = thermistor Thermistor 15: +33.5°C (low = +0.0°C) (high = +0.0°C, hyst = +0.0°C) (crit = +0.0°C) sensor = thermistor PECI 0.0: +35.0°C (low = +0.0°C) (high = +0.0°C, hyst = +0.0°C) (crit = +0.0°C) sensor = Intel PECI intrusion0: OK beep_enable: disabled
For the record, adding
acpi_osi=Linux
with or without
acpi_enforce_resources=lax
on the kernel command line does not change anything. Furthermore, fan speed control is still not available due to a limitation of the nct6683 driver.
I am not sure if my findings are specific to my hardware or represent a bug in lm_sensors, the nct6683 driver, or the Asrock Z370M Pro4 BIOS. Asrock does not support linux so I have not bothered contacting them. I did contact the lm_sensors maintainer, Guenter Roeck and hopefully he will reply. In the meantime, I would be interested in hearing from anyone running linux on an Asrock Z370 motherboard running into similar issues.
Update:
Thanks to Guenter for his suggestion to try the nct6683 driver from his GitHub repository – and for his work on lm_sensors. I built and installed the out of tree driver and now have access to the sensor data from my Asrock 370M Pro4 motherboard from within linux, without the need for the odd workaround. Please note, the driver still must be force loaded as explained above.
, specifically Xubuntu, the xfce based Ubuntu derivative. For the most part it remains serviceable, but some annoying bugs have come to light from time to time. I suspect these are at least in part due to the old hardware combined with a new(ish) kernel and drivers.
So now that I replaced one of our desktops with a laptop and it happened to be the one that the shared printer was connected to, I had to figure out what to do with the printer. Since there is no guarantee the laptop will be near the printer at any given time, I didn’t want to use it as the print server. There is no room for it at my desk so the printer stays where it is.