Toolbox: CPU-Temperatur mit psensor überwachen

Das Monitoring-tool psensor protokolliert die Werte der Temperatursensoren und stellt sie in einer Grafik anschaulich dar.

In Pocket speichern vorlesen Druckansicht 25 Kommentare lesen
Lesezeit: 6 Min.
Von
  • David Wolski
Inhaltsverzeichnis

Wer sein System mit ausgewählten Komponenten selbst zusammengestellt hat oder mit Overclocking experimentiert, sollte zumindest in der Testphase die CPU-Temperatur im Auge behalten. Lm_sensors, Bestandteil fast aller Linux-Distributionen, liest die Werte der Temperatursensoren über den System Management Bus (SmBUS) aus; ein mitgeliefertes Kommandozeilen-Tool fragt die aktuellen Temperaturen ab.

Damit liefert lm_sensors allerdings nur Momentaufnahmen; zur Systemüberwachung ist ein Tool, das die Temperaturen protokolliert, praktischer. Diese Aufgabe übernimmt psensor, das als Frontend dient und in definierbaren Intervallen lm_sensors abfragt. Aus den Werten zeichnet das Tool eine aussagekräftige Kurve der CPU-Temperatur.

psensor (4 Bilder)

Temperaturverlauf

psensor zeichnet ausgewählte Messwerte von lm_sensors als Graph.

psensor erledigt seine Aufgabe ohne großen Konfigurationsaufwand und versteht sich dabei gut mit allen Desktop-Umgebungen. Gerade auf Desktops, denen eine zuverlässige Temperaturanzeige in Form eines Applets oder einer Shell-Erweiterung fehlt, füllt psensor eine Lücke.

Ubuntu enthält psensor bereits seit Version 11.10 in den Standard-Paketquellen und lässt sich gemeinsam mit dem Paket lm-sensors mit apt-get oder dem Software-Center installieren. Dabei wird auch hddtemp installiert, das die Festplattentemperatur abfragen kann. Das Einrichten des hddtemp-Daemons ist optional: Wer nur die CPU im Auge behalten will, kann die Konfiguration von hddtemp überspringen.

Für einige andere Distributionen gibt es psensor ebenfalls vorkompiliert, beispielsweise für Debian Testing und Unstable. Passende Pakete für OpenSuse sind über den Build Service verfügbar. Für Fedora 16/17 liefert das inoffizielle Repository "rpm-sphere" Pakete für 32- und 64-Bit-Systeme, die sich über pkgs.org auch einzeln herunterladen und installieren lassen. Der Quelltext der stabilen und der Entwickler-Version steht auf der Projekt-Website bereit; die Abhängigkeiten zum Kompilieren auf Debian-ähnlichen Systeme sind in der Datei README dokumentiert. Das benötigte Tool lm_sensors ist ebenfalls in den Paketquellen der gängigen Linux-Distributionen enthalten und über den Paketmanager schnell installiert.

Zur Ermittlung der Temperatur verlässt sich psensor auf lm_sensors. Bei einigen aktuellen Distributionen reicht die Standard-Konfiguration von lm_sensors bereits aus, um die Temperatur von CPU und Chipsatz anzuzeigen. Gibt psensor dagegen nichts aus oder fehlen wichtige Werte, muss zunächst lm_sensors konfiguriert werden.

Das Konfigurationsskript sensors-detect konfiguiert lm_sensors.

Dazu bringt lm_sensors das Konfigurationsskript sensors-detect mit, das im Terminal als root oder mit sudo aufgerufen wird. Das Skript erstellt die Konfigurationsdatei /etc/sensors3.conf neu und stellt dazu bei der Einrichtung einige Fragen zur Hardware: Nacheinander prüft das Skript Chipsatz, CPU, Speicherkontroller, I/O-Ports und Grafikadapter nach bekannten Sensor-Chips, für die es Unterstützung gibt. Jeder Suchlauf muss zunächst mit "yes" bestätigt werden, wobei das Skript darauf hinweist, wenn das System dadurch instabil werden könnte und eine Suche deshalb nicht empfehlenswert ist. Die Installation schreibt anschließend die Konfigurationsdatei und lädt das zugehörige Kernel-Modul i2c-dev. Eine Liste unterstützter Chipsätze liefert der Quellcode von lm_sensors in der Datei SUMMARY im Verzeichnis /doc/chips.

Unter Cinnamon und anderen Desktops zeigt sich psensor nach dem Start mit einem Panel-Symbol.

Das Programm psensor startet auf dem Unity-Desktop einen Indikator im Panel. Über den Menüpunkt "Sensor Preferences" legt man fest, welche Werte direkt über den Indikator abgefragt werden können. Bei anderen Desktops hat diese Einstellungen keine Wirkung, hier findet sich ein gewöhnliches Anwendungssymbol im Infobereich des Panels. Ein Klick darauf öffnet dann das psensor-Programmfenster, in dem sich einzelne Messwerte auswählen lassen. In den Standard-Einstellungen ist das Messintervall allerdings zu kurz, sodass der Graph zu plötzlichen Sprüngen auf der Temperaturskala neigt.

Ein Messintervall von vier Sekunden oder mehr sorgt für einen aussagekräftigeren Graphen.

Ein längeres Messintervall von etwa vier Sekunden sorgt für eine ruhigere und aussagekräftigere Grafik. Die Einstellung des Intervalls ist im Menü "Psensor / Einstellungen" unter "Sensoren" untergebracht. Bereits bei der Installation wird psensor als Autostart-Programm in der Session-Verwaltung eingerichtet, mit gnome-session-properties lässt sich das gegebenenfalls rückgängig machen.

Vergleichswerte, mit denen sich herausfinden lässt, ob das Auslesen der Temperaturen korrekt funktioniert, liefert der Befehl sensors im Terminal. Im Idealfall gibt der Befehl alle erkannten Sensoren inklusive Prozessor- und Chipsatz-Temperatur, CPU-Spannung und Lüftergeschwindigkeit aus. Relevant für die CPU-Temperatur sind nur die Angaben in dem Abschnitt, der mit "coretemp-" beginnt. Hier sind die Temperaturen der einzelnen CPU-Kerne aufgeführt. Viele Mehrkern-CPUs wie Intel Core-i3/5/7-Modelle geben mit dem Wert "Physical id 0" die Temperatur des gesamten Prozessors wieder. Wie genau ein Messwert ist, hängt stets von CPU und Sensor-Chip ab. Um festzustellen, ob die angezeigte Temperatur plausibel ist, vergleicht man die Ausgabe von sensors ohne Prozessorlast mit der Temperaturanzeige im BIOS des PCs. Die beiden Werte sollten nahe beieinander liegen.

Für typische PC-Hardware liefert lm_sensors generell verlässliche Werte. Unter Umständen gibt das Tool aber unsinnige Namen oder völlig abweichende Temperaturen aus, die auf falschen Einträgen in der Konfigurationsdatei /etc/sensors3.conf beruhen. In diesem Fall muss die Konfiguration manuell angepasst werden. Mit dem Kommando sensors -u findet man die internen Namen der Messwerte für die weitere Konfiguration heraus. Um beispielsweise für den Sensorchip "coretemp-isa-0000" den Wert "temp2" in "Core 0" umzubenennen, ist folgende Ergänzung in der Konfigurationsdatei nötig:

chip "coretemp-isa-0000" 
label temp2 "Core 0"

Mit "ignore" lassen sich unsinnige Angaben komplett ausblenden, beispielsweise mittels ignore fan3. Korrekturfaktoren können abweichende Temperaturen korrigieren. Das funktioniert allerdings nur, wenn Angaben für die jeweilige Hardware vorliegen. Nach Änderungen in der Konfiguration muss stets der Befehl sensors -s als root oder mit sudo ausgeführt werden, um die neue Konfiguration zu verwenden. Eine gute Quelle für Beispiel-Konfigurationen ist die lm_sensors-Mailingliste. (lmd) (lmd)