Neue Prozessoren werden in beengten Notebooks unter Last oft sehr heiß. Heiß gelaufen takten sie sich automatisch herunter, um Schaden abzuwenden. Doch ist der Lärmpegel maximal rotierender Lüfter bei der Arbeit alles andere als angenehm.
Für Linux gibt es schon länger das Wächterprogramm Thermald von Intel, das als Systemdienst im Hintergrund läuft und über ACPI (Advanced Configuration and Power Interface) die Temperaturen ausliest. Sind diese zu hoch, dann tritt Thermald auf die Bremse und regelt den maximalen CPU-Takt herunter. Thermald (https://github.com/intel/thermal_daemon) ist in Ubuntu und Varianten vorinstalliert und aktiv, in anderen Distributionen über die Paketquellen nachinstalliert. Es funktioniert aber nur mit Intel-CPUs, ist also auf AMD-Systemen wirkungslos und deaktiviert sich sofort beim Systemstart, wie eine Abfrage mit
sudo systemctl status thermald
bestätigt. Das alternative Tool Cputemp (https://github.com/shibatch/cputemp) überwacht als Hintergrunddienst die Temperatur über lm-sensors und regelt die Taktfrequenz des Prozessors herunter, wenn eine vordefinierte Temperatur erreicht ist. Es funktioniert mit Intel- und mit AMD-CPUs. Zur Vorbereitung muss das Paket „lm-sensors“ installiert sein, was in Debian/Ubuntu
sudo apt install lm-sensors
erledigt. Die Ausgabe des Befehls „sensors“ im Terminal zeigt dann die erkannten Sensoren und die Messwerte in Celsius an. Cputemp liegt nur im Quellcode vor, doch wir haben das Programm für Linux mit 64 Bit (x86-Plattform) vorkompiliert. Es liegt als „cputemp“ auf Heft-DVD. In Fedora verlangt es die zusätzliche Bibliothek „libbds“, die dort mittels
sudo dnf install libbsd
nachzurüsten ist. Die Datei von Heft-DVD wird nach der Kopie in ein beliebiges Verzeichnis mit dem Kommando
chmod +x cputemp
ausführbar gemacht und „./cputemp“ ruft dann das Kommandozeilenprogramm auf. Es zeigt einen Hilfetext an und in der letzten Zeile die IDs der erkannten Temperatursensoren. Auf AMD-Systemen lautet die ID des gewünschten Sensors meist „k10temp“. Mit diesen Angaben ausgestattet, kann Cputemp dann seine Arbeit aufnehmen:
sudo ./cputemp --sensor k10temp --temp 80 --verbose
So läuft Cputemp im Terminal für einen Test im Vordergrund und hält die Temperatur des Sensors „k10temp“ auf maximal 80 Grad, wobei es die CPU bei Bedarf herunterregelt. Strg-C bricht den Testlauf ab. Funktioniert das Programm wie erwartet, kann ein dauerhafter Systemd-Dienst eingerichtet werden. Dazu verschiebt der Befehl
sudo mv cputemp /usr/local/bin/
sudo chown root:root /usr/local/bin/cputemp
die Programmdatei in ein Systemverzeichnis und passt die Rechte an. Systemd benötigt dann unter „/etc/systemd/system/“ noch eine Servicedatei namens „cputemp.service“, die der Editor Nano beispielsweise mittels
sudo nano /etc/systemd/system/cputemp.service
erstellt. Sie erhält als Inhalt die Zeilen aus dem Kasten „Listing: cputemp.service“ (eine vorbereitete Datei findet sich auch auf Heft-DVD). Der Name des Sensors hinter dem Parameter „–sensor“ muss, die gewünschte Maximaltemperatur nach „–temp“ kann optional angepasst werden. Die Eingabe
sudo systemctl daemon-reload
übernimmt die neue Service-Datei und
sudo systemctl enable --now cputemp.service
aktiviert und startet den Dienst. Wird er später nicht mehr benötigt, schaltet ihn das Kommando
sudo systemctl disable --now cputemp.service
wieder ab.

