Booten in den Touchscreen-Modus für Linux

Installation eines Touchscreen-Frontends für Raspberry Pi unter Jessie

Ab Version 0.80.0 liefern wir ein neues Drucker-Frontend aus, das für die Touch-Bedienung optimiert ist und auf die meisten verfügbaren Displays passt. Es passt sich automatisch an die nächstkleinere Bildschirmauflösung an, falls die Auflösung nicht unterstützt wird. Das neue Frontend verwendet aktuelle Technologie, so dass du einen aktuellen Browser benötigst. Der einzige, der zu unserer Zufriedenheit funktionierte, war der Chromium-Browser. Firefox/Iceweasel funktionierten auch, haben aber keinen Kioskmodus und zeigen die URLs immer unten links an, was die Anzeige stört. In einem ersten Schritt solltest du also die Paketregistrierung aktualisieren und den Browser installieren:

apt-get update
api install chromium-browser rpi-chromium-mods

Als nächstes solltest du deinen Pi so konfigurieren, dass er sich automatisch mit

raspi-config

einloggt. Wähle „3 Boot Options“ und dann „B4 Desktop Autologin“. Jetzt wird dein Pi direkt in das X Window System booten. Alles, was zu tun ist, ist das Öffnen des Browsers im Vollbild-Kiosk-Modus mit der Server-Frontend-URL http://127.0.0.1:3344/modules/front2/www/app.html

In unserem Pi-Image haben wir „B2 Console Autologin“ gewählt und am Ende von /home/pi/.bashrc folgendes hinzugefügt:

if ! pgrep "xinit" > /dev/null
then
    xinit -- -nocursor &
fi

Dadurch wird der x-Server ohne Mauszeiger gestartet, was eine nette Sache ist, da wir ihn als Touch-Display verwenden.

Wenn du das normale Jessie-Image mit x hast, hast du den lxde-Desktop installiert. Dort wäre die Autostart-Datei „/home/pi/.config/lxsession/LXDE-pi/autostart“. Wenn du unser Pi-Image verwendest, lautet die Autostart-Datei „/home/pi/.config/openbox/autostart“, da wir openbox verwenden, um die Speichernutzung zu reduzieren. Öffne die Datei mit deinem bevorzugten Editor und füge Folgendes hinzu:

# Dekommentiere die folgenden 3 Befehle, damit die Anzeige immer eingeschaltet ist
#xset s off         # Bildschirmschoner nicht aktivieren
#xset -dpms         # DPMS-Funktionen (Energy Star) deaktivieren
#xset s noblank     # Videogerät nicht ausschalten

chromium-browser --noerrdialogs --disable-suggestions-service --disable-translate --disable-save-password-bubble --disable-session-crashed-bubble --disable-infobars --touch-events=enabled --disable-gesture-typing --kiosk http://127.0.0.1:3344/modules/front2/www/app.html

Die 3 xset-Befehle verhindern, dass das Display leer wird, so dass es immer eingeschaltet bleibt und du immer den Druckstatus sehen kannst. Andernfalls wird das Display nach einer Weile leer und du musst ihn erst berühren, um den Inhalt zu sehen.

Installation eines Touchscreen-Frontends für Raspberry Pi auf Wheezy

  1. Installiere den Touchscreen wie für dein Display erforderlich.
  2. Kalibrieren deinen Touchscreen.
  3. Installiere kweb. Neueste Informationen findest du hier: http://www.raspberrypi.org/forums/viewtopic.php?f=66&t=40860
  4. Schließe x window system, falls es läuft.
    sudo service lightdm stop
  5. Erstelle eine Datei rs in Ihrem Home-Verzeichnis (die folgenden Beispiele gehen vom Benutzer pi aus).
    #!/bin/sh
    openbox --config-file ~/.config/openbox/LXDE-rc.xml --startup tint2 &
    kweb  -KEJF http://localhost:3344/mod/front/1024x800/index.html

    Wähle den Link so aus, dass er deiner Bildschirmauflösung entspricht.

  6. Teste, ob der Link funktioniert (der Server muss bereits laufen).
    sudo xinit /home/pi/rs -- -nocursor
  7. Nun, da es funktioniert, kannst du es automatisch starten lassen: Suche in der Datei /etc/inittab nach einer Zeile wie dieser:
    1:2345:respawn:/sbin/getty --noclear 38400 tty1

    Kommentie sie mit einem vorangestellten „#“ aus und füge die folgende Zeile an sie an:

    1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1

    Schreibe ein Skript im Home-Verzeichnis startserver.sh:

    #!/bin/bash
    cd ~
    until xinit /home/pi/rs -- -nocursor; do
        echo "X Server crashed with exit code $?.  Respawning.." >&2
        sleep 1
    done

    Markiere sie dann als ausführbar:

    chmod 755 startserver.sh
    
    sudo -s
    echo "pi ALL=NOPASSWD: /usr/bin/pkill" > /etc/sudoers.d/pi_pkill

    Füge in der Datei /etc/rc.local die folgende Zeile direkt vor der Zeile mit „exit 0“ ein.

    su -l pi -c "xinit ./rs -- -nocursor"
    su -l pi -c "/home/pi/startserver.sh"

    Falls du nicht willst, dass der Bildschirm nach einer Weile leer ist, füge in /etc/X11/xinit/xinitrc und /etc/xdg/lxsession/LXDE/autostart die folgenden Zeilen ein:

    xset s off         # Bildschirmschoner nicht aktivieren
    xset -dpms         # DPMS-Funktionen (Energy Star) deaktivieren
    xset s noblank     # Videogerät nicht ausschalten

    Wenn du mit dem NOOB-Installer installiert hast, könnte Autostart stattdessen /etc/xdg/lxsession/LXDE-pi/autostart sein. Wenn du die Zeile siehst

    @xscreensaver -no-splash

    setze ein # davor, um es auszukommentieren.

Hinzufügen eines Startbildschirms

Du kannst deinen eigenen Startbildschirm entwerfen oder einen von uns verwenden:

http://www.repetier-server.com/en/wp-content/uploads/2015/09/boot800x480.png
http://www.repetier-server.com/en/wp-content/uploads/2015/09/boot1024x600.png
http://www.repetier-server.com/en/wp-content/uploads/2015/09/boot1024x800.png
http://www.repetier-server.com/en/wp-content/uploads/2015/09/boot1280x800.png

Für Raspberry Pi:

Füge „quiet“ am Ende der Zeile von /boot/cmdline.txt hinzu. Sie sieht dann etwa so aus:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet

Installiere fbi:

sudo apt-get install fbi

Erzeuge die Datei /etc/init.d/asplashscreen

sudo nano /etc/init.d/asplashscreen
#! /bin/sh
### BEGIN INIT INFO
# Provides:          asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:
# Default-Start:     S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description:       Show custom splashscreen
### END INIT INFO


do_start () {
    echo 0 > /sys/class/graphics/fbcon/cursor_blink
    /usr/bin/fbi -T 1 -noverbose -a /etc/splash.png
    exit 0
}

case "$1" in
  start|"")
    do_start
    ;;
  restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
  stop)
    # No-op
    ;;
  status)
    exit 0
    ;;
  *)
    echo "Usage: asplashscreen [start|stop]" >&2
    exit 3
    ;;
esac

Lege dann Berechtigungen fest und aktivieren sie

sudo chmod a+x /etc/init.d/asplashscreen
sudo insserv /etc/init.d/asplashscreen

Kopiere den Splash-Screen nach /etc/splash.png.

Starte den Rechner neu und du siehst deinen neuen Startbildschirm. Beim Booten werden 4-5 Zeilen angezeigt, die nicht entfernt werden können.