Raspberry mit 7Zoll Display im Kioskmodus Starten
Der Raspberry Pi kann viele Funktionen erfüllen. Er wird mit Mopidy oder Squeezelight/Squeezebox zum Musikplayer. Ich habe mich nach ersten Versuchen Volumio und Mopidy/MPD, für Squeezelight/Squeezebox/LMS entschieden. Diese Lösung ist multiroom fähig. Die Software bzw. der Hersteller dieser Lösung wurde von Logitech aufgekauft und dann später als OpenSource zur Verfügung gestellt. Internet Radio, Spotify, lokale MP3 Files etc. können so bequem abgespielt werden. Die Steuerung kann z.B. per Browser oder auch per App (z.B. iPeng) erfolgen.
Im Smarthome kann über OpenHAB auch eine Steuerung erfolgen. Das ist hier aber nicht das Thema.
Hat man ein Touch Display für den PI, kann die Steuerung direkt über das Touch-Display erfolgen. Wie man das einrichtet, will ich hier in diesem Beitrag beschreiben. Ziel ist es, das nach einschalten des Gerätes, eine Oberfläche automatische startet, welche eine Eingabe bzw. Steuerung über das Display mit den Fingern ermöglicht.
Ich hab da auch mal mit einer Fritz!PowerLine geschaut, was da für ein Verbrauch anliegt. Die ca. 6 Watt bei aktiven Display und die fast 3 Watt wenn das Display aus ist. Ich denke das ist für einen Dauerbetrieb (wenn nötig) auch noch im Rahmen.
Zunächst lade ich das Betriebssystem NOOBS_v3.2.0 light. Da wird dann nur die "lite" Version über das Internet installiert. Also sowenig wie nötig an Software installiert.
Da nach dem ersten Starten wird SSH aktiviert, die Einstellung für die Sprache über raspi-config eingestellt und so etwas wie "set -o vi" ins /etc/profile geschrieben. Also etwas was mir ein wenig die Arbeit erleichtert auf der "UNIX console".
raspi-config
apt-get update
apt-get upgrade
apt-get install dnsutils
Dann gehts los und ich arbeite die folgenden Befehlen und Einstellungen ab.
# Install X11 LXDE .... das dauert dann auch gern mal ne Stunde :-/
# https://www.therryvanneerven.nl/how-to-install-raspbian-jessie-on-an-old-raspberry-pi.html
sudo apt-get install -y xinit lxde-core lxterminal lxappearance lightdm xserver-xorg xserver-xorg-video-fbdev reboot
# Keyboard
# http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/
sudo apt-get install -y xinput xinput-calibrator
# Touchscreen
# https://rataks.com/blog/raspberry-pi-touchscreen-in-moode-with-chromium.html
apt-get install -y xserver-xorg-legacy xorg
# 7" Display howto:
# https://maker-tutorials.com/raspberry-pi-touchscreen-installieren-und-anschliessen-tipps-tricks/
# https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-touch-display-installieren-und-einrichten
sudo apt-get install -y florence at-spi2-core matchbox-keyboard unclutter lsb-release chromium-browser
Jetzt wird die grafische Oberfläche installiert
sudo sed -i "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config
sudo wget https://goo.gl/NEqFRp -O /opt/start-gui
chmod +x /opt/start-gui
sudo wget https://goo.gl/bTB4Vv -O /lib/systemd/system/start-gui.service
Der Start der Oberfläche zur Steuerung des Squeezebox Client nach dem Booten wird durch folgenden Aufruf erledigt:
root@display:~ # cat /opt/start-gui
#!/bin/bash
/usr/bin/xinit /usr/local/share/triode-jivelite/bin/jivelite
Die Konfigurationsdatei für das Stück Software für den Autostart sieht wo aus:
root@display:~ # cat /lib/systemd/system/start-gui.service
[Unit]
Description=Start Chromium GUI
After=nginx.service php5-fpm.service mpd.service
[Service]
Type=simple
ExecStart=/opt/start-gui
User=pi
[Install]
WantedBy=multi-user.target
Den Service muss man dann noch einrichten:
systemctl enable start-gui
Für den Autostart wird u.a. ein Script benötigt, welches nach Login die grafische Oberfläche start. Dabei muss dann wiederum ein "Programm" gestartet werden, welches für die Steuerung genutzt werden kann. Was gibt es besseres als einen Browser (chromium-browser) der auf eine WebSite (mopidy) zugreift. Hierzu das folgende Scipt /opt/start-gui
#!/bin/bash
/usr/bin/xinit /usr/bin/chromium-browser --start-maximized --incognito --single-process --process-per-site --disable-sync-preferences --no-startup-window --kiosk --touch-events --disable-touch-drag-drop --enable-touchview --enable-pinch --window-size=800,480 --windowposition=0,0 --disable-session-crashed-bubble --disable-infobars --no-first-run --app=http://localhost:6680/musicbox_webclient/index.html#home --nocursor
Alternativ hier der Aufruf für JiveLite eine Squeezelite Benutzeroberfläche für Linux
#!/bin/bash
/usr/bin/xinit /opt/jivelite/bin/jivelite.sh
Mit dem Befehl raspi-conf wird die Konfiguration des Systems so eingestellt, das automatisch der Benutzer "pi" sich anmeldet.
Dann muss noch der "Squeeze..." Client unter Linux installiert werden. Ich nehme dazu den Client JiveLite
sudo apt-get install git libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libexpat1-dev
Clone luajit from github and compile:
cd /usr/local/src
git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
sudo ldconfig
Clone JiveLite from github and compile:
cd /usr/local/src
git clone https://github.com/ralph-irving/jivelite
cd jivelite
make
cd ..
sudo mv ./jivelite /opt
Zum Schluss noch der Tipp mit dem Screensaver über ein einfaches Script "jivelite.sh", welches dann zum Aufruf kommt im "start-gui.sh" Script.
#!/bin/bash
export SDL_VIDEO_ALLOW_SCREENSAVER=1