Cosa puoi trovare in questa guida?
Questa guida descrive in dettaglio come creare un totem per la navigazione internet usando Debian Squeeze. La guida prevede l’utilizzo del DE Openbox, la creazione di un browser realizzato in python con webkit, la creazione di un demone per gestire l’avvio del totem. |
Indice
Installiamo i pacchetti necessari
Dopo aver installato un sistema base Debian creiamo l’utente con privilegi ridotti che dovrà accedere al totem.
adduser kiosk
Successivamente installiamo le applicazioni necessarie.
aptitude install openbox chromium-browser xorg
Costruiamo un browser python ultra leggero
ATTENZIONE — Con le nuove release di Debian questa parte è diventata obsoleta |
Installiamo i pacchetti necessari
aptitude install python-webkit
A questo punto creiamo un browser minimale in /usr/bin chiamandolo web.py
#!/usr/bin/env python import gtk, webkit win = gtk.Window() win.connect('destroy', lambda w: gtk.main_quit()) win.fullscreen() scroller = gtk.ScrolledWindow() web = webkit.WebView() web.open("http://lug.42019.it") win.add(scroller) scroller.add(web) win.show_all() gtk.main()
Rendere eseguibile il nuovo browser:
chmod +x /usr/bin/web.py
Testare l’applicazione lanciando il comando startx. Successivamente aprire un terminale cliccando con il tasto destro e lanciare web.py
Rendiamo web.py auto avviabile su openbox editando il file /etc/xdg/openbox/autostart.sh. Alla fine del file aggiungiamo.
web.py &
Script di avvio
Creare lo script di avvio kiosk in /etc/init.d
#!/bin/sh ### BEGIN INIT INFO # Provides: kiosk # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Il totem del LUG # Description: Totem per la sola navigazione internet ### END INIT INFO case "$1" in start) su kiosk -c 'startx' # opzionalmente si può aggiungere qui halt ;; stop) echo "Stopping totem" ;; *) echo "Usage: $0 {strat|stop}" exit 1 ;; esac exit 0
Aggiungere lo script ai diversi runlevel
update-rc.d kiosk defaults
Per eliminare il servizio si può usare
# update-rc.d -f kiosk remove
Esecuzione automatica di chromium
Rendiamo chromium auto avviabile su openbox editando il file /etc/xdg/openbox/autostart.sh. Alla fine del file aggiungiamo.
chromium-browser –kiosk http://lugscandiano.org &
Volendo è possibile fare una cosa un po’ più raffinata aggiungendo nello script un ciclo che controlla periodicamente se chromium è stato chiuso e in caso affermativo lancia nuovamente il programma.
# Disabilita lo screensaver xset -dpms & xset s noblank & xset s off & chromium-browser --kiosk http://lugscandiano.org & PID=$! echo $PID while [ 1 ] do if ps -p $PID > /dev/null then echo Chromium sta funzionando else echo Chromium non funziona lo lancio di nuovo chromium-browser --kiosk http://lugscandiano.org & PID=$! fi sleep 10 done
Possibili problemi
Non parte X
Se il demone non è in grado di far partire X con l’utente kiosk e viene restituito il seguente errore:
X: user not authorized to run the X server, aborting.
Editare il file /etc/X11/Xwrapper.config modificando la riga seguente:
allowed_users=anybody
Aumentare il numero di colori
Se il numero di colori non vi soddisfa potete generare un nuovo file di xorg.conf con il comando
Xorg -configure
Il nuovo file sarà salvato in /root/xorg.conf.new. Per renderlo attivo deve essere collocato in /etc/X11/xorg.conf. Successivamente editarlo come segue:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 EndSection
Installare sudo
aptitude install sudo
Editare il file /etc/sudoers
kiosk ALL = NOPASSWD: /sbin/halt
Editare il file /etc/xdm/openbox/menu.xml per aggiungere la voce di menu
<item label="Spegni"> <action name="Execute"> <command>sudo halt</command> </action> </item>
Riavviare Openbox