Kiosk-System: iiyama Prolite T2252MTS mit Ubuntu 15.04 auf einem Banana Pi

Kiosk-System: iiyama Prolite T2252MTS mit Ubuntu 15.04 auf einem Banana Pi

  • Beitrags-Autor:
  • Beitrags-Kategorie:Linux
  • Beitrags-Kommentare:2 Kommentare

iiyama_t2252mts_bananapiFür einen Info-Terminal habe ich einen Banana Pi mit iiyama Prolite T2252MTS Monitor verbaut, als Anwendung läuft auf dem System einfach nur ein Browserfenster mit einer Hersteller-Info-Webseite im Hintergrund.

Die Grundlage für dieses System bildet die Ubuntu Version von der Banana-Pi Webseite.

Auf mehrere Probleme bin ich bei der Inbetriebnahme gestoßen – der Monitor bliebt überhaupt dunkel, der Multitouch zum Zoomen und Scrollen funktionierte nicht, das Display konnte nicht um 90° gedreht werden und zu guter letzt machte nach dem Drehen der Mauszeiger noch Probleme! Die Achsen waren verdreht, eine Bewegung nach unten lies den Mauszeiger nach links wandern…

Hier nun die Einstellungen die bei mir zum Erfolg geführt haben

Damit beim Rechnerstart gleich ein User ohne Kennworteingabe angemeldet wird habe ich die Datei /etc/init/tty1.conf verändert

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /bin/login -f pi < /dev/tty1 > /dev/tty1 2> /dev/tty1

Dadurch fällt mir zwar die erste Konsole weg, davon gibts aber sowieso mehrere – also nicht weiter tragisch. 🙂

Das tty1 startet also die Login Shell vom User „pi“ und darin liegt eine modifizierte .bashrc Datei an deren Ende ich nur folgene Zeile angefügt habe:

xinit
logout

Der Befehl xinit startet das X-Windows System und sollte sich der Prozess mal beenden wird automatisch ein logout ausgeführt.

Sobald das X-Windows System startet wird die Datei .xinitrc im Home Verzeichnis vom User pi ausgeführt, diese sieht wie folgt aus:

#!/bin/bash

export TERM=xterm
WINDOWMANAGER=“pekwm“

exec $WINDOWMANAGER

exit 0

Hier wird „pekwm“ als Windowmanager definiert und entsprechend gestartet.

Der Window Manager „pekwm“ legt seine Config-Dateien im Unterverzeichnis .pekwm des Users pi an, die Datei „start“ muss ausführbar gemacht werden (chmod +x start) und bei mir sieht sie wie folgt aus:

xinput –set-prop „Quanta OpticalTouchScreen“ „Evdev Axis Inversion“ 0 1
xinput –set-prop „Quanta OpticalTouchScreen“ „Evdev Axes Swap“ 1

sleep 1;/usr/bin/chromium-browser –start-maximized –kiosk –disable-about-in-settings –disable-account-consistency –disable-breakpad –disable-cloud-import –disable-drive-search-in-app-launcher –disable-extensions –disable-file-system –disable-offline-pages –disable-settings-window –disable-session-crashed-bubble &
while true; do
/usr/bin/x11vnc -display :0
done

Die ersten beiden Zeile dienen dazu den Mauszeiger umzuschalten sodass er nach dem Drehen des Bildschirms korrekt dem Finger folgt, je nachdem wie man den Bildschirm gedreht hat müssen die Werte angepasst werden.

Nach einer Pause von einer Sekunde wird dann der Chromium Browser im Kiosk Modus gestartet.

Am Ende des Scripts starte ich noch einen VNC Dienst, damit ich zu Fernwartungszwecken die Anzeige übertragen kann – das Ganze in einer Endlosschleife damit der VNC Dienst auch nach dem Beenden einer Wartung wieder aktiv wird.

Und jetzt kommen wir zur Konfigurtation des X-Servers, bei Ubuntu wird die Konfiguration aus dem Verzeichnis /usr/share/X11/xorg.conf.d geladen – entsprechend habe ich dort folgende Dateien erstellt:

01-fbturbo.conf

Section „Device“
Identifier „ProLite T2250MTS – iiyama“
Driver „fbturbo“
Option „fbdev“ „/dev/fb0“
Option „SwapbuffersWait“ „true“
Option „AccelMethod“ „G2D“
Option „rotate“ „CW“
Option „HWCursor“ „false“
EndSection

10-monitor.conf

Section „Monitor“
Identifier „Monitor0“
Modeline „1920×1080“ 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync -csync
EndSection

Section „Screen“
Identifier „Screen0“
Monitor „Monitor0“
DefaultDepth 24
Option „Rotate“ „left“
Option „RandRRotation“ „True“
SubSection „Display“
Depth 24
Modes „1920×1080“
EndSubSection
EndSection

50-multitouch.conf

Section „InputClass“
MatchIsTouchpad „true“
Identifier „Multitouch Touchpad“
Driver „multitouch“
Option „EmulateThirdButton“ „1“
Option „EmulateThirdButtonTimeout“ „750“
Option „EmulateThirdButtonThreshold“ „30“
EndSection

Eine Kleinigkeit gibts dann noch zu beachten, auf meinem System wurde der USB Touch vom Monitor erst sehr spät nach dem Booten erkannt – daher musste ich eine udev-Regel mit einbauen welche ein Script ausführt das die xinput Werte setzt!

/etc/udev/rules.d/10-local.rules

SUBSYSTEM==“input“, ACTION==“add“, KERNEL==“mouse0″, RUN+=“/usr/local/sbin/rotate_touch.sh“

Und hier der Inhalt des /usr/local/sbin/rotate_touch.sh Scripts:

#!/bin/sh
sleep 1
logger -t „touch“ „Versuche touch zu rotieren…“
export DISPLAY=:0
xinput –set-prop „Quanta OpticalTouchScreen“ „Evdev Axis Inversion“ 0 1
xinput –set-prop „Quanta OpticalTouchScreen“ „Evdev Axes Swap“ 1

Mit diesen Einstellungen läuft das System bei mir einwandfrei! Ein günstiges Kiosk System mit Multitouch – die Hardware kostet keine 300 Euro.

Viel Spaß beim Nachbasteln!

Dieser Beitrag hat 2 Kommentare

  1. Jens

    Hallo,
    tolles Projekt. Wissen Sie vielleicht ob dieser Bildschirm auch mit dem neuen RPI 3 inklusive Touch läuft.

    Viele Grüße

    Jens

    1. Manfred

      Danke, was den RPI3 angeht kann ich leider keine Aussage treffen da ich ihn noch nicht in Händen hatte. Die größten Änderungen bei RPI3 betreffen aber WLAN, Bluetooth und den Prozessor – daher gehe ich eigentlich davon aus dass das Ganze auch mit dem 3’er funktionieren müsste.

      Schöne Grüße
      Manfred

Schreibe einen Kommentar