So kontrollieren Sie Ihre Hardware mit Sensoren unter Linux

Wie heiß der Prozessor wird oder ob sich der CPU-Lüfter noch dreht, lässt sich per Software herausfinden. Um alle verfügbaren Sensoren abzufragen, ist jedoch etwas Konfigurationsarbeit nötig.

Hardwarekontrolle mit Sensoren, wie heiß der Prozessor wird oder ob sich der CPU-Lüfter noch dreht, lässt sich per Software herausfinden. Um alle verfügbaren Sensoren abzufragen, ist jedoch etwas Konfigurationsarbeit nötig.

Ein defekter oder verschmutzter Lüfter kann die Temperatur von Prozessor oder Grafikkarte so weit in die Höhe treiben, dass das System instabil wird. Die CPU taktetet dann herunter, der Rechner reagiert nur noch zögerlich oder stürzt häufig ab. Dauerhaft zu hohe Temperaturen schaden außerdem den elektronischen Bauteilen, was nach einiger Zeit zu einem Komplettausfall führen kann. In PCs ist das Netzteil eine weitere Fehlerquelle. Defekte Kondensatoren beispielsweise halten die Spannungen nicht mehr stabil, was zu zahlreichen Fehlfunktionen führen kann.

Ob sich alle Werte im Normbereich befinden oder ob es Auffälligkeiten gibt, erfahren Sie unter Linux mit Tools, die die Sensordaten auslesen. Weitere Tools informieren Sie über Gesundheit und Temperatur der Festplatten. Wie das funktioniert, zeigen wir am Beispiel Ubuntu , bei anderen Systemen kann das Vorgehen teilweise abweichen.

Messwerte über Bios/Firmware ermitteln

Nicht jede Hauptplatine ist mit Sensoren für Temperaturen und Spannungswerte ausgestattet. Vor allem bei Notebooks sind in der Regel keine Sensorchips verbaut. Was die Hardware kann, lässt sich im Bios/ Firmwaresetup ermitteln. Bei Notebooks gibt es oft nur wenige Angaben, etwa zur Taktfrequenz und Temperatur der CPU. Bei Desktop-PCs finden Sie dagegen meist in einem Menü wie „PC Health“ oder ähnlich ausführlichere Informationen zu Spannungen, Temperaturen und den Umdrehungszahlen der Lüfter. Sind diese vorhanden, ist die Hauptplatine mit einem Sensorchip ausgestattet, der sich unter Linux wahrscheinlich auch per Software auslesen lässt.

Treiber für Sensoren einrichten

Der Linux-Kernel bietet Module, über die sich Hardwaredaten auslesen lassen, die aber nicht alle automatisch geladen werden. Um den passenden Treiber zu finden, installieren Sie das Paket „lm-sensors“ mit diesem Terminalbefehl:

sudo apt install lm-sensors

Danach starten Sie das eigentliche Tool:

sensors

Auf den meisten PCs erhalten Sie nur Infos zur Temperatur der Prozessorkerne. Dafür ist ein Modul zuständig, das der Kernel standardmäßig lädt. Um weitere Sensoren zu finden, verwenden Sie diesen Befehl:

sudo sensors-detect –auto

Die Option „–auto“ sorgt dafür, dass alle Fragen automatisch mit dem vorgegebenen Wert beantwortet werden. Am Ende sehen Sie eine Liste der erforderlichen Kernel-Module. Im optimalen Fall hat sensors-detect den Sensorchip erkannt, beispielsweise „it87“ oder „nct6775“. Sollte nur „cortemp“ (Intel), „k10temp“ oder „k8temp“ (AMD) auftauchen, scrollen Sie im Terminal zum Beginn der Informationen und dann wieder nach unten. Achten Sie auf die Angabe „yes“ am Ende der Zeilen. Bei einem Test-PC mit der Hauptplatine MSI B250M PRO-VDH tauchte hier

Trying family ‚VIA/Winbond/ Nuvoton/Fintek’… Yes

Found unknown chip with ID 0xd352

auf. Sensors-detect hat zwar einen Sensor-Baustein gefunden, den Treiber aber nicht geladen, weil dieser offiziell die Version des Chips nicht unterstützt. In diesem Fall kann es helfen, das Laden des Treibers zu erzwingen, für unser Beispiel etwa mit dieser Befehlszeile:

sudo modprobe nct6775 force_id=0xd352

Sensors sollte dann deutlich mehr Informationen liefern, wenn der Treiber geladen wurde. Mit dem Terminalbefehl

dmesg

lassen Sie sich die letzten Kernel-Meldungen ausgeben. Bei Erfolg sehen Sie eine Info wie die folgende:

nct6775: Found NCT6795D or compatible chip at 0x4e:0xa20

Es gibt allerdings keine Gewähr dafür, dass das bei jeder Hauptplatine ähnlich funktioniert. Die Suche im Internet nach der gemeldeten ID in Verbindung mit „sensors“ liefert meist Ergebnisse mit den Erfahrungen anderer Benutzer.

Wenn sensors-detect nichts findet, obwohl ein Sensorchip vorhanden ist, versuchen Sie dessen Typ mit einem Blick auf die Hauptplatine herauszufinden. Es handelt sich meist um Bausteine mit der Aufschrift „Nuvoton“, „Winbond“ oder „ITE“ mit Abmessungen von circa 1 x 1 cm. Manchmal sind diese Informationen auch im Handbuch zu finden. Über eine Internetsuche ermitteln Sie, ob und wie dieser Chip sich unter Linux ansprechen lässt.

Treiber beim Systemstart laden: Damit die Sensorinformationen direkt nach einem Linux-Neustart zur Verfügung stehen, erstellen Sie eine Konfigurationsdatei:

sudo gedit /etc/modules-load.d/sensoren.conf

Tragen Sie die Namen der Treiber jeweils in einer eigenen Zeile ein. „cortemp“, „k10temp“ oder „k8temp“ müssen Sie nicht eintragen, weil der Kernel diese Module automatisch lädt. Wenn zusätzliche Optionen erforderlich sind, erstellen Sie zusätzlich die Datei „/etc/modprobe.d/ sensoren.conf“. Hier tragen Sie beispielsweise diese Zeile

options nct6775 force_id=0xd352

ein.

Formatierung der Sensorwerte anpassen

Sensors gibt zahlreiche Werte aus, die sich nur teilweise von selbst erklären und auch nicht immer plausibel sind. Die Angaben zu den Umdrehungszahlen der Lüfter, beispielsweise hinter „fan2“ und „fan3“, stimmen meistens. Bei den Spannungsangaben, etwa hinter „in0“ bis „in14“, ist jedoch nichts von 12 oder fünf Volt zu sehen, sondern deutlich geringere Werte. Die Ursache dafür liegt im geringen Messbereich der Sensoren, meist 0 bis 4,08, 3,06 oder 2,048 Volt. Die Register liefern 256 Messwerte, sodass sich etwa bei 2,048 Volt acht Millivolt-Schritte ergeben. Höhere Spannungen werden durch vorgeschaltete Widerstände reduziert und müssen erst in die tatsächlichen Werte umgerechnet werden. Das erfolgt zusammen mit der Beschriftung der Einträge über die Datei „/etc/sensors3. conf“, die Daten für einige meist ältere Sensorchips enthält. Ist ein unterstützter Chip enthalten, sehen Sie in der sensors-Ausgabe beispielsweise statt „in2“ die Beschreibung „+3.3V“. „sensors3.conf“ wird bei einem Paketupdate überschrieben, daher sollten Sie in der Datei nichts ändern. Für eigene Anpassungen werden Konfigurationsdateien mit der Endung „.conf“ im Ordner „/etc/sensors.d“ berücksichtigt.

Vorbereitete Konfigurationsdateien finden Sie im Github-Projekt von lm-sensors . Eventuell gibt es hier eine Datei, die genau zu Ihrem Mainboard passt. Kopieren Sie diese in den Ordner „/etc/sensors.d“ und lesen Sie die Konfiguration mittels

sudo sensors -s

ein. Sensors zeigt dann Beschreibungen und die korrigierten Messwerte.

Temperaturentwicklung unter Belastung

Probleme der Hardware zeigen sich oft erst, wenn die Temperatur unter höherer Last ansteigt. Das kleine Tool s-tui hilft Ihnen dabei, die CPU-Auslastung in die Höhe zu treiben, die Temperatur zu kontrollieren und damit die Wirksamkeit der Lüftung zu testen. s-tui ist mit einer einfachen grafischen Oberfläche für das Terminalfenster ausgestattet. Zur Installation verwenden Sie diese beiden Befehlszeilen:

sudo apt-get install gcc python-dev python-pip stress

sudo pip install s-tui

Danach starten Sie das Tool mit

s-tui

Das Programm zeigt die Taktfrequenz, Auslastung, Temperatur und Leistungsaufnahme des Prozessors an. Klicken Sie auf „Stress“, um den Belastungstest zu starten. Die Temperatur sollte dabei nicht über das für die CPU zulässige Maximum steigen und das Betriebssystem sollte weiter stabil laufen. Andernfalls reinigen Sie die Lüfter oder tauschen sie aus.

Korrekturwerte für Spannungen ermitteln

Wenn bei Github keine Konfigurationsdatei für Ihren PC zu finden ist, suchen Sie im Internet danach. Sollten Sie nichts finden, erstellen Sie die Datei selber. Als Vorlage kann eine der Github-Dateien für eine ähnliche Hauptplatine mit dem gleichen Sensorchip dienen.

Welche Versorgungsspannungen sich genau hinter den Ausgaben von sensors verbergen, lässt sich nicht ohne Weiteres herausfinden und ohne Dokumentation vom Mainboardhersteller nur erraten. Erste Hinweise gibt eine Beobachtung der Werte mittels des Befehls

watch -d sensors

Durch „-d“ werden die Änderungen hervorgehoben. Erzeugen Sie eine höhere Prozessorlast, beispielsweise über das Tool s-tui (siehe Kasten). Bei aktuellen CPUs verändert sich wenigstens ein Wert deutlich unter Last, etwa von 0,75 auf 1,08 Volt. Das ist typisch für die CPU-Kernspannung („Vcore“). Da sich die Spannung im Messwertbereich des Sensors bewegt, ist sie nicht skaliert und kann ohne Umrechnung verwendet werden.

Die Spannungen fünf und 12 Volt sind nur schwer zu identifizieren, da diese auf jeden Fall umgerechnet werden müssen.

Zur Berechnung benötigt man mehrere Messungen der Versorgung mit fünf und 12 Volt. Die findet man entweder über Bios-Screenshots im Internet, man beobachtet Schwankungen der Werte im Bios-Setup oder verwendet ein vom Boardhersteller geliefertes Tool unter Windows. Aus den Spannungsdifferenzen ergeben sich dann die skalierten Millivolt-Schritte, beispielsweise von 50 Millivolt. Wenn der Chip in 12-mV-Schritten misst und das Bios eine Spannung von 12,072 anzeigt, lautet die Rechnung: 12,072 V/ (50/12)=2,897 V. Wenn in der Ausgabe von sensors ein Wert um die 2,897 Volt auftaucht, handelt es sich wahrscheinlich um den Messwert für die 12-Volt-Spannungsversorgung.

Bei Sensorchips mit einem kleinen Messbereich von 2,048 Volt, wie dem NCT6795D in unserem Test-PC, liegen die Werte oft dicht beieinander. Man kann sich damit behelfen, den Skalierungsfaktor herauszufinden. Angenommen, das Bios zeigt 12,48 Volt an und Sensors liefert 1,02, 1,03, 1,04 Volt, dann ergibt sich bei Acht-mV-Schritten: 12,48/1,04*8=96. Die anderen Voltzahlen ergeben keine ganzzahligen Werte und scheiden daher wahrscheinlich aus, jedenfalls, wenn sich die Spannung inzwischen nicht geändert hat. Der Skalierungsfaktor ist in diesem Fall 96/8, also 12: 12,48 V / (96/8) = 1,04 V. Bei 5,5 und 3,3 Volt gehen Sie entsprechend vor. Die Skalierungsfaktoren können jedoch andere sein und aufgrund von Rundungsfehlern ergeben sich auch nicht immer ganzzahlige Faktoren.

Individuelle Konfiguration erstellen

Erzeugen Sie die eigene Konfigurationsdatei mit einem beliebigen Texteditor:

sudo gedit etc/sensors.d/MeineSensoren.conf

In der ersten Zeile muss „chip“ gefolgt von der Typbezeichnung stehen. Wenn sensors „nct6795-isa-0a20“ ausgibt, genügt „nct6795-*“. Danach folgen Abschnitte für die einzelnen Sensoren, die jeweils mit „label“ beginnen:

label in4 „+12V“

Dies weist dem Sensor „in4“ einen aussagekräftigen Namen zu. In den „label“-Abschnitten lässt sich mit „compute“ ein Spannungs- oder Temperaturwert umrechnen und mit „set“ ein Minimal- und Maximalwert setzen. Mit „ignore“ blenden Sie einen dahinter angegebenen Wert aus. Eine Beispielkonfiguration sehen Sie in der Abbildung oben.

Die Berechnung mit „compute“ verwendet den jeweiligen Wert („@“) und besteht aus zwei Teilen. Vor dem Komma wird die aktuelle Spannung mit dem zuvor ermittelten Korrekturfaktor multipliziert. Die Formel nach dem Komma wird für die Anpassung der Minimal- und Maximalwerte eingesetzt. Nachdem Sie die Konfigurationsdatei gespeichert haben, führen Sie

sudo sensors -s

aus und lassen sich die geänderten Werte dann mit sensors anzeigen.

Grafische Oberfläche für Sensoren

Sobald lm-sensors konfiguriert ist, können Sie psensor für eine grafische Darstellung verwenden. Das Programm lässt sich unter Ubuntu über das gleichnamige Paket installieren. Psensor zeigt die gleichen Werte an wie sensors, allerdings keine Spannungen. Setzen Sie Häkchen in der Spalte „Graph“, um sich den Verlauf eines Wertes im Diagramm anzeigen zu lassen.

Über „Einstellungen“ im Menü legen Sie auf der Registerkarte „Providers“ fest, welche Sensoranbieter berücksichtigt werden sollen. Neben „lm-sensors“ gibt es auch Unterstützung für Sensoren auf Nvidia-Grafikkarten, wenn der proprietäre Nvidia-Treiber installiert ist. Unter „Hard disk drive“ aktivieren Sie „Enable support of udisks2“. Psensor liefert dann auch die Temperaturen der Festplatten. Soll Psensor automatisch starten, setzen Sie auf der Registerkarte „Startup“ ein Häkchen vor „Launch on session startup“. Das Tool zeigt sich auch über ein Symbol im Panel, das nach einem Klick darauf eine Übersicht mit den Sensordaten liefert.

Ein weiteres Tool ist die Erweiterung Freon für die Gnome-Shell, die sich ebenfalls als Symbol im Panel zeigt und bei Bedarf auch Infos zu den Versorgungsspannungen liefert. Hier richten Sie über den Link „Click here to install browser extension“ zuerst eine Firefox-Erweiterung ein. Nutzer von Ubuntu 18.04 müssen außerdem das Paket „chromegnome- shell“ installieren. Starten Sie Firefox neu, suchen Sie auf der Webseite nach „Freon“ und klicken Sie auf „Freon by UshakovVasilii“. Setzen Sie den Schalter rechts oben auf „On“ und bestätigen Sie per Klick auf „Installieren“. Nach kurzer Zeit meldet sich die Erweiterung mit den Temperaturangaben für Maximal- und Durchschnittswerte im Panel. Per Mausklick klappen Sie ein Menü mit weiteren Werten auf. Was angezeigt werden soll, legen Sie über „Sensoreinstellungen“ fest. Setzen Sie beispielsweise den Schalter hinter „Versorgungsspannung anzeigen“ auf „An“. Hinter „HDD/SSD-Temperaturdienst“ wählen Sie in der Regel „UDisks2“ und hinter „Grafikkartendienst“ einen Anbieter wie „Nvidia“ oder „Catalyst“ (AMD).

Zustand der Laufwerke prüfen

Festplatten und SSDs protokollieren Statusinformationen automatisch. Diese SMART-Werte (Self-Monitoring, Analysis and Reporting Technology) lassen sich auslesen und geben Hinweise auf Defekte. Starten Sie das Tool gnome-disks per Suche nach „Laufwerke“, bei Ubuntu 18.04 über „Aktivitäten“. Klicken Sie das gewünschte Laufwerk auf der linken Seite des Fensters an und drücken Sie die S-Taste.

Das Fenster zeigt die Temperatur des Laufwerks und die Betriebsstunden. Hinter „Allgemeine Einschätzung“ sollte „Das Laufwerk ist in Ordnung“ stehen – wenn nicht, sollten Sie an einen Austausch denken. Bei SSDs steht in der Tabelle hinter „wear-leveling- count“ in der Spalte „Normalisiert“ ein aussagekräftiger Wert. Neue SSDs starten mit „100“ und der Wert reduziert sich mit der Zeit. Sobald er nahe „0“ ist, sollten Sie das Laufwerk ersetzen.

Gnome-disks zeigt bei externen Laufwerken keine SMART-Werte und auch keine Temperatur an. Dafür benötigen Sie das Tool gsmartcontrol, das Sie über das gleichnamige Paket installieren. Per Doppelklick auf das gewünschte Laufwerk öffnen Sie das Infofenster. Auf der Registerkarte „Attributes“ sehen Sie die SMART-Werte und unter „Temperature Log“ die Temperatur.

Hinweis: Auch bei unauffälligen SMART-Werten kann ein Laufwerk jederzeit ausfallen. Vor Datenverlust schützen nur regelmäßige Backups.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.