thinkfan.conf - YAML-formatierte Konfigurationsdatei für
thinkfan(1)
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:
- sensors:
- 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.
- fans:
- 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.
- levels:
- 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.
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).
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
- …
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
- hwmon-Pfad
- 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 »hwmon X« 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
»hwmon X« 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.
- hwmon-Name
- 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.
- Indexliste
- 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
»temp Xi_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 »temp Xi_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.
- nvml-Buskennung
- 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.
- Platten-Gerätedatei
- 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.
-
Korrekturliste (immer optional)
- 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.
-
boolesche-erlaubte-Fehler (immer optional,
standardmäßig false)
- 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.
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.
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 ]
- …
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 80C 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, … ]
- …
- Lüftergeschwindigkeit
- 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.
-
l1, l2, …
-
u1, u2, …
- 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.
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
Melden Sie Fehler auf Github:
https://github.com/vmatare/thinkfan/issues
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario
Blättermann <
[email protected]> 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