Unterabschnitte

1.1 LMSENSORS - Hardware-Sensoren auslesen

OPT_LMSENSORS erweitert fli4l um die Möglichkeit, Hardware-Sensoren des Mainboards oder anderer externer Sensoren (Parallelport-Adapter, ISA-Adapter) auszulesen, z.B. CPU-Temperatur, Mainboard Spannung oder Lüfterdrehzahlen.

Die Daten können über folgende Möglichkeiten angezeigt werden:

Das Paket basiert auf dem Linux Projekt lm_sensors Version 2.10.6 sowie die im Kernel enthaltene i2c Version.
Von dessen Autor Jean Delvare wurden, freundlicherweise, notwendige Anpassungen an die uclibc vorgenommen und in die Entwicklerversion übernommen.


Setzt Fli4l Version 3.2.0 mit Kernel 2.6 vorraus.
Funktioniert nicht mit Kernel 2.4 !!!


Als Vorlage für dieses Paket diente das OPT_SENSORS für fli4l 2.0.8 von Gero Kuhlmann.

Disclaimer:

Der Autor gibt weder eine Garantie auf die Funktionsfähigkeit des OPT_LMSENSORS, noch haftet er für Schäden, z.B. Datenverlust, die durch den Einsatz von OPT_LMSENSORS entstehen.


1.1.1 Basiskonfiguration des OPT_LMSENSORS

Die Konfiguration erfolgt, wie bei allen fli4l Opts, durch Anpassung der Datei 'fli4l-3.x.z/< mathend000#config> mathend000#/lmsensors.txt' an die eigenen Anforderungen.

Die Einbindung eines Sensors erfolgt mit bis zu 3 Kernel Komponenten, die beim Starten geladen werden:

Welche Module für Ihr Mainboard, bzw. Ihren Adapter benötigt werden, entnehmen Sie bitte den Dokumentations-Seiten des lm_sensors Projektes. Dort gibt es auch eine Übersicht über die unterstützten Sensoren, sowie eine Anleitung wie unbekannte Sensoren identifiziert werden können. Allerdings ist das dort genannte Script 'sensors-detect' zur automatischen Erkennung der sensoren unter fli4l nicht lauffähig.
Darüber hinaus empfiehlt es sich auf den Internet Seiten des jeweiligen Hardware Herstellers nach entsprechenden Angaben zu suchen. Im Internet finden sich auch viele Hinweise bei einer Suche z.B. mit den Sichworten 'lm_sensors', 'Mainbord-Bezeichnung', etc.

Das Basissytem von OPT_LMSENSORS lässt sich über folgende Variablen konfigurieren:

OPT_LMSENSORS

Standard-Wert: OPT_LMSENSORS='no'

Die Einstellung 'no' deaktiviert das OPT_LMSENSORS Paket vollständig. Es werden keine Änderungen an der fli4l Bootdiskette bzw. dem Archiv opt_tar.bz2 vorgenommen.
Die Einstellung 'yes' aktiviert das OPT_LMSENSORS Paket.

OPT_LMSENSORS überschreibt grundsätzlich keine anderen Teile der fli4l Installation.

LMSENSORS_ALGO

Standard-Wert: LMSENSORS_ALGO=''

Einige Adapter (Bsp. Parallelport-Adapter, ISA-Adapter) benötigen zum Betrieb ein Algorithmus-Modul.
Mögliche Werte entnehmen Sie der Tabelle 1.1.

Tabelle 1.1: Mögliche Werte für LMSENSORS_ALGO
Wert Bedeutung
'leer' Default for most onboard adapter
algo-bit A bit-banging algorithm (ex. parallel-port adapter)
algo-pca ?
algo-pcf A PCF 8584 style algorithm

Weiterführende Hinweise entnehmen Sie bitte der lm_sensors-Dokumentation.

LMSENSORS_BUS_N LMSENSORS_BUS_x

Standard-Wert: LMSENSORS_BUS_N='1'

Mit LMSENSORS_BUS_N wird die Anzahl, der im Fli4l vorhandenen Systembusse angegeben, über die die Sensoren erreichbar sind.


Wichtig: Es muß mindestens ein Bus angegeben werden.

Standard-Wert: LMSENSORS_BUS_x=''

Treiber für das jeweilige Bus-Interface bzw. den jeweiligen I2C-Adapter.
Mögliche Werte entnehmen Sie der Tabelle 1.2.

Tabelle 1.2: Mögliche Werte für LMSENSORS_BUS
Wert Bedeutung
I2C-Adapter:
elektor Elektor ISA card (uses i2c-algo-pcf)
parport unified driver for several i2c-over-parallel-port adapters
parport-light light version of i2c-parport
pca-isa ISA boards using the Philips PCA 9564 Parallel bus to I2C bus controller
stub simple fake I2C/SMBus driver
Bus Interface:
ali15x3 ALI 1533 and 1543C (south bridge)
ali1535 ALI 1535 (south bridge)
ali1563 ALI 1563 (south bridge)
amd756 AMD 756, 766, 768 and 8111 (SMBus 1.0),
nVidia nForce
amd756-s4882 -
amd8111 AMD 8111 (SMBus 2.0)
i801 Intel 82801AA, 82801AB (ICH+ICH0), 82801BA (ICH2), 82801CA/CAM (ICH3),
82801DB (ICH4), 82801EB/ER (ICH5), 6300ESB, 82801FB/FR/FW/FRW (ICH6),
ICH7
i810 Intel 82810, 82810-DC100, 82810E, 82815 (GMCH), 82845G (GMCH)
nforce2 nForce2, nForce3, nForce4
piix4 Intel 82371AB (PIIX4, PIIX4E), 82443MX (440MX),
ServerWorks OSB4, CSB5, CSB6, HT-1000 southbridges,
ATI IXP southbridges IXP200, IXP300, IXP400,
SMSC SLC90E66 (Victory66) southbridge
prosavage S3/VIA KM266/VT8375 (ProSavage8), KM133/VT8365 (Savage4)
savage4 Savage4, Savage2000
sis96x SiS host bridges: 645, 645DX(646), 648, 650, 651, 655, 735, 745, 746
with south bridges: 961, 962, 963(L)
sis630 SiS 630, 730 chipset
sis5595 SiS 5595 Southbridge
via VIA VT82C586B
viapro VIA VT82C596A/B, VT82C686A/B, VT8231, VT8233, VT8233A,
VT8235, VT8237R, VT8237A, VT8251
voodoo3 3dfx Voodoo3, Voodoo Banshee based cards

Weiterführende Hinweise entnehmen Sie bitte der lm_sensors-Dokumentation, bzw. der Dokumentation des Linux 2.6 Kernel Source Trees ([..]/Documentation/i2c/busses).

LMSENSORS_BUS_x_ARGS

Standard-Wert: LMSENSORS_BUS_x_ARGS=''

Für einige Bus-Interfaces bzw. I2C-Adapter (insbesondere externe Adapter) müssen beim Laden des Moduls Parameter angegeben werden.

LMSENSORS_N LMSENSORS_x

Standard-Wert: LMSENSORS_N='1'

Mit LMSENSORS_N wird die Anzahl, der im Fli4l vorhandenen Sensor-Chips angegeben, die ausgewertet werden sollen.

Für jeden Sensor-Chip muß der Typ des jeweligen Moduls angegeben werden, das geladen werden soll.
Mögliche Werte entnehmen Sie der Tabelle 1.3.

Tabelle 1.3: Mögliche Werte für LMSENSORS_x
Wert Bedeutung
Driver Chips #temp #vin #fanin pwm/dac I2C ISA
adm1021 adm1021 2 - - - yes no
adm1021a 2 - - - yes no
adm1023 2 - - - yes no
gl523sm 2 - - - yes no
lm84 2 - - - yes no
max1617 2 - - - yes no
max1617a 2 - - - yes no
tc1068 2 - - - yes no
tcm1617 2 - - - yes no
thmc10 2 - - - yes no
mc1066 2 - - - yes no
xeon 1 - - - yes no
ne1617 2 - - - yes no
ne1617a 2 - - - yes no
adm1025 adm1025 2 6 - - yes no
ne1619 2 6 - - yes no
adm1026 adm1026 3 17 8 2 pwm+dac yes no
adm1031 adm1030 2 - 1 1 pwm yes no
adm1031 3 - 2 2 pwm yes no
adm9240 adm9240 1 6 2 1 dac yes no
ds1780 1 6 2 1 dac yes no
lm81 1 6 2 1 dac yes no
asb100 asb100 4 7 3 1 yes no
ds1621 ds1621 1 - - - yes no
ds1625 1 - - - yes no
f71805f f71805f 9 3 3 - no yes
fscher fscher 3 3 3 - yes no
fscpos fscpos 3 3 3 - yes no
gl518sm gl518sm (r00) 1 1-4 2 - yes no
gl518sm (r80) 1 4 2 - yes no
gl520sm gl520sm 1-2 4-5 2 - yes no
it87 it8712 3 8 3 3 pwm yes yes
it8705 3 8 3 3 pwm yes yes
sis950 3 8 3 3 pwm yes yes
k8temp Athlon64/FX
Opteron CPUs
lm63 lm63 2 - 1 1 pwm yes no
lm75 lm75 1 - - - yes no
ds75 1 - - - yes no
ds1775 1 - - - yes no
max6625 1 - - - yes no
max6626 1 - - - yes no
tcn75 1 - - - yes no
lm77 lm77
lm78 lm78 1 7 3 - yes yes
lm78-j 1 7 3 - yes yes
lm79 1 7 3 - yes yes
lm80 lm80 1 7 2 - yes no
lm83 lm83 4 - - - yes no
lm85 lm85 3 5 4 3 pwm yes no
adm1027 3 5 4 3 pwm yes no
adt7463 3 5 4 3 pwm yes no
emc6d100 3 8 4 3 pwm yes no
emc6d101 3 8 4 3 pwm yes no
emc6d102 3 8 4 3 pwm yes no
lm87 lm87 2-3 6-8 0-2 1 pwm yes no
lm90 lm90 2 - - - yes no
lm99 2 - - - yes no
lm86 2 - - - yes no
adm1032 2 - - - yes no
max6657 2 - - - yes no
lm89 2 - - - yes no
max6658 2 - - - yes no
max6659 2 - - - yes no
adt7461 2 - - - yes no
lm92 lm92 1 - - - yes no
max6633 1 - - - yes no
max6634 1 - - - yes no
max6635 1 - - - yes no
lm76 1 - - - yes no
max1619 max1619 2 - - - yes no
pc87360 pc87360 - - 2 2 pwm no yes (LPC)
pc87363 - - 2 2 pwm no yes (LPC)
pc87364 - - 3 3 pwm no yes (LPC)
pc87365 2 11 3 3 pwm no yes (LPC)
pc87366 3-4 11 3 3 pwm no yes (LPC)
pc87427 pc87427
sis5595 sis5595 0-1 4-5 2 - no yes
smsc47b397 LPC47B397-NC
SCH5307-NS
smsc47m1 smsc47b27x - - 2 2 no yes (LPC)
smsc47m10x - - 2 2 no yes (LPC)
smsc47m13x - - 2 2 no yes (LPC)
smsc47m14x - - 2 2 no yes (LPC)
smsc47m15x - - 2 2 no yes (LPC)
smsc47m192 - - 2 2 no yes (LPC)
smsc47m997 - - 2 2 no yes (LPC)
smsc47m192 LPC47M192
LPC47M997
via686a via686a 3 5 2 - no yes
vt8231 3 5 2 - no yes
vt8231 vt8231 2-7 2-7 2 2 no yes
w83l785ts
w83627hf w83627hf 3 9 3 2 pwm no yes (LPC)
w83627thf 3 7 3 3 pwm no yes (LPC)
w83637hf 3 7 2 3 pwm no yes (LPC)
w83697hf 2 8 2 2 pwm no yes (LPC)
w83781d as99127f 3 7 3 - yes no
w83781d 3 7 3 - yes yes
w83782d 3 9 3 2-4 pwm yes yes
w83783s 1-2 5-6 3 2 pwm yes no
w83791d 3 10 5 5 pwm yes no
w83627hf 3 9 3 2 pwm yes yes (LPC)
w83697hf 2 6 2 2 pwm no yes
w83791d w83791d
w83792d w83792d 3 9 7 3 pwm yes no
Supportet non-sensor chips
ds1337 real-time clock
ds1374 real-time clock
eeprom Memory SPD (serial presence detect) eeproms - reads locations only
Xeon scratch eeproms - reads locations only
max6875 ?
pca9539 2-channel I2C multiplexer
pcf8574 Simple eight-bit parallel I/O
pcf8591 Quad A/D + one D/A
rtc8564 ?
x1205 ?

Weiterführende Hinweise entnehmen Sie bitte der lm_sensors-Dokumentation, bzw. der Dokumentation des Linux 2.6 Kernel Source Trees ([..]/Documentation/hwmon oder ([..]/Documentation/i2c/chips)

LMSENSORS_PRIVATCONFIGFILE

Standard-Wert: LMSENSORS_PRIVATCONFIGFILE='no'

In der Datei /etc/sensors.conf werden Sensor spezifische Konfigurationen hinterlegt und bei der Ausführung von 'sensors' genutzt. Dazu gehören:

Die detailierte Beschreibung der Einträge und Einstellungen findet sich am Anfang der Datei sensors.conf.

Im Standard wird die default Datei sensors.conf des lm_sensors Projektes genutzt. Je nach Anwendung macht es allerdings Sinn eine angepasste Version der Datei zu nutzen, um z.B. die Bezeichnung der Werte oder die Werte selbst anzupassen.
Wenn Sie eine eigene sensors.conf nutzen möchten, setzen Sie LMSENSORS_PRIVATCONFIGFILE='yes' und legen Sie die angepasste Datei nach <fli4l-dir>/<config-dir>/lmsensors/sensors.conf. Die Datei wird dann automatsich auf den fli4l kopiert. Die angepasste sensors.conf muß nur die Abschnitte der tatsächlich vorhandenen Sensoren enthalten.

LMSENSORS_I2CTOOLS

Standard-Wert: LMSENSORS_I2CTOOLS='no'

Installiert zusätzliche Tools, die im lm_sensors Projekt enthalten sind nach /usr/local/sbin. Die Tools sind in Tabelle 1.4 aufgelistet.

Tabelle 1.4: Installierbare I2C-Tools:
Programm Beschreibung
ic2detect i2cdetect is a userspace program to scan an I2C bus for devices. It outputs a table with the list of detected devices on the specified bus.
ic2dump i2cdump is a small helper program to examine registers visible through the I2C bus.
ic2set i2cset is a small helper program to set registers visible through the I2C bus.
isadump isadump is a small helper program to examine registers visible through the ISA bus. It is intended to probe any chip that lives on the ISA bus.
isaset isaset is a small helper program to set registers visible through the ISA bus.

1.1.2 Konfiguration HTTPD Ausgabe

LMSENSORS_WEBGUI

Standard-Wert: LMSENSORS_WEBGUI='no'

LMSENSORS_WEBGUI='yes' schaltet die Ausgabe der Hardware- Sensoren im Mini-Web-Server des fli4l ein. Es wird eine Webseite mit der Ausgabe von SENSORS angezeigt, die alle 60 sec. aktualisiert wird.


Wichtig: Benötigt das Paket OPT_HTTPD

1.1.3 Konfiguration RRDTool Ausgabe

Eine RRD Datenbank hat eine konstante Größe und mittelt Werte die in der Vergangenheit liegen. Je länger die Daten zurückliegen desto länger ist der Zeitraum über den gemittelt wird, somit werden die Spitzenwerte immer mehr eliminiert.
LMSENSORS nutzt das OPT_RRDTOOL für fli4l, eine RRD Implementierung von Tobias Oetiker und erzeugt Diagramme die durch das OPT_RRDTOOL vorgegeben bzw. standardisiert sind. Es ist möglich je ein Diagramm für Temperaturen, Spannungen und Drehzahlen darzustellen. Die verschiedenen Sensoren einer Gruppe werden dabei in einem Diagramm durch unterschiedliche Linien dargestellt.

Die für das RRDTOLL benötigten Dateien werden zum boot-Zeitpunkt dynamisch erzeugt und in die Standard-Abläufe von RRDTOLL integriert.


Wichtig: Benötigt das Paket OPT_RRDTOOL von Stefan Krister.

LMSENSORS_RRD

Standard-Wert: LMSENSORS_RRD='no'

LMSENSORS_RRD='yes' ergänzt das aktivierte OPT_RRDTOOL um die Diagramme der LMSENSORS Daten.

LMSENSORS_RRD_CREATEDB

Standard-Wert: LMSENSORS_RRD_CREATEDB='no'

LMSENSORS_RRD_CREATEDB='yes' erstellt die zum OPT_LMSENSORS gehörenden RRD Datenbanken neu. Nach einem einmaligen Aufruf mit dem Wert 'yes' sollte der Wert wieder auf 'no' gestellt werden, da sonst die Datenbanken bei jedem fli4l start neu erstellt werden und damit die alten Werte verloren gehen.


Wichtig: Bei jeder Änderung eines RRD Parameters müssen die Datenbanken einmalig neu generiert, oder händisch gelöscht werden. Dabei gehen alle bisherigen Daten verloren.

LMSENSORS_RRD_VALUE_INTERVAL

Standard-Wert: LMSENSORS_RRD_VALUE_INTERVAL='1'

Anzahl der Minuten, nach denen die Sensor-Daten aktualisiert werden.

LMSENSORS_RRD_GRAPH_INTERVAL

Standard-Wert: LMSENSORS_RRD_GRAPH_INTERVAL='5'

Anzahl der Minuten, nach denen die Sensor-Grafiken neu erstellt werden.

LMSENSORS_RRD_GRAPH_PATH

Standard-Wert: LMSENSORS_RRD_GRAPH_PATH='/boot/data/rrdtool/sensors'

Verzeichnis, in dem die erzeugten Grafik-Dateien abgelegt werden. Das Verzeichnis sollte sich an der Einstellung im OPT_RRDTOOL orientieren.

LMSENSORS_RRD_TEMP_N

Gibt die Anzahl der Werte in der Temperatur-Grafik an. LMSENSORS_RRD_TEMP_N='0' deaktiviert die Grafik.


Wichtig: Es können maximal 8 Temperaturwerte angezeigt werden.

LMSENSORS_RRD_TEMP_x_LABEL

Gibt den SENSOR-Namen des jeweilgen Temperatur-Wertes an, der gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe. Sie können den Wert folgendermaßen ermitteln:


Wichtig: Der Name muß exakt der sensors-Ausgabe entsprechen (Groß und Kleinschreibung wird dabei unterschieden).

Abbildung 1.1: Beispiel für LMSENSORS_RRD_TEMP_x_LABEL='CPU Temp'
Image label_temp

Bei mehreren Sensoren in dem System muß sichgerstellt sein, dass die Werte sensorübergreifend eindeutig benannt sind. Dies wird durch entsprechende label-Einträge in der Datei sensors.conf erreicht (siehe LMSENSORS_PRIVATCONFIGFILE).

LMSENSORS_RRD_VOLT_N

Gibt die Anzahl der Werte in der Spannungs-Grafik an. LMSENSORS_RRD_VOLT_N='0' deaktiviert die Grafik.


Wichtig: Es können maximal 8 Spannungswerte angezeigt werden.

LMSENSORS_RRD_VOLT_x_LABEL

Gibt den SENSOR-Namen des jeweilgen Spannungs-Wertes an, der gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe.

Weitere Hinweise können Sie dem Anschnitt LMSENSORS_RRD_TEMP_x_LABEL entnehmen.

LMSENSORS_RRD_FAN_N

Gibt die Anzahl der Werte in der Drehzahl-Grafik an. LMSENSORS_RRD_FAN_N='0' deaktiviert die Grafik.


Wichtig: Es können maximal 8 Drehzahlwerte angezeigt werden.

LMSENSORS_RRD_FAN_x_LABEL

Gibt den SENSOR-Namen des jeweilgen Drehzahl-Wertes an, der gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe.

Weitere Hinweise können Sie dem Anschnitt LMSENSORS_RRD_TEMP_x_LABEL entnehmen.

1.1.4 Konfiguration LCD Ausgabe

Das OPT_LCD ermöglicht die Darstellung benutzerdefinierter Daten auf dem LCD Display. Es handelt sich dabei um die LCD-Datentypen 40 - 43. Die anzuzeigenden lmsensors-Werte werden in die entsprechenden Textdateien geschrieben. Die Aktualisierung der Daten erfolgt alle 1 Minute per cron - Job.


Wichtig: Benötigt die Pakete OPT_LCD und OPT_EASYCRON.

LMSENSORS_LCD

Standard-Wert: LMSENSORS_LCD='no'

LMSENSORS_LCD='yes' schaltet die Ausgabe der Hardwaresensor- Werte in die benutzerspezifischen Daten des OPT_LCD ein.


Wichtig: Benötigt die Pakete OPT_LCD und OPT_EASYCRON

LMSENSORS_LCD_1_LABEL

Standard-Wert: LMSENSORS_LCD_1_LABEL=''

Legt den Wert für den LCD-Datentyp 40 fest und speichert diesen nach /etc/lcd_text1.txt. Soll dieser Datentyp durch lmsensors nicht genutzt werden, so muß der Wert leer bleiben LMSENSORS_LCD_1_LABEL=''. Ansonsten muß der SENSOR-Namen des jeweilgen Wertes angegeben werden, der für die LCD-Anzeige gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe. Sie können den Wert folgendermaßen ermitteln:


Wichtig: Der Name muß exakt der sensors-Ausgabe entsprechen (Groß und Kleinschreibung wird dabei unterschieden).

Abbildung 1.2: Beispiel für LMSENSORS_LCD_1_LABEL='CPU Temp'
Image label_temp

Bei mehreren Sensoren in dem System muß sichgerstellt sein, dass die Werte sensorübergreifend eindeutig benamt sind. Dies wird durch entsprechende label-Einträge in der Datei sensors.conf erreicht (siehe LMSENSORS_PRIVATCONFIGFILE).

LMSENSORS_LCD_2_LABEL

Standard-Wert: LMSENSORS_LCD_2_LABEL=''

Legt den Wert für den LCD-Datentyp 41 fest und speichert diesen nach /etc/lcd_text2.txt. Soll dieser Datentyp durch lmsensors nicht genutzt werden, so muß der Wert leer bleiben LMSENSORS_LCD_2_LABEL=''. Ansonsten muß der SENSOR-Namen des jeweilgen Wertes angegeben werden, der für die LCD-Anzeige gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe.

Weitere Hinweise können Sie dem Anschnitt LMSENSORS_LCD_1_LABEL entnehmen.

LMSENSORS_LCD_3_LABEL

Standard-Wert: LMSENSORS_LCD_3_LABEL=''

Legt den Wert für den LCD-Datentyp 42 fest und speichert diesen nach /etc/lcd_text3.txt. Soll dieser Datentyp durch lmsensors nicht genutzt werden, so muß der Wert leer bleiben LMSENSORS_LCD_3_LABEL=''. Ansonsten muß der SENSOR-Namen des jeweilgen Wertes angegeben werden, der für die LCD-Anzeige gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe.

Weitere Hinweise können Sie dem Anschnitt LMSENSORS_LCD_1_LABEL entnehmen.

LMSENSORS_LCD_4_LABEL

Standard-Wert: LMSENSORS_LCD_4_LABEL=''

Legt den Wert für den LCD-Datentyp 43 fest und speichert diesen nach /etc/lcd_text4.txt. Soll dieser Datentyp durch lmsensors nicht genutzt werden, so muß der Wert leer bleiben LMSENSORS_LCD_4_LABEL=''. Ansonsten muß der SENSOR-Namen des jeweilgen Wertes angegeben werden, der für die LCD-Anzeige gelesen werden soll. Der Name entspricht der Anzeige der sensors Ausgabe.

Weitere Hinweise können Sie dem Anschnitt LMSENSORS_LCD_1_LABEL entnehmen.

Das Fli4l-Team
24. März 2008