Scroll to navigation

THINKFAN.CONF(5) File Formats Manual THINKFAN.CONF(5)

BEZEICHNUNG

thinkfan.conf - YAML-formatierte Konfigurationsdatei für thinkfan(1)

BESCHREIBUNG

YAML ist eine sehr mächtige und prägnante Notierung für strukturierte Daten. Dessen vollständige Spezifikation finden Sie auf https://yaml.org/spec/1.2/spec.html. thinkfan verwendet nur eine kleine Teilmenge der YAML-Syntax, daher ist es für Benutzer zwar hilfreich, aber nicht zwingend notwendig, einen Blick auf die Spezifikation zu werfen.

Am erwähnenswertesten ist, dass Einrückungen syntaktisch bedeutsam sind. Insbesondere sollten Tabulatoren und Leerzeichen nicht gemischt verwendet werden. Wir empfehlen eine Einrückung von zwei Leerzeichen, wie nachfolgend gezeigt.

Die Konfiguration von thinkfan besteht aus drei Hauptabschnitten:

Gibt an, woraus Temperaturen gelesen werden sollen. Alle Treiber im hwmon-Stil und auch /proc/acpi/ibm/thermal werden unterstützt. Außerdem werden libatasmart (zum direkten Auslesen der Temperaturen von Festplatten) und NVML (über den proprietären Nvidia-Treiber) unterstützt, wobei beides von den Optionen beim Kompilieren von thinkfan abhängig ist.

Gibt an, welche Lüfter verwendet werden sollen (gegenwärtig ist nur einer erlaubt). Die Unterstützung für mehrere Lüfter befindet sich bereits in der Entwicklung und ist für eine zukünftige Veröffentlichung geplant. Sowohl PWM-Steuerungen im hwmon-Stil als auch /proc/acpi/ibm/fan können verwendet werden.

Weist die Temperaturen den Lüftergeschwindigkeiten zu. Eine »einfache Zuweisung« ordnet einer angegebenen Lüftergeschwindigkeit nur eine Temperatur als Unter- bzw. Obergrenze zu. In der »detaillierten Zuweisung« werden die Ober- und Untergrenzen für jeden unter sensors: konfigurierten Treiber/Sensor zugeordnet. Dieser Modus sollte verwendet werden, wenn thinkfan mehrere Geräte überwacht, die unterschiedliche Temperaturwerte tolerieren können.

In jedem dieser Abschnitte muss eine Liste aus Schlüssel-Wert-Zuordnungen stehen, wobei jede einen Sensortreiber, einen Lüftertreiber oder eine Zuordnung der Lüftergeschwindigkeit konfiguriert.

SENSOREN UND LÜFTERTREIBER

Damit thinkfan arbeiten kann, muss es darüber informiert sein, welche Tenperatorsensortreiber und Lüftertreiber es verwenden soll. Die Zuordnung der auszulesenden Temperaturen zu den Lüftergeschwindigkeiten ist in einem separaten Konfigurationsabschnitt angegeben (siehe den nachfolgenden Abschnitt LÜFTERGESCHWINDIGKEITEN).

Sensor-Syntax

Die Einträge im Abschnitt sensors: können hwmon-, thinkpad_acpi-, NVML- oder atasmart-Treiber angeben, wobei die beiden Letztgenannten bereits beim Kompilieren von thinkfan aktiviert werden müssen. Jede beliebige Zahl (größer als 0) und eine Kombination aus hwmon-, tpacpi-, nvml- und atasmart-Einträgen ist erlaubt. Jedoch darf höchstens ein tpacpi-Eintrag vorhanden sein.

sensors:
  - hwmon: hwmon-Pfad
    name: hwmon-Name
    indices: Indexliste
    correction: Korrekturliste
    optional: boolesche-erlaubte-Fehler
- tpacpi: /proc/acpi/ibm/thermal
    indices: Indexliste
    correction: Korrekturliste
    optional: boolesche-erlaubte-Fehler
  - nvml: nvml-Buskennung
    correction: Korrekturliste
    optional: boolesche-erlaubte-Fehler
  - atasmart: Platten-Gerätedatei
    correction: Korrekturliste
    optional: boolesche-erlaubte-Fehler
  - 

Lüfter-Syntax

Gegenwärtig unterstützt thinkfan nur einen einzigen Lüfter, daher kann es nur einen Eintrag in der Liste geben. Die Unterstützung für mehrere Lüfter ist derzeit in der Entwicklung und für eine zukünftige Veröffentlichung geplant. Der Lüfter ist entweder ein hwmon-Lüfter:

fans:
  - hwmon: hwmon-Pfad
    name: hwmon-Name
    indices: Indexliste

oder ein tpacpi-Lüfter:

fans:
- tpacpi: /proc/acpi/ibm/fan

Werte

Es gibt drei Möglichkeiten, Hwmon-Lüfter oder Sensoren anzugeben:

1)
Ein vollständiger Pfad zu einer »temp*_input«- oder »pwm*«-Datei wie »/sys/class/hwmon/hwmon0/pwm1« oder »/sys/class/hwmon/hwmon0/temp1_input«. In diesem Fall sind die Einträge »indices: Indexliste« und »name: hwmon-Name« überflüssig, da der Pfad einen bestimmten Lüfter oder Sensor eindeutig angibt.

Beachten Sie, dass diese Methode Probleme verursachen kann, wenn sich die Ladereihenfolge der Treiber nach Neustarts ändert, da sich das X im Ordnernamen »hwmonX« auf die Ladereihenfolge bezieht. Verwenden Sie Methode 2) oder 3), um dieses Problem zu vermeiden.

2)
Ein Verzeichnis, das einen spezifischen Hwmon-Treiber enthält, zum Beispiel »/sys/devices/platform/nct6775.2592«. Beachten Sie, dass dieser Pfad nicht das von der Ladereihenfolge abhängige Verzeichnis »hwmonX« enthält. Solange hier nur ein(e) einzelne(r) Hwmon-Treiber/-Schnittstelle enthalten ist, reicht es aus, den Eintrag »indices: Indexliste« anzugeben, woraus thinkfan die aus dieser Schnittstelle zu verwendenden Sensoren entnehmen kann. Der Eintrag »name: hwmon-Name« ist nicht erforderlich.

3)
Ein Verzeichnis, das mehrere oder alle Hwmon-Treiber-Einträge enthält, zum Beispiel »/sys/class/hwmon«. Hier sind sowohl »name: hwmon-Name« als auch »indices: Indexliste« erforderlich, um thinkfan über die aus diesem Pfad zu verwendende Schnittstelle und die aus dieser Schnittstelle zu verwendenden Sensoren oder Lüfter zu informieren.

Der Name der Hwmon-Schnittstelle, der üblicherweise in einer Datei »name« zu finden ist. Dies muss immer dann angegeben werden, wenn hwmon-Pfad ein Basispfad ist, in dem mehrere Hwmons enthalten sind. Diese Methode zur Angabe von Sensoren ist insbesondere dann nützlich, wenn sich der vollständige Pfad zu einem bestimmten Hwmon nach einem Neustart des Systems ändern kann, beispielsweise aufgrund einer anderen Ladereihenfolge der Treibermodule.

Eine YAML-Liste [ X1, X2, ], die angibt, welche Sensoren beziehungsweise welcher Lüfter aus einer angegebenen Schnittstelle verwendet werden soll. Sowohl /proc/acpi/ibm/thermal als auch viele Hwmon-Schnittstellen enthalten mehrere Sensoren und nicht alle davon sind für die Lüftersteuerung von Bedeutung.

Dies ist für hwmon-Einträge erforderlich, falls der hwmon-Pfad nicht auf eine einzelne »tempXi_input«-Eingabedatei zeigt, sondern auf ein Verzeichnis, welches eine oder mehrere Dateien enthält. In diesem Fall gibt die Indexliste das Xi an, dass in den Eingabedateien »tempXi_input« verwendet werden sollte. Eine Hwmon-Schnittstelle darf auch mehrere PWM-Steuerungen für Lüfter enthalten, so dass die Indexliste in diesem Fall genau einen Eintrag enthalten muss.

Für tpacpi-Sensoren ist dieser Eintrag optional. Falls er weggelassen wird, werden alle in /proc/acpi/ibm/thermal enthaltenen Temperaturen verwendet.

HINWEIS: Dies ist nur verfügbar, wenn bei der Kompilierung von thinkfan USE_NVML aktiviert wurde.

Die PCI-Buskennung einer nVidia-Grafikkarte, die mit dem proprietären nVidia-Treiber läuft. Diese kann mit dem Befehl »lspci | grep -i vga« ermittelt werden. Üblicherweise verwenden nVidia-Karten den quelloffenen noveau-Treiber, der stattdessen Hwmon-Sensoren unterstützen sollte.

HINWEIS: Dies ist nur verfügbar, wenn bei der Kompilierung von thinkfan USE_ATASMART aktiviert wurde.

Vollständiger Pfad zu einer Gerätedatei einer Festplatte, die S.M.A.R.T. unterstützt. Siehe auch die Option -d in thinkfan(1), welche verhindert, dass thinkfan schlafende (mechanische) Festplatten aufweckt, um deren Temperatur auszulesen.

Eine YAML-Liste, die für jeden der vom angegebenen Treiber verwendeten Sensoren Temperaturkorrekturwerte angibt. Verwenden Sie dies, wenn Sie die Syntax der »einfachen« Stufe verwenden wollen, aber in Kauf nehmen, dass Sie dies für Geräte mit geringerer Temperaturbeständigkeit kompensieren müssen. Beachten Sie jedoch, dass die detailliertere Syntax für gewöhnlich die bessere Wahl mit feineren Einstellmöglichkeiten ist.

Ein Wahrheitswert (yes/no/true/false), der angibt, ob thinkfan Fehlermeldungen beim Lesen aus diesem Sensor akzeptieren soll. Normalerweise wird thinkfan beendet und gibt eine Fehlermeldung aus, falls das Auslesen der Temperatur aus einem der konfigurierten Sensoren fehlschlägt. Einen Sensor als optional zu kennzeichnen kann für entfernbare Hardware oder Geräte nützlich sein, die zwecks Energieeinsparung vollständig abgeschaltet werden könnten.

LÜFTERGESCHWINDIGKEITEN

Der Abschnitt levels: gibt Lüftergeschwindigkeiten mit deren zugehörigen Temperaturunter- und -obergrenzen in Form einer Liste an. Wenn die Temperatur unter die Untergrenze fällt, wechselt thinkfan in die vorherige Stufe und wenn die Obergrenze erreicht ist, in die nächste Stufe.

Einfache Syntax

In der einfachen Form wird für eine bestimmte Lüftergeschwindigkeit nur eine einzige Temperatur als Unter- bzw. Obergrenze angegeben. In diesem Fall werden Untergrenze und Obergrenze nur mit der höchsten in allen konfigurierten Sensoren gefundenen Temperaturen verglichen. Alle anderen Temperaturen werden ignoriert. Dieser Modus ist für kleine Systeme (wie Laptops) geeignet, wo es nur ein Gerät gibt (zum Beispiel die CPU), dessen Temperatur gesteuert werden muss oder wo das nötige Lüfterverhalten für alle wärmeerzeugenden Geräte ähnlich genug ist.

levels:
  - [ Lüftergeschwindigkeit, Untergrenze, Obergrenze ]
  - 

Detaillierte Syntax

Dieser Modus ist für komplexere Systeme mit Geräten geeignet, die verschiedene Temperaturbereiche haben. Zum Beispiel können viele moderne CPUs und GPUs dauerhaft mit Temperaturen über 80°C umgehen, während eine Festplatte nicht überleben würde, wenn sie solche Temperaturen erreicht. Im detaillierten Modus werden die Unter- und Obergrenzen der Temperaturen individuell für jeden Sensor angegeben:

levels:
  - speed: Lüftergeschwindigkeit
    lower_limit: [ l1, l2,  ]
    upper-limit: [ u1, u2,  ]
  - 

Werte

Die möglichen Geschwindigkeitswerte sind unterschiedlich, je nachdem, welcher Lüftertreiber verwendet wird.

Für einen hwmon-Lüfter ist die Lüftergeschwindigkeit ein numerischer Wert von 0 bis 255 entsprechend der PWM-Werte, die von den verschiedenen Kerneltreibern akzeptiert werden.

Für einen tpacpi-Lüfter in Lenovo-/IBM-ThinkPads und einigen anderen Lenovo-Laptops (siehe SENSOREN UND LÜFTERTREIBER oben) können numerische Werte und Zeichenketten verwendet werden. Numerische Werte von 0 bis 7 sind zulässig. Die Zeichenkettenwerte folgen der Form "level Stufen-Kennung", wobei Stufen-Kennung ein Wert von 0 bis 7, auto, full-speed oder disengaged sein darf. Die numerischen Werte 0 bis 7 entsprechen den von der Firmware verwendeten Lüftergeschwindigkeiten, wobei die meisten Firmwares die Stufe 7 nicht verwenden. Der Wert "level auto" überlässt die Steuerung der Firmware, was nützlich sein kann, wenn das Lüfterverhalten nur für bestimmte Temperaturbereiche angepasst werden muss (üblicherweise am unteren und oberen Ende des Bereichs). Die Werte "level full-speed" und "level disengaged" sorgen dafür, dass der Lüfter nicht mehr durch die Firmware gesteuert wird. Das führt dazu, dass der Lüfter langsam auf ein absolutes Maximum hochfährt, das innerhalb der elektrischen Grenzen erreicht werden kann. Beachten Sie, dass dies nicht den Spezifikationen des Lüfters entspricht und erhöhten Verschleiß zur Folge haben kann. Es kann dennoch hilfreich sein, um thermischer Drosselung entgegenzuwirken.

Die Unter- und Obergrenzen beziehen sich auf die Sensoren in der gleichen Reihenfolge, wie sie beim Auswerten des sensors:-Abschnitts gefunden werden (siehe SENSOREN UND LÜFTERTREIBER oben). Für den ersten Eintrag kann die Untergrenze lower_limit und für den letzten Eintrag die Obergrenze upper_limit weggelassen werden. Für alle dazwischen liegenden Stufen muss sich die Untergrenze mit der Obergrenze der vorherigen Stufe überschneiden, um sicherzustellen, dass der gesamte Temperaturbereich abgedeckt wird und zwischen den Lüfterstufen eine gewisse Nachlaufsteuerung möglich ist.

SIEHE AUCH

Die thinkfan-Handbuchseite:
thinkfan(1)
Beispielkonfigurationen, die mit der Quelldistribution mitgeliefert werden, sind auch hier verfügbar:
https://github.com/vmatare/thinkfan/tree/master/examples
Die Dokumentation der Hwmon-Benutzerschnittstelle von Linux:
https://www.kernel.org/doc/html/latest/hwmon/sysfs-interface.html
Dokumentation zur thinkpad_acpi-Schnittstelle:
https://www.kernel.org/doc/html/latest/admin-guide/laptops/thinkpad-acpi.html

FEHLER

Melden Sie Fehler auf Github:
https://github.com/vmatare/thinkfan/issues

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

Dezember 2021 thinkfan 1.3.1