Etwas unschön fällt zudem auf, dass Raspberry Digital Signage zwar auf Sourceforge als installierbares Image bereitsteht, dort aber der Quellcode fehlt. Die Abbilddatei wiederum enthält den PHP-Code, jedoch ohne Angabe zur Lizenz. Auch auf der SF-Seite fehlt ein entsprechender Hinweis; erst die Homepage [2] offenbart, dass der Code der GPLv2 unterliegt.
Concerto
Concerto [3] besteht aus einem Server und einem oder mehreren Clients – RasPis oder auch normalen PCs– welche die Bildschirme steuern. Diese holen sich die Inhalte vom Concerto-Server, auf dem Sie den Content über ein Webinterface administrieren. Ein Client besteht mehr oder weniger nur aus einem Webbrowser, der eine Webseite vom Server abruft und im Vollbildmodus anzeigt.
TIPP
Wer sich das Concerto vorab ansehen will, findet im Web eine Demoseite [4], die sowohl die Bildschirme zeigt als auch den Test des Admin-Interface erlaubt.
Einen Concerto-Client installieren Sie auf dem RasPi sehr einfach: Dazu benötigen Sie in erster Linie einen Browser – neben Midori käme hier auch Chromium im Kiosk-Mode (@chromium --kiosk) infrage.
Zusätzlich ziehen Sie bei Bedarf das Paket unclutter nach. Es sorgt dafür, dass kein Mauszeiger erscheint. Anschließend stellen Sie sicher, dass der Browser im Fullscreen-Modus startet und den Concerto-Server kontaktiert. Dazu fügen Sie in der Datei ~/.config/lxsession/LXDE/autostart die Zeile aus Listing 4 ein.
Listing 4
@midori -e Fullscreen -a http://Concerto-Server/screen/?mac=MAC-Adresse
Für Concerto-Server setzen Sie die Adresse des entsprechenden Rechners ein, MAC-Adresse ersetzen Sie durch die MAC-Adresse des Raspberry Pi. Zuletzt verhindern Sie, dass der Bildschirm sich ungewollt abschaltet. Dazu modifizieren Sie in der Datei /etc/lightdm/lightdm.conf im Bereich [SeatDefaults] den Startbefehl wie folgt:
xserver-command=X -s 0 dpms
Concerto bietet wie bereits erwähnt die Möglichkeit, mehrere Bildschirme anzusteuern. Der Server läuft als PHP-Anwendung, die als Datenbank einen MySQL-Server braucht. Dieser muss nicht zwangsläufig auf dem gleichen Rechner laufen wie Concerto.
Für die Installation laden Sie von der Homepage [5] die Server-Software herunter, entpacken sie und kopieren die Daten auf den Webserver. Concerto gibt es in zwei Varianten: Einmal mit einem speziellen Authentifizierungssystem (CAS) der Yale-Universität, einmal ohne. In der Regel genügt die zweite Variante (aktuell: concerto-1.9.3-NoCAS). Um die Rechte anzupassen, geben Sie auf dem Webserver die folgenden Befehle ein:
$ cd concerto-directory $ sudo chown -R www-data .
Anschließend kopieren Sie die Config-Datei config.inc.php.sample nach config.inc.php und passen zumindest die Variablen aus Listing 5 entsprechend den konkreten Gegebenheiten an.
Listing 5
$db_host = 'localhost'; // Datenbank-Server
$db_login = 'user'; // Datenbank-User
$db_password = 'password'; // Datenbank-Passwort
$db_database = 'concerto'; // Datenbank-Name
// Important paths
define('ROOT_DIR', '/var/www/'); // Pfad zur Concerto-Installation
define('ROOT_URL', '/'); // URL zur Concerto-Installation
Anschließend legen Sie die Datenbank an und befüllen diese mit den erforderlichen Tabellen und Daten aus dem Verzeichnis install (Listing 6). Der letzte Befehl setzt das Passwort für den User admin. Dieses steht zwar ab Werk leer, die Software erlaubt aber keine Logins mit leerem Passwort.
Listing 6
mysql -h localhost -u user -p concerto < schema.sql
mysql -h localhost -u user -p concerto < data.sql
mysql -h localhost -u user -p concerto -e "update user set password=md5('Passwort') where id=0;"
Um zu überprüfen, ob die Installation passt, bietet Concerto ein kurzes Diagnose-Skript an (Abbildung 4). Ein im Test aufgetretener Fehler – die Variable PATH_INFO war nicht korrekt gesetzt – ließ sich mit einem Klick auf try visiting this lösen. Falls das nicht klappt, müssen Sie in der Apache-Konfiguration (oder .htaccess-Datei) noch die Direktive AcceptPathInfo On einfügen.
Zum Schluss richten Sie noch einen Cronjob ein (Listing 7). Den enthaltenen Pfad passen Sie entsprechend an, falls sich Concerto auf einem virtuellen Server oder in einem Unterverzeichnis befindet.






