2990WX Linux Patches
Until Kernel 4.18.6 is released with the k10temp patch, Threadripper thermals will be mis-reported by 27c. Building a custom Kernel module will fix the issue temporarily.
This specifically patches thermal detection for the Gigabyte X399 Aorus Extreme for Ubuntu, but most likely will easily translate to other distros and motherboards.
Install Build Tools
Add deb-src
lines for distribution sources in /etc/apt
(just duplicate
the deb
line and add deb-src
).
apt update && apt upgrade
apt install build-essential bison flex linux-headers lm-sensors
apt build-dep linux
Clone patched IT87 Kernel Driver
The original Kernel IT87 driver was removed by the original author when he couldn’t keep up with requests anymore. Pull from a clone of that repository with the AMD patches built in. This will build and install the module for your current Kernel.
git clone https://github.com/rpavlik/it87
cd it87
make clean
make
make install
Note
https://github.com/Road-Drum/it87 contains a unmodified fork of original it87.
Force Detection of Module
Both the IT8792E and IT8795E have the same ID, so we need to force module installation and ignore conflicts.
modprobe it87 ignore_resource_conflict=1
sensors-detect
sensors | grep -i amd
sensors-detect
can be run with all default values.See Reading Sensors for a breakdown of sensors for the X399 Aorus board.
If a line is returned, then you are correctly reading Threadripper thermal temperatures.
Load Module on Boot
Add the module load line for ramfs and update it.
12...
13it87 ignore_resource_conflict=1
sudo update-initramfs -u
Important
Any new Kernel installed will require a new build of this module.
Reading Sensors
Be sure to read the correct chipset to find the right sensor values. Labels are according to the board layout diagram in the manual.
sensors
in0: +1.19 V (min = +0.00 V, max = +2.78 V)
in1: +1.50 V (min = +0.00 V, max = +2.78 V)
in2: +1.05 V (min = +0.00 V, max = +2.78 V)
in3: +2.02 V (min = +0.00 V, max = +2.78 V)
in4: +1.80 V (min = +0.00 V, max = +2.78 V)
in5: +1.50 V (min = +0.00 V, max = +2.78 V)
in6: +2.78 V (min = +0.00 V, max = +2.78 V)
3VSB: +3.33 V (min = +0.00 V, max = +5.56 V)
Vbat: +3.21 V
fan1: 0 RPM (min = 0 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: +43.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: -55.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +41.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
it8792 Fan Mapping
Layout Name |
Sensor Name |
---|---|
fan1 |
SYS_FAN5_PUMP |
fan2 |
SYS_FAN6_PUMP |
fan3 |
SYS_FAN4 |
in0: +0.77 V (min = +0.00 V, max = +3.06 V)
in1: +2.00 V (min = +0.00 V, max = +3.06 V)
in2: +2.03 V (min = +0.00 V, max = +3.06 V)
in3: +2.00 V (min = +0.00 V, max = +3.06 V)
in4: +1.19 V (min = +0.00 V, max = +3.06 V)
in5: +0.88 V (min = +0.00 V, max = +3.06 V)
in6: +1.20 V (min = +0.00 V, max = +3.06 V)
3VSB: +3.24 V (min = +0.00 V, max = +6.12 V)
Vbat: +3.12 V
fan1: 432 RPM (min = 10 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 1506 RPM (min = 0 RPM)
fan4: 703 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
temp1: +40.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +53.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +36.0°C (low = +0.0°C, high = +90.0°C) sensor = AMD AMDSI
temp4: +44.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp5: +49.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp6: -55.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
it8686 Fan Mapping
Layout Name |
Sensor Name |
---|---|
fan1 |
CPU_FAN |
fan2 |
SYS_FAN1 |
fan3 |
SYS_FAN2 (Built in VRM fans). |
fan4 |
SYS_FAN3 |
fan5 |
CPU_OPT |
temp3 |
Threadripper CPU temp (AMD AMDSI). |
Note
SYS_FAN2
is unlisited in manual.
Building Kernel 4.18.6+
If you would rather install a later Kernel, be aware that this will not be auto upgraded, and you’ll need to install additional packages for Kernel support such as ZFS (e.g. zfs-dkms spl-dkms). These are essentially Vanilla Kernels for Ubuntu with core patches. You will need at least Kernel 4.18.6.
Determine your platform and grab Kernel 4.18.6 source with ubuntu pataches. Any recent 64bit CPU will be amd64. You only need the generic Kernel.
wget http://Kernel.ubuntu.com/~Kernel-ppa/mainline/v4.18.6/linux-headers-4.18.6-041806_4.18.6-041806.201809050847_all.deb
wget http://Kernel.ubuntu.com/~Kernel-ppa/mainline/v4.18.6/linux-headers-4.18.6-041806-generic_4.18.6-041806.201809050847_amd64.deb
wget http://Kernel.ubuntu.com/~Kernel-ppa/mainline/v4.18.6/linux-image-unsigned-4.18.6-041806-generic_4.18.6-041806.201809050847_amd64.deb
wget http://Kernel.ubuntu.com/~Kernel-ppa/mainline/v4.18.6/linux-modules-4.18.6-041806-generic_4.18.6-041806.201809050847_amd64.deb
dpkg -i linux-headers*all.deb
dpkg -i linux-headers*amd64.deb
dpkg -i linux-modules*amd64.deb
dpkg -i linux-image*amd64.deb
Load the updated Kernel module and Add to ramfs
:
modprobe k10temp
12...
13k10temp
sudo update-initramfs -u
References