Raspberry Pi als KPI Monitor und Chromium im Kiosk Modus

14.1.2015

Ein KPI Monitor zur Darstellung aller relevanten Informationen für unser Unternehmen. Das war das Ziel. In diesem Artikel geht es allerdings nur um die technische Komponente, die die Darstellung und gegebenenfalls die Aggregation der Daten übernehmen soll. Ein Rechner musste her. Ein voller Desktop war mir allerdings zu teuer und zu stromfressend. Um das Ziel also günstig uns stromsparend zu erreichen, fiel mir gleich der Raspberry Pi ein. Also ran an den Speck, einfach mal ausprobieren was der millionenfach beliebte Kasten so kann.

Erst mal zu Conrad und einen Raspberry Pi Model B+ für 35 Euro gekauft, noch eine 16GB MicroSD Karte und einen WLAN Stick von Edimax für 7 Euro dazu und los gings.

Als ersten Schritt galt es also den kleinen Kasten erst mal einzurichten. Also von der Raspberry Downloads Page das neuste Wheezy Raspbian Image gezogen, entpackt und dann nach deren Anleitung auf die SD Karte gespielt.

Das kopieren der Daten hat echt lange gedauert und man kann leider nicht wirklich sehen, was da so passiert. Ich nutze ein Macbook und wenn man sehen will, wie viel Daten übertragen werden, dann kann man das mit pv machen. Einmal kurz mit ports installiert (geht bestimmt auch mit brew) und los gehts. Und bitte vorher nachsehen, ob /dev/disk1 auch Eure SD Karte ist, denn das angegebene Laufwerk wird komplett überschrieben und dann sind Eure wichtigen Daten futsch.

sudo port install pv
sudo dd bs=1m if=2014-12-24-wheezy-raspbian.img | sudo pv | sudo dd of=/dev/disk1

Karte aus dem Rechner und ab in den Raspberry und Strom an das Gerät. Jetzt sollte man einen Raspberry Pi mit laufendem Betriebssystem haben. Als nächstes also mal ein LAN Kabel angeschlossen und die IP Adresse herausgefunden. Die sieht man, wenn das Gerät bootet als fast letzte Zeile auf dem Monitor. Dann erst mal per ssh auf das Gerät verbinden. Der Standardbenutzername beim Raspbian Wheezy ist pi und das Passwort raspberry. (Ich arbeite lieber per ssh als direkt am Gerät, kann man aber auch 🙂 )

Jetzt musste man ihn noch in den Desktop Modus schalten. Und am besten updated man erst mal alle Pakete.

sudo apt-get update && sudo apt-get upgrade -y
sudo raspi-config

Nun startet der Pi im Desktop Modus. Für unseren Monitor wollten wir Chromium nutzen und der muss auch erst noch installiert werden. Und aus diesem Artikel hier habe ich viele der Infos zur Kiosk Mode Installation gezogen. unter anderem auch unclutter, welches den Cursor verschwinden lässt.

sudo apt-get install chromium x11-xserver-utils unclutter

Jetzt ist die notwendige Software installiert und man kann den Chromium vom Desktop aus starten. Der soll aber schon beim Booten mitgestartet werden und gleich unsere KPI Seite im Vollbildmodus anzeigen. Dazu muss man folgende Datei editieren

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

und folgende Anpassungen machen:

# Den Screensaver ausschalten indem man die Zeile auskommentiert (oder löscht)
#@xscreensaver -no-splash

# Power Management ausschalten, damit der Monitor immer an bleibt.
@xset s off
@xset -dpms
@xset s noblank

Wenn der Chromium nun nach einem unfreiwilligen Neustart feststellt, dass er vorher nicht richtig beendet wurde, dann gibt es eine Fehlermeldung. Diese kann man umgehen, wenn man ihm beim Neustart einfach vorgaukelt es sei alles ok. Also folgende Zeile auch noch einfügen.

@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences

Und nun können wir den Chromium im Kiosk Modus starten, also noch eine Zeile eingefügt.

@chromium --noerrdialogs --kiosk http://kpi.paragraph1.de

Soweit so gut, allerdings hat der Pi bei mir die Auflösung des Monitors nicht von alleine erkannt und auch die Farbauflösung lag nur 8 bit. Das hat mir nicht so gut gefallen, also noch eine Änderung an der Boot Config:

sudo nano /boot/config.txt

Und darin musste ich folgende Einstellungen anpassen um einen Samsung Fernseher mit entsprechendem Vollbild zu bestücken:

# Definiert die Auflösungsbeschreibung (CEA)
hdmi_group=1
# setzt die Auflösung auf 1080p  50 Hz
hdmi_mode=31
# enfernt die Overscan Ränder an allen Seiten
disable_overscan=1

Und das war es auch schon. Jetzt startet der Raspberry Pi mit Raspbian im Desktop Modus und startet den Chromium Browser im Vollbildmodus mit unserer gewünschten Seite.

Autor: Falk Kühnel