VERWENDUNG

Ausgabe der Versionsnummer und eines kurzen Hilfetextes:

lcd4linux -h

Anzeige aller verfügbaren Treiber:

lcd4linux -l

Starten mit 'lcd4linux'.

Optionen:

lcd4linux [-c key=val] [-F] [-f config-file] [-o output] [-q] [-v]
  • Einträge der Konfigurationsdatei überschreiben mit '-c key=val' (Schlüssel und Wert angeben)
  • Nicht als Dienst starten mit '-F'
  • Konfiguration aus 'config-file' holen, statt aus /etc/lcd4linux.conf: '-f config-file'
  • Bild in Datei schreiben (nur Raster-Treiber): '-o output'
  • Begrüßungstext unterdrücken mit '-q'
  • Ausgabe von Debug-Informationen mit '-v'
  • Ausgabe von mehr Debug-Informationen mit '-vv'
  • zusätzliche Debug-Informationen (Socket Traffic) mit '-vvv'

DIAGNOSE

Wenn lcd4linux im Vordergrund läuft, schreibt es abhängig vom Level nach stdout oder stderr. Der Text-Treiber hat ein eigenes Diagnose-Fenster.
Wenn es im Hintergrund gestartet wird (Standardverhalten), benutzt lcd4linux den Syslog-Dienst zum Loggen. Facility ist USER, Levels sind ERR, INFO und DEBUG.


UNTERSTÜTZTE DISPLAYS

Informationen zu unterstützten Displays und deren Konfiguration sind auf der Displays-Seite zu finden.


KONFIGURATION

Die Konfigurationsdatei (standardmäßig /etc/lcd4linux.conf) hat ein sehr einfaches Format: Jede Zeile besteht aus einem Schlüssel und einem Wert, getrennt durch "Whitespaces" (das sind Leerzeichen oder Tabulatoren). Werte können Whitespaces enthalten, und sie können in einfachen oder doppelten Anführungszeichen eingeschlossen sein. Ein Schlüssel darf keine Whitespaces enthalten. Schlüssel sind NICHT case-sensitive (Groß- und Kleinschreibung spielt keine Rolle). Die Reihenfolge spielt keine Rolle. Leere Zeilen und Text in einer Zeile nach dem Zeichen '#' werden ignoriert. Soll das Zeichen '#' in einem Wert verwendet werden (z.B. für X11-Farben), muss es durch einen vorangestellten Backslash maskiert werden.

Aus Sicherheitsgründen (die Konfiguration kann Benutzernamen/Passwörter für Mail-Zugänge enthalten) muss die Konfigurationsdatei folgende Voraussetzungen erfüllen:

  • die Datei ist eine herkömmliche Datei (oder /dev/null)
  • der Besitzer (owner) ist der Besitzer des Programms
  • die Datei ist der Gruppe (group) nicht zugänglich
  • die Datei ist keinem anderen (other) zugänglich

Wenn lcd4linux als root gestartet wird, müssen die Rechte auf /etc/lcd4linux.conf folgendermaßen gesetzt sein:

chmod 600
chown root.root

Die Konfigurationsdatei enthält Informationen zu den verschiedenen Modulen von lcd4linux:

Allgemeine Optionen:

Quiet: Unterdrückt den Begrüßungstext (entspricht der Kommandozeilen-Option '-q')

Standard: 0

Timing Optionen:

bis Version 0.9.10 wurde das Timing durch folgende Einträge kontrolliert:

tick: Zeit in Millisekunden zwischen Balken-Updates
tack: Zeit in Millisekunden zwischen Text-Updates
(Text kann weniger oft als Balken aktualisiert werden, damit eine gleichmäßige Balken-Anzeige und lesbarer Text erhalten wird)
tau: Zeit-Konstante (in Millisekunden) für Dämpfungs-Funktionen (noch ungenutzt)

ab Version 0.9.11 sind diese Einstellungen obsolet und wurden durch die folgenden Einträge ersetzt:

Tick.Text: Zeit in Millisekunden zwischen Text-Updates (Standard: 500 msec)
(Text kann weniger oft als Balken aktualisiert werden, damit eine gleichmäßige Balken-Anzeige und lesbarer Text erhalten wird).
Tick.bar: Zeit in Millisekunden zwischen Balken-Updates (Standard: 100 msec)
Tick.icon: Zeit in Millisekunden zwischen Icon-Updates (Standard: 100 msec)
(speziell animierte Icons können öfter als Text oder Balken aktualisiert werden, um eine gleichmäßige Anzeige zu erhalten).
Hinweis: ein Icon-Update erfordert kein Einlesen von Daten und konsumiert deshalb nicht viel CPU-Zeit).
Tick.gpo: Zeit in Millisekunden zwischen GPO-Updates (Standard: 100 msec)

Datenspezifische Optionen:

overload: Systemlast -Schwellwert (Load Average) und Balken-Skalierung.
Das Zeichen %L (unten zu sehen) zeigt ein '!' statt eines Leerzeichens, wenn die aktuelle Systemlast diesen Wert überschreitet.
Last-Balken werden durch diesen Wert skaliert (load=overload ergibt 100%)
battwarning: [noch nicht dokumentiert] (Standard: 10)
!SetiDir: Verzeichnis, in dem Seti@home seine Datenfiles speichert
Wifi.interface: Interface für Datensammlung (Standard: "wlan0")

Temperatur-Sensoren:

sensor1: Pfad zum ersten Temperatur-File (z.B. /proc/sys/dev/sensors/w83781d-isa-0290/temp1)
Es ist wichtig den isa-Sensor zu benutzen, weil die i2c-Sensoren sehr langsam sind!
sensor1_min: Temperatur bei der der entsprechende Balken beginnt
sensor1_max: Temperatur bei der der Balken endet
sensor1_factor: , sensor1_offset: Formel zur Berechnung der tatsächlichen Temperatur: display_value=raw_value*factor+offset
Die Werte können in der Datei sensors.conf nachgeschlagen werden!
sensor[2..9]_min, _max, _factor, _offset: Einträge für den 2. bis 9. Temperatur-Sensor

Plugins:

x1: Auszuführendes Kommando, PATH=/usr/local/bin:/usr/bin:/bin, $X1...$X8 ist das Ergebnis von Kommando 1..8 in der Umgebung
Tick_x1: Verzögerung in Ticks (überschreibt delay_x)
Delay_x1: Verzögerung in Sekunden (Standard: 1)
Max_x1: Maximalwert für Balken (Standard: 100)
Min_x1: Minimalwert für Balken (Standard: 0)
x2..9: Tick_x2..9, Delays_x2..9, Max_x2..9, Min_x2..9: Einträge für Plugins 2..9

Mail/News:

Mailbox1: Die Zeichenkette kann eine einfache mbox-Datei oder ein pop3/imap4/nntp Server-String in folgendem Format sein:
pop3:[user[:pass]@]machine[:port]
imap4:[user[:pass]@]machine[:port]/dir
nntp:[user[:pass]@]machine[:port]/dir
Port hat standardmäßig den Wert 110 bzw. 143.
Wird kein Verzeichnis (/dir) angegeben, wird INBOX verwendet.
Wird ein Verzeichnis für nntp angegeben, muss es einen gültigen Namen mit '.' als Element-Trennzeichen besitzen.
Wird kein Verzeichnis für nntp angegeben, werden alle ungelesenen Nachrichten abonnierter Gruppen aus Newsrc herangezogen.
Delay_e1: Verzögerung in Sekunden für die Abfrage von Postfach 1 (Standard: 5)
Mailbox2..9, Delay_e2..9: Einträge für die Postfächer 2..9
Newsrc: Pfad/Name der .newsrc-Datei, welche die abonnierten Newsgruppen enthält.
Hinweis: die Autorisierung bei Newsservern ist ungetestet.
Hinweis: Benutzername und Passwort dürfen mit der obigen Syntax kein '/' enthalten.

Treiberspezifische Optionen:

Display: der Name des Display-Treibers

Jeder Treiber hat seine eigenen Konfigurations-Optionen (z.B. 'Port', 'Speed', ...)
Auf der Displays-Seite können Informationen zu unterstützten Displays und deren Konfiguration nachgeschlagen werden.

Display Optionen:

row1: in Zeile 1 anzuzeigender Text
row[2..max]: in weiteren Zeilen anzuzeigender Text

Der anzuzeigende Text kann bestimmte Anweisungen enthalten, welche durch entsprechende Werte ersetzt werden bzw. Balken oder Icons erzeugen:

\nnn schreibt das ASCII-Zeichen nnn (oktal)
%token wird ersetzt durch den Wert von token
%% schreibt das Zeichen '%'
%$ schreibt das Zeichen '$'
%& schreibt das Zeichen '&'

$<direction><length><token>[+<token>] erzeugt einen Balken mit der angegebenen Richtung und Länge (in Zeichen) und dem Wert von token.
Wenn der Treiber Doppelbalken unterstützt, kann man den zweiten Wert mit '+token' angeben.

direction kann 'l' (links), 'r' (rechts), 'u' (auf) oder 'd' (ab) sein.

Wird die Richtung in Großbuchstaben angegeben, wird ein logarithmischer Balken erzeugt.
Hinweis: der von einem Balken benutzte Platz wächst unabhängig von der Richtung immer von links nach rechts oder von oben nach unten!

$t<height><token>,<width> erzeugt einen Zeitabfolge-Balken.
Die Daten werden wie '$u' angezeigt, aber nach jeder Sekunde um 1 Pixel nach links verschoben.
Zurzeit unterstützen nur auf dem Pixel-Treiber basierende Displays diesen Balken-Typ.

&<num> zeichnet das Icon num auf diese Position.

Informationen zur Definition von Icons folgen weiter unten...

Icons:

Seit Version 0.9.11 kann lcd4linux Icons anzeigen und diese sogar animieren. Wenn Du einen 'Heartbeat' möchtest, ist es das, was Du gesucht hast!
Die Icon-Definition besteht aus zwei Teilen: Die Anzahl der Icons, welche verwendet werden sollen, und einem Bitmap für jedes Icon:

Icons: Anzahl der Icons
Es ist zu beachten, dass jedes hier reservierte Icon nicht länger für Balken zur Verfügung steht!
Nachdem die meisten Displays nur 8 benutzerdefinierte Zeichen besitzen und ein Doppelbalken mindestens 5 davon benötigt, sollten nicht mehr als 3 Icons gleichzeitig mit Balken verwendet werden...
Icon<num>.Bitmap<row>: Bitmap-Zeile row für Icon num

Das sieht sehr kompliziert aus. Hier kommt die Erklärung mit einigen Beispielen:

Icon1.Bitmap1 .....
Icon1.Bitmap2 .*.*.
Icon1.Bitmap3 *****
Icon1.Bitmap4 *****
Icon1.Bitmap5 .***.
Icon1.Bitmap6 .***.
Icon1.Bitmap7 ..*..
Icon1.Bitmap8 .....

Wir definieren das Bitmap eines einfachen, nicht animierten Icons (Herz). Gewöhnlich hat das Icon dieselbe Größe wie ein Zeichen, hier 5 Spalten und 8 Zeilen. Das Bitmap wird mit zwei Zeichen definiert, einem '.' (Punk t) für 'Pixel nicht gesetzt' und einem '*' (Stern) für 'Pixel gesetzt'.

Nun zu animierten Icons:

Icon2.Bitmap1 .....|.....
Icon2.Bitmap2 .*.*.|.*.*.
Icon2.Bitmap3 *****|*.*.*
Icon2.Bitmap4 *****|*...*
Icon2.Bitmap5 .***.|.*.*.
Icon2.Bitmap6 .***.|.*.*.
Icon2.Bitmap7 ..*..|..*..
Icon2.Bitmap8 .....|.....

So einfach ist das! Lediglich das zweite Bitmap mit dem Zeichen '|' (Pipe) anhängen, und das war's! lcd4linux durchläuft automatisch alle Bitmaps.

Die Animation kann aus einer beliebigen Anzahl von Bitmaps bestehen:

Icon3.Bitmap1 .....|.....|.....|.....|..*..|.....|.....|.....
Icon3.Bitmap2 .....|.....|.....|..*..|.*.*.|..*..|.....|.....
Icon3.Bitmap3 .....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....
Icon3.Bitmap4 .....|..*..|.*.*.|*...*|.....|*...*|.*.*.|..*..
Icon3.Bitmap5 .....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....
Icon3.Bitmap6 .....|.....|.....|..*..|.*.*.|..*..|.....|.....
Icon3.Bitmap7 .....|.....|.....|.....|..*..|.....|.....|.....
Icon3.Bitmap8 .....|.....|.....|.....|.....|.....|.....|.....

Virtuelle Zeilen:

Rows: Anzahl der zu benutzenden Zeilen (kann größer als die Zeilenanzahl des Displays sein)
Scroll: Anzahl der Zeilen, durch die gescrollt werden sollen
Turn: Anzahl der Millisekunden zwischen Scrolling-Events

General Purpose Outputs (Allgemeine Ausgänge):

GPOs: Anzahl der zu benutzenden Ausgänge
GPO1: für GPO 1 zu verwendendes Token
Das Token sollte einen numerischen Wert zurückgeben.
Wenn dieser Wert größer als Null ist, wird die Ausgabe eingeschaltet, sonst ausgeschaltet.
GPO[2..max]: für andere GPOs zu verwendendes Token

Token:

o Name des Betriebssystems ('Linux')
v Betriebssystem-Version ('2.0.38')
p Prozessor ('i686')
r Gesamtsumme des installierten Speichers (MB)
mt Gesamtsumme von /proc/meminfo (kB)
mu used memory = benutzter Speicher (kB)
mf free memory = freier Speicher (kB)
ms shared memory = gemeinsam benutzer Speicher (kB)
mb Buffer (kB)
mc Seiten-Cache (kB)
ma Applikations-Speicher (kB) = used - buffer - cache
l1 Systemlast für die vergangene Minute
l2 Systemlast für die vergangenen 5 Minuten
l3 Systemlast für die vergangenen 15 Minuten
L '!' wenn Last-Durchschnitt > Overload (aus der Konfigurationsdatei)
cu Prozentsatz der CPU im User Mode
cn Prozentsatz der CPU mit Niced Tasks
cs Prozentsatz der CPU im System Mode
cb Prozentsatz der CPU ausgelastet (=100-idle)
ci Prozentsatz der CPU nicht ausgelastet (idle)
dr gelesene Festplatten-Blöcke
dw geschriebene Festplatten-Blöcke
dt Festplatten-Blöche gesamt (read+write)
dm Festplatten-Blöcke maximal (read, write)
nr Netzwerk-Bytes empfangen
nw Netzwerk-Bytes gesendet
nt Netzwerk-Bytes gesamt (=empfangen+gesendet)
nm Netzwerk-Bytes maximal (empfangen, gesendet)
ii ISDN-Bytes empfangen
io ISDN-Bytes gesendet
it ISDN-Bytes gesamt (=empfangen+gesendet)
im ISDN-Bytes maximal (empfangen, gesendet)
ic ISDN verbunden (0=offline, 1=online)
ti PPP-Bytes empfangen
to PPP-Bytes gesendet
tt PPP-Bytes gesamt (=empfangen+gesendet)
tm PPP-Bytes maximal (empfangen, gesendet)
s1 Temperatur von Sensor 1
s2 Temperatur von Sensor 2 (geht bis s9)
bp Akku-Ladezustand in Prozent (APM)
bs Akku-Status ('=' = online, '+' = laden, '-' entladen)
bd Akku-Haltezeit in s{Sekunden}, m{Minuten}, h{Stunden} oder d{Tagen}
hc Seti@home % fertig gestellt
ht Seti@home auf Workunit verwendete Zeit
wl WIFI Link
ws WIFI Signal Level
wn WIFI Rauschen (noise)
e* Nachrichten in Postfach 1-9, gesamte Nachrichten
u* Nachrichten in Postfach 1-9, ungelesene Nachrichten
x* Ausgabe von Kommando 1-9

Für Beispiele zu allen Optionen und deren Verwendung bitte die Datei lcd4linux.conf.sample heranziehen.