LC-Display
Ausbaufähige Anleitung
Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: Es sollte noch eine Anleitung für LcdProc hinzugefügt werden, sowie für weitere Displays und weitere Möglichkeiten der Stromversorgung.
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Grundlagen im Löten , optional wenn kein Selbstbau erfolgt
⚓︎ wie man einen AVR Microcontroller flasht, optional
Wenn es darum geht einen Linuxrechner ohne Monitor, Tastatur und Maus zu betreiben, dient der SSHD oft zur Fernwartung. Aber ständig will man ja auch nicht zu dem Server, der vielleicht nebenan im Zimmer steht, verbunden sein. Also stellt sich die Frage: Wie kann man ohne den SSHD ständig Systeminformationen sehen. Eine Lösung: ein Liquid Crystal Display kurz LCD. Ein LCD kann natürlich auch als reine "Schönheitsoperation" am Rechner hängen, halt "nur so".
Ein LCD Adapter bauen¶
Für den parallel Port¶
Der Bau eines LCDs für den parallel Port ist mehr oder weniger einfach. Man sollte auf jeden Fall Vorkenntnisse in der Elektrotechnik haben. Im Detail sollte man können:
Löten [4]
Schaltpläne lesen können
Bauen kann man das Display nach dieser Anleitung 🇩🇪 . Die Anleitung beschreibt die Verdrahtung nach dem "Winamp"-Verfahren. Man braucht von dem HowTo nur den Schaltplan und den Teil bis zur Software, denn diese basiert in dem HowTo auf Windows.
Alternativ kann man auch diese Anleitung 🇩🇪 verwenden, welche steuerung der Hintergrundbeleuchtung erlaubt (etwas komplizierter).
Für den USB Anschluss¶
Man benötigt zusätzlich Kentnisse wie man einen AVR Mega8 Microcontroller flasht. [5] Bauhilfe (kompliziert) 🇬🇧
Außerdem eine andere Display Konfiguration in lcd4linux.conf (in der lcd4linux Wiki Seite zu LCD2USB 🇬🇧 beschrieben)
Vom Hersteller verbaute Displays¶
In manchen Servern, Netzwerkspeichern, oder "Gaming" Gehäusen sind Displays ab Werk verbaut. Oftmals werden diese über die Crystalfontz🇬🇧 oder serdisplib🇬🇧 Konfiguration angeprochen. Am besten schaut man in die Liste aller Display Treiber 🇬🇧 .
Die Software¶
Ohne die Steuersoftware wäre ein Display nutzlos, denn es würde immer nur zwei schwarze Balken anzeigen.
Installation¶
Als Software wird lcd4linux benutzt, welche über das folgende Paket installiert werden kann:
lcd4linux
Befehl zum Installieren der Pakete:
sudo apt-get install lcd4linux
Oder mit apturl installieren, Link: apt://lcd4linux
Konfiguration¶
Jetzt sollte die Konfigurationsdatei /etc/lcd4linux.conf angepasst werden. Am besten nimmt man die Konfiguration mit allen Treibern vor, dadurch erleichtert sich der Wechsel auf ein anderes Display, falls dies mal nötig sein sollte. Man öffnet also einen Editor mit Root-Rechten [2] und ersetzt den vorhandene Text durch diesen:
Achtung!
Diese Konfigurationsdatei ist nur für die parallel Port Version gültig. Ersetze die Display HD44780-ParPort { [...] } Sektion falls ein anderes verwendet wird.
#! code text Display HD44780-ParPort { Driver 'HD44780' Model 'generic' UseBusy 0 Port '/dev/parport0' Port '0x378' Bits '8' Size '20x4' #ACHTUNG! Bitte an das Display anpassen ([Zeichen pro Zeile]x[Zeilen insgesamt] asc255bug 0 Icons 1 Wire { RW 'AUTOFD' RS 'INIT' ENABLE 'STROBE' ENABLE2 'GND' BACKLIGHT 'GND' GPO 'GND' } } #Alles ab hier ist in der "Layout" Sektion erklärt Widget CPU { class 'Text' expression uname('machine') prefix 'CPU ' width 9 align 'L' update tick } Layout Default { Row1 { Col1 'CPU' } } Variables { tick 500 } Display 'HD44780-ParPort' Layout 'Default'
Grundwissen¶
So gut wie alles in der Konfigurationsdatei wird als "Expression"/Ausdruck verarbeitet. Deshalb ist es wichtig, alle Texte, die als solche erscheinen sollen in Anführungszeichen zu setzen. Sollte dies nicht geschehen, werden alle Wörter als Variable oder Operation gewertet.
Beispiele¶
1 | "Test" |
wird als der Text Test gelesen, während
1 | test |
als den inhalt der in
1 2 | Variables { } |
definierten Variable test gelesen wird
Genau so wird
1 | 42 |
sowohl als auch
1 | 40 + 2 |
als die Zahl 42 gelesen.
Für eine volle Liste dieser Operationen lese die Liste im wiki. 🇬🇧
Wer einfach etwas ausprobieren möchte kann den Befehl
lcd4linux -i
ausführen um den Interaktiven Modus zu starten. Dort kann man Ausdrücke u.ä. eingeben um die Ausgabe zu erhalten. Nützlich zum testen.
Layout¶
Hinweis:
Alle Informationon in diesem Segment beziehen sich hauptsächlich auf Textbasierte Displays welche mit Zeichen statt Pixeln Arbeiten.
Das ganze Layout System von lcd4linux basiert auf "Widgets". Kleine, voreingestelle Bausteine die dann frei platziert werden können. Der grundlegende Aufbau eines Widgets basiert auf der Klasse/Art, eines Ausdrucks, und einer Update Rate in Milisekunden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Widget Busy { class 'Text' #Art des Widgets. In diesem fall Text. expression proc_stat::cpu('busy', 500) #Der Ausdruck der die Textausgabe bestimmt. In diesem Fall eine operation des proc_stat Plugins. prefix 'Busy' #Was vor dem Ausdruck geschrieben wird(optional) postfix '%' #Was nach dem Audruck gescrieben wird (optional) width 10 #Wie viele Zeichen das Widget breit ist (optional, empfohlen) precision 1 # Wie viele Kommastellen die Zahl aus der expression hat. (optional, nur bei Numerischen Ausdrücken) align 'R' # In welche Richtung die Ausabe des Ausdrucks ausgerichtet werden soll (optional) update tick #Wie oft das Widget aktualisiert wird in Millisekunden. In dem fall eine Variable. } Widget BusyBar { class 'Bar' #Art des Widgets. In diesem fall balken. expression proc_stat::cpu('busy', 500) #Numerischer Ausdruck der die Anzeige der oberen Hälfte (falls noch expression2 eingetragen wurde) des Balken angibt. In diesem Fall eine operation des proc_stat Plugins. expression2 proc_stat::cpu('system', 500) #Numerischer Ausdruck der die Anzeige der unteren Hälfte des Balken angibt. In diesem Fall eine operation des proc_stat Plugins. (optional) length 10 #Wie viele Zeichen lang der Balken maximal werden soll. direction 'E' #In welche Richtung der Balken wachsen soll. update fast_tick #Wie oft der Balken in Millisekunden Aktualisiert wird. In dem Fall eine Variable. } |
Diese Widgets kann man nun auf dem Textdisplay platzieren. Dabei ist auf die festgelegte (oder dynamische) Breite des jeweiligen Widgets zu achten.
1 2 3 4 5 6 7 8 9 10 11 | Layout meinLayout { Row1 { #Alle Widgets für die erste Zeile des Diplays. Col1 'Busy' #Ein Widget was ab dem ersten Zeichen beginnt. Col11 'BusyBar' #Ein Widget was ab dem elften Zeichen beginnt. } Row2 { #Alle Widgets für die zweite Zeile des Diplays. Col1 'Disk' #Ein Widget was ab dem ersten Zeichen beginnt. Col11 'DiskBar' #Ein Widget was ab dem elften Zeichen beginnt. } } |
1 2 | Display 'meineDisplayKonfiguration' Layout 'meinLayout' |
beschreibt welche Display Konfiguration und welches Layout aktiv verwendet werden. Diese wurden zuvor mit
1 2 3 4 5 6 | Layout meinLayout { #[...] } Display meineDisplayKonfiguration { #[...] } |
beschrieben. Man kann so viele definieren wie man möchte, und zwischen ihnen wechseln.
Datenquellen / Plugins¶
Die Liste von Erweiterungen ist lang, aber alle folgen dem gleichen Schema:
1 | plugin_name(option1, option2, ...) |
Wenn eine Erweiterung ordungsgemäß aufgerufen wird verhält sie sich wie als ob der Rückgabewert an ihrer Stelle stände.
Die ganze Liste an Erweiterungen gibt es im lcd4inux wiki 🇬🇧
lcd4linux steuern¶
Jetzt ist kann das Programm im Terminal [1] über
# Allgemein sudo service lcd4linux {start|stop|restart|force-reload} # Beispiel sudo service lcd4linux restart
gesteuert werden. Mehr dazu im Wiki unter Dienste. Wenn das Display nun etwas anzeigt, hat alles funktioniert. Alles weitere zu den Konfigurationsmöglichkeiten und allen unterstützten Displays gibt es im lcd4linux Wiki 🇬🇧 🇩🇪 .
Links¶