Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save psammarco/96376d590dff5a029ddc6dc401185722 to your computer and use it in GitHub Desktop.

Select an option

Save psammarco/96376d590dff5a029ddc6dc401185722 to your computer and use it in GitHub Desktop.
In order for a Ryzen 3000 SOC temperature to be logged under "sensors", a kernel 5.4.X or newer is required as it contains the instructions needed for these CPUs.
Alternatively the SOC instruction patches can be applied to a earlier kernel, however this guide won't be covering that.
Note: This won't work if your motherboard comes with a NCT chip.
I am assuming you are on Debian Buster and know how to resolve basic apt dependencies.
A. Downloading the kernel sources and setting up the build environment;
# cd /usr/src
# wget https://git.kernel.org/torvalds/t/linux-5.4-rc1.tar.gz
# tar xvf linux-5.4-rc1.tar.gz
# cd linux-5.4-rc1
B. Copying old kernel config;
# cp /boot/config-$(uname -r) .config
C. I don't know you, but fuck Secure Boot;
# scripts/config --disable SYSTEM_TRUSTED_KEYRING
# scripts/config --set-str SYSTEM_TRUSTED_KEYS ''
D. Now run “make menuconfing” and set all it87 drivers as well as k10temp driver as module, save and exit;
E. Detect available cores;
# jobs=$(nproc --all)
F. Building the kernel;
(Note, using debian linux kernel default config will require over 25GB of available space in /usr/src)
(Also, if the build fails due to missing dependencies, take time to read what is needed. These are often simple deps you can resolve through apt)
# make -j$jobs bindeb-pkg
G. Installing the newly built kernel;
# dpkg -i ../*.deb
# reboot
H. Assuming your system is back up, now you want to load the k10temp driver;
# modprobe k10temp force=1
I. Take time to read what ID your IT87 chip uses (My MSI B450 CARBON AC uses 0x8628, same as the Asus B450);
https://github.com/a1wong/it87/blob/master/it87.c
# modprobe it87 force_id=0x8628
L. If all went well, sensors should now detect your CPU's temperature (example below);
psammarco@miner1:~$ sensors |grep k10 -A3
k10temp-pci-00c3
Adapter: PCI adapter
Tdie: +28.2°C (high = +70.0°C)
Tctl: +28.2°C
psammarco@miner1:~$
m. Lastly, we want to make sure the modules and their parameters are loaded at boot;
# echo -e "it87\nk10temp" >> /etc/modules-load.d/modules.conf
# echo "options it87 force_id=0x8628" > /etc/modprobe.d/it87.conf
# echo "options k10temp force=1" > /etc/modprobe.d/k10temp.conf
Next... FAN control and temperature regulation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment