Listing 2
dtoverlay=waveshare35a:rotate=0
Bildschirme mit proprietären Treibern sollten Sie unbedingt meiden, sonst machen Sie sich von speziellen Kerneln der Hersteller abhängig und stehen dann irgendwann mit einem veralteten System da (wie zum Beispiel beim 2,8-Zoll-Display von Pi3g). Hier hilft vor dem Kauf ein Blick in die Installationsanleitung zum Display.
Hersteller liefern für die Konfiguration oft ein Overlay, also eine spezielle Datei, die die Pins und Treiber konfiguriert. Da die Overlays nicht von der Raspbian-Version abhängen, stellt ein Update kein Problem dar. Das Overlay von Watterott gehört zur Standarddistribution, die Varianten für Waveshare kommen per Installation auf das System.
Die Bootkonfiguration legt dabei die Ausrichtung des Displays fest, Änderungen zur Laufzeit wie bei Smartphones klappen nicht. Wichtig ist, dass Sie die Ausrichtung sowohl für den Framebuffer als auch für das integrierte Touch-Device parallel anpassen. Das übernimmt aber typischerweise das Overlay.
Die SPI-Treiber stellen auf dem System ein neues Framebuffer-Device /dev/fb1 bereit; /dev/fb0 ist der Framebuffer des HDMI-Displays. Um das Device zu nutzen, konfigurieren Sie Ihre Anwendungen entsprechend. Für Raspbian selbst erfolgt das in der /boot/cmdline.txt.
Während die Einträge in den ersten drei Zeilen von Listing 3 dem Standard entsprechen, ändert die letzte Zeile das Default-Display, stellt einen anderen Font ein und verhindert die Anzeige der Himbeere auf dem sowieso schon kleinen Bildschirm. Das Listing verteilt die Einstellungen nur der Übersichtlichkeit halber auf mehrere Zeilen, in der cmdline.txt darf nur eine einzige lange Zeile stehen.
Listing 3
dwc_otg.lpm_enable=0 console=serial0,115200 \ console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 \ elevator=deadline fsck.repair=yes rootwait \ fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo
Mit diesen Änderungen laufen die Boot-Meldungen jetzt über den kleinen Schirm. Per Tastatur könnten Sie dann sogar Kommandos auf der Konsole eingeben. Im Grunde handelt es sich dabei aber um eine Notlösung, die maximal für einen Headless-Server taugt.
Touch
Die meisten kleinen Bildschirme reagieren auf Touch-Eingaben und erlauben so das Steuern geeigneter Anwendungen. Es gibt zwei Varianten: kapazitive Bildschirme, die auf Berührung reagieren, und resistive Varianten, die auf Druck reagieren.
Wer einmal mit Ersteren gearbeitet hat, will mit den Letzteren nichts mehr zu tun haben. Allerdings gibt es deutliche Preisunterschiede zwischen den beiden Technologien. Ist die Hardware fest montiert und bedienen Sie das Gerät nur relativ selten, dann genügt die resistive Variante. Ansonsten sollten Sie lieber etwas mehr Geld für die kapazitive Version investieren.
Technisch läuft Touch entweder über SPI (auch bei manchen HDMI-Displays) oder via USB. Letzteres gestaltet sich auf der Treiberseite einfacher, beim großen Waveshare-Screen etwa war keine zusätzliche Konfiguration nötig. Die SPI-basierten Touchscreens benötigen wie bereits beschrieben einen zusätzlichen Eintrag in der /boot/config.txt (Listing 2).
Waveshare löst das Konfigurationsproblem übrigens vorbildlich: Neben vorkonfigurierten Raspbian-Images für den schnellen Einstieg stellt die Firma auch ein paar kleine Skripte bereit, die Bildschirm und Touch per Befehl (re-)konfigurieren [3]. Watterott hält dazu eine ausführliche Wiki-Seite vor [4] und bietet auch ein Installationsskript, das bei Bedarf alle Änderungen am System automatisch vornimmt.
Kalibrierung
Zum Kalibrieren des Bildschirms benötigen Sie die Pakete tslib und libts-bin aus dem Raspbian-Repository. Das zweite enthält das Programm Ts_calibrate, das Sie zwingend auf der Konsole starten müssen – also nicht in einer Terminal-Emulation wie Xterm oder über Ssh.
Das Programm blendet nacheinander ein paar Kreuze ein, die Sie dann berühren (Abbildung 4). Gibt der Hersteller dem Bildschirm keinen passenden Stift mit, weichen Sie einfach auf einen Kugelschreiber mit eingezogener Spitze aus. Bei kapazitiven Bildschirmen nutzen Sie stattdessen einen der üblichen Touchpens.





