Piattaforme ad hoc
Esistono dei client collegabili a piattaforme di digital signage che permettono di realizzare un chiosco informativo in modo diretto, di seguito un paio di indicazioni:
- usare https://github.com/wireload/screenly-ose installandolo su Raspbian (sarà poi impossibile utilizzare Raspbian per altro)
- usare Xibo con versione server e client installata sul RaspberryPI http://rpiserver.breggen.nl/ (vanno sostituiti i file bootcode.bin, start.elf e fixup.dat della partizione boot con quelli più recenti presi da https://github.com/raspberrypi/firmware/tree/master/boot)
- usare Xibo con versione client installata sul RaspberryPI (usando immagine di sopra) e server installato su una terza macchina
Creazione manuale
Dopo aver scaricato e installato Raspbian sul RaspberryPi configurare tramite l’apposita utility o il comando raspi-config
- boot_behaviour in desktop
- layout tastiera corretto
- lingua di sistema desiderata
- attivazione dell’accesso via SSH
- attivazione dell’accesso via VNC
- timezone desiderato
- espansione del file system
- modifica della password
I software utili da installare per realizzare il chiosco informativo sono i seguenti
sudo apt-get install xdotool cec-utils libcec unclutter midori
può essere utile rimuovere pacchetti non utilizzati
sudo apt-get purge libreoffice* wolfram* sudo apt autoremove
Per fare in modo che dopo il login (all’apertura dell’ambiente grafico sul desktop) si avvii il browser o altri programmi/script vanno inserite le relative direttive nel file
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Accesso via VNC
Di base attivare l’accesso via VNC da raspi-config attiva il server di RealVNC all’avvio automatico e il login è possibile con le credenziali dell’utente pi
Nel caso in cui si desideri utilizzare un’altro server VNC è possibile seguire la seguente procedura
- installare il serve
apt-get install x11vnc
- impostare la password con
sudo x11vnc -storepasswd /etc/x11vnc.pass
- impostare l’avvio automatico aggiungendo al file /etc/xdg/lxsession/LXDE/autostart (per Wheezly) ~/.config/lxsession/LXDE-pi/autostart (per Jessie e Strech)
@x11vnc -rfbauth /etc/x11vnc.pass -shared -forever
NTP
Nelle release Jessie va installato il pacchetto ntp per fare in modo che il dispositivo prenda in modo automatico l’orario
sudo apt-get install ntp
In Raspbian Strech è già presente il servizio Timesyncd che permette l’utilizzo come client NTP
- per verificare lo stato del servizio e riavviarlo dopo la modifica
systemctl status systemd-timesyncd.service sudo systemctl restart systemd-timesyncd
- nel caso si voglia aggiungere un server privato o diverso dai predefiniti va aggiunto nel file di configurazione
sudo nano /etc/systemd/timesyncd.conf [Time] NTP=192.168.1.1
Comportamento desktop
Al fine di bloccare lo schermo sul desktop ed evitare lo schermo nero dopo 15 minuti
- va inserita nel file di configurazione la direttiva seguente
sudo nano /etc/lightdm/lightdm.conf [SeatDefaults] xserver-command=X -s 0 dpms
- oppure inserite le seguenti righe nel file autostart succitato
@xset s off @xset -dpms @xset s noblank
Inoltre è possibile fare in modo che il puntatore del mouse scompaia dal desktop dopo qualche secondo tramite unclutter inserendo nel file autostart
@unclutter -display :0 -root -idle 1 &
senza specificare -root il cursore verrà nascosto solo nei programmi avviati ma non nel window manager, con -idle XX si specifica dopo quanti (XX) secondi la freccia verrà nascosta.
Gestione alimentazione e avvio
Risulta utile riavviare il dispositivo almeno una volta al giorno, per evitare che si blocchi.
Tramite la libreria dedicata è possibile sfruttare il protocollo CEC per accendere/spegnere il televisore (compatibile con CEC) a cui è collegato.
Sono comportamenti possibili inserendo le relative direttive nel cron, con il comando crontab -e
#Accensione schermo 00 8 * * 1-5 echo on 0 | cec-client -s -d 1 >/dev/null 2>&1 #Riavvio dispositivo 05 8 * * 1-5 sudo reboot #Spegnimento schermo 00 19 * * 1-5 echo standby 0 | cec-client -s -d 1 >/dev/null 2>&1 00 23 * * 1-5 sudo reboot 10 23 * * 1-5 echo standby 0 | cec-client -s -d 1 >/dev/null 2>&1
Gestione presentazione
La presentazione da visualizzare sullo schermo può essere hostata su un sito esterno oppure sul server web installato localmente.
I browser per la visualizzazione possono essere Midori (leggero e utile sulle versioni hw 1 e 2 della piattaforma) oppure Chromium (performante nella versione 3 della piattaforma e con supporto alla decodifica hardware h264).
Nel caso la presentazione sia semplice e le pagine del sito procedano in modo autonomo è possibile avviare direttamente il browser nel file autostart
@midori -e Fullscreen -a http://www.example.com
altrimenti è utile avviare uno script
@/home/pi/Utili/autostart.sh
Il contenuto di questo script può essere il seguente
#!/bin/bash #Attendi un attimo prima di avviare il tutto sleep 60 #Alternativa usando Midori #export DISPLAY=:0 && midori -e Fullscreen -a "http://www.google.it" & pidof chromium-browser >/dev/null if [[ $? -ne 0 ]] ; then echo "Restarting Chromium: $(date)" >> /var/log/autostartScript.log #Lancia il browser export DISPLAY=:0 && chromium-browser \ --disable \ --disable-translate \ --disable-infobars \ --allow-running-insecure-content \ --disable-session-crashed-bubble \ --incognito \ --disable-suggestions-service \ --disable-save-password-bubble \ --start-maximized \ --kiosk "http://www.example.com/" & #Attendi il caricamento sleep 20 #Inserisci le credenziali per l'accesso in caso ci sia da effettuare un login export DISPLAY=:0 && xdotool key "Tab" export DISPLAY=:0 && xdotool type "user" export DISPLAY=:0 && xdotool key "Tab" export DISPLAY=:0 && xdotool type "password" export DISPLAY=:0 && xdotool key "Return" fi #Per cambiare cambiare indirizzo in modalità fullscreen va tolta e rimessa con F11 # export DISPLAY=:0 && xdotool key "F11" # export DISPLAY=:0 && xdotool key "ctrl+l" # export DISPLAY=:0 && xdotool type "www.google.it" # export DISPLAY=:0 && xdotool key "Return" # sleep 3 # export DISPLAY=:0 && xdotool key "F11" #Per aggiornare la pagina periodicamente è possibile usare F5 # while : ; do # export DISPLAY=:0 && xdotool key "ctrl+F5" # sleep 10 # done
Creazione sito
Per far procedere le pagine in modo autonomo nel sito è possibile utilizzare delle librerie javascript dedicate come Reveal.js oppure inserire un javascript come il seguente
<script type="text/javascript"> var redirectURL ='http://www.example.com/page2'; // edit this value for the next page var redirectDelayInSeconds = 15; // edit this value after how many seconds var d = redirectDelayInSeconds * 1000; window.setTimeout ('parent.location.replace(redirectURL)', d); </script>
Manutenzione piattaforma
Aggiornamenti
Per aggiornare i pacchetti del sistema operativo e il firmware della piattaforma
sudo apt-get update && sudo apt-get dist-upgrade && sudo rpi-update
Pulizia pacchetti
Se lo spazio del RaspberryPi è in esaurimento potrebbe dipendere dal fatto che gli aggiornamenti del firmware stanno occupando uno spazio notevole (in quanto non vengono cancellati dopo l’installazione).
Per liberare spazio è possibile eliminare le vecchie versioni da /lib/modules/