<genew@rom.on.ca>
lore.conti @ tiscalinet.it
,
ultima revisione 8 dicembre 2001, revisione a cura di Riccardo Fabris
frick @ linux.it
.
I chioschi informativi sono utili in librerie, gallerie e musei, istituzioni educative, uffici municipali, stand informativi per visitatori, conferenze, grandi magazzini, aeroporti; in breve ogni luogo dove sia desiderabile un semplice e facile accesso all'informazione. Normalmente i chioschi sono configurati con touchscreen o dispositivi di puntamento tipo trackball, per permettere alla gente di selezionare e scorrere le informazioni, mostrate in modo interessante e aggiornate.
Ci sono molti modi per creare chioschi, da soluzioni costose basate su software proprietari a soluzioni open-source basate su HTML. Le tecnologie basate su browser sono particolarmente interessanti perché sono di per sé multimediali, gestiscono testo, grafica, suono e video, inoltre i contenuti sono molto portabili.
Linux fornisce una piattaforma flessibile ed interessante per lo sviluppo di chioschi. Linux è economico da configurare ed offre un'ampia gamma di opzioni, dalle postazioni di semplice visualizzazione, senza disco fisso, a quelle totalmente autonome, su cui girano server web e database. A causa della versatilità del sistema operativo sottostante, un chiosco Linux ben progettato può essere posto in un luogo remoto e amministrato tramite telefono o rete.
Questo HOWTO esplora un metodo per configurare Linux come chiosco informativo autonomo, usando Netscape Navigator 4.X e FVWM2 su un sistema Red Hat Linux 6.X. Si basa su un chiosco che ho configurato per essere usato nella Hands-on Biodiversity Gallery presso il Royal Ontario Museum ( http://www.rom.on.ca) di Toronto, in Canada. Il chiosco descritto in questo HOWTO comprende una trackball piuttosto che un touchscreen, più costoso. Senza dubbio ci sono molti altri modi per creare un chiosco basato su Linux, ma questo ha funzionato in modo affidabile per noi e può fornire un utile punto di inizio per il progetto del vostro chiosco.
Copyright Gene Wilburn 1999. All rights reserved.
The author disclaims all warranties with regard to this document, including all implied warranties of merchantability and fitness for a certain purpose; in no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use of this document.
This legalese means use at your own risk.
L'autore declina ogni garanzia nei confronti di questo documento, incluse tutte le garanzie implicite nella possibilità di essere venduto e nella idoneità per un certo scopo; in nessun caso l'autore sarà responsabile di ogni danno particolare, indiretto o consequenziale o per qualunque danno dovuto a perdita di utilizzo, di dati o di profitti, o in una azione legale per contratto, negligenza o per altra cervellotica azione, risultante da o in relazione con l'uso di questo documento.
Questo legalese significa utilizzatelo a vostro proprio rischio.
Postilla del traduttore: la traduzione non è ufficiale, in ogni caso si faccia riferimento alla versione originale dell'autore.
Il nostro chiosco Linux deriva in gran parte dal lavoro fatto dalla Città di Charlotte, in North Carolina, per il sito municipale, Charlotte's Web (vedere http://www.charweb.org/webinfo/kiosk/). Il progetto del chiosco a interfaccia web di Charlotte, che impiega un touchscreen, è stato realizzato nel 1996 usando una delle prime versioni di Slackware Linux, Netscape Navigator 2.X e FVWM. I webmaster di Charlotte hanno creato un chiosco molto usabile e hanno condiviso la loro intera configurazione tramite il loro sito web. Questo HOWTO, fino ad un certo punto, rappresenta un aggiornamento del loro lavoro. Sono stati modificati i dettagli per funzionare con Red Hat 6.X, Netscape Navigator 4.X, FVWM2 e con una trackball fatta su misura.
Ho lavorato con Debra Luneau (debral@rom.on.ca), il webmaster del Royal Ontario Museum, per creare maschere per Netscape. Gli esempi che distribuiamo nel nostro sito ftp sono opera sua e sono quelli che usiamo per il chiosco nella Biodiversity Gallery.
La sezione Ontario Biodiversity del sito web del museo è stata progettata da Hopscotch Interactive (www.hopscotch.ca). L'applicazione originale è stata convertita da un sistema a database non strutturato su file singolo ad uno con database MySQL da Gord Howells (gordonh@rom.on.ca), il progettista e programmatore del museo. La versione in linea di questo minisito può essere vista in http://www.rom.on.ca/ontario/.
La configurazione di Linux per l'utilizzo come chiosco a interfaccia web è simile a quella di Linux come stazione di lavoro grafica, con alcune considerazioni aggiuntive. Se la macchina deve essere un'unità autonoma, deve avviarsi immediatamente nella modalità chiosco. Inoltre, l'ambiente del browser deve essere modificato per disabilitare le schermate di dialogo standard ed eliminare le parti del browser che consentirebbero un'interazione indesiderata, come la barra degli indirizzi di Netscape.
Essenzialmente il sito web di un chiosco è autonomo. Gli utenti navigano attraverso il sito tramite clic con un dispositivo di puntamento. Il dispositivo di puntamento può essere un touchscreen, una trackball, o un mouse. I mouse sono difficili da tenere al sicuro in un'area pubblica.
Un chiosco Linux può essere collegato in remoto, via rete o PPP, ad un sito base cui richiedere le pagine, oppure può essere un sito web autonomo che esegue Apache e ogni corrispondente modulo CGI.
FVWM2 (FVWM, versione 2, vedi
http://www.fvwm.org) è un X Window
manager flessibile, affidabile e leggero che fornisce eccellenti possibilità
di configurazione per creare l'ambiente operativo del chiosco.
Per utilizzarlo con il chiosco si devono cambiare alcune delle impostazioni
di default.
Si deve modificare il file system.fvwm2rc
per rimuovere cose come
desktop virtuali, barre dei titoli, controlli di uscita ecc., lasciando un
ambiente FVWM relativamente minimalista.
Siccome il chiosco è un'unità autonoma, la modifica delle impostazioni
per l'intero sistema non è un problema.
Inoltre si può approfittare delle proprietà configurabili degli oggetti di FVWM ed usare le bitmap di X Window (i file xpm) per mascherare le parti di Netscape Navigator che non si vuole far accedere agli utenti.
Il file di FVWM2 che si deve modificare è
/etc/X11/fvwm2/system.fvwm2rc
. (Se si una una distribuzione diversa da
Red Hat, questo file può essere situato in qualche altro posto.)
Si dovrà cercare un po' nel file per trovare le sezioni mostrate qui sotto.
In /etc/X11/fvwm2/system.fvwm2rc
cambiare
DeskTopSize 2X2
in
DeskTopSize 1X1
Questo elimina i desktop virtuali.
In seguito, nella sezione "Default Styles", cambiare
Style "*" BorderWidth 7, HandleWidth 7
in
Style "*" BorderWidth 0, HandleWidth 0, notitle, nohandles
Questo disabiliterà la maggior parte dei controlli di finestra.
Aggiungere le due righe seguenti alla sezione "Default Styles":
Style "xdaliclock" StaysOnTop
Style "sxpm" StaysOnTop
Una volta terminata, la sezione "Default Styles" del file dovrebbe essere simile a questa:
# default Styles:
#Style "*" BorderWidth 7, HandleWidth 7
Style "*" BorderWidth 0, HandleWidth 0, notitle, nohandles
Style "*" Icon unknown1.xpm, Color lightgrey/dimgrey
Style "*" MWMFunctions, MWMDecor, HintOverride
Style "*" DecorateTransient, NoPPosition
Style "*" IconBox 0 -10 -280 -1
Style "*" FocusFollowsMouse
Style "*" RandomPlacement, SmartPlacement
Style "xdaliclock" StaysOnTop
Style "sxpm" StaysOnTop
Si possono usare i programmi xdaliclock e sxpm per coprire parti di Netscape Navigator. L'attributo "StaysOnTop" è quanto serve.
In seguito, trovare le seguenti quattro righe e commentarle come mostrato:
#AddToFunc InitFunction "I" Module FvwmButtons
#+ "I" exec xsetroot -mod 2 2 -fg \#554055 -bg \#705070
#AddToFunc RestartFunction "I" Module FvwmButtons
#+ "I" exec xsetroot -mod 2 2 -fg \#554055 -bg \#705070
Commentando queste righe si eliminerà da FVWM2 il gradevole "task launcher" , il che è corretto in quanto si cerca di creare un ambiente più semplice possibile.
Netscape Navigator è una scelta migliore di Netscape Communicator per configurare un chiosco. Essendo più semplice, ci sono meno oggetti da nascondere.
Su Microsoft Windows, Netscape Navigator ha una modalità chiosco che elimina la maggior parte dei controlli del Navigator ma, al momento della presente stesura, non c'è una modalità chiosco integrata nella versione Unix del Navigator.
La versione Unix può, nondimeno, essere invocata con un argomento
-geometry
che permette di avviare Netscape sempre in modalità a
pieno schermo. Questa è una parte della nostra strategia per un chiosco basato
su Netscape.
Si deve prendere una decisione sulla risoluzione dello schermo del chiosco. Usando un monitor da 19 o 20 pollici, è nostra opinione che la 640x480 sia troppo larga, la 1024x768 troppo stretta e la 800x600 praticamente giusta per il pubblico (si può decidere diversamente). Una volta stabilita la risoluzione, si può iniziare ad adattare il Navigator. Per il seguito di questo HOWTO si assume la risoluzione a 800x600. Sarà necessario adeguarsi di conseguenza se si seleziona una risoluzione diversa.
Nota: Navigator sarà invocato da root durante il boot, quindi si facciano
tutti gli adattamenti sotto l'account di root nella directory /root/.netscape
.
Si invochi Netscape e si clicchi sulla voce Edit|Preferences
.
In Appearance
si imposti "Show Toolbar as Text Only".
In Appearance|Fonts
si usino i font, sia a spaziatura fissa che proporzionale,
ad almeno 14 punti, altrimenti la visualizzazione sullo schermo sarà troppo
piccola per permettere una lettura confortevole.
In Preferences|Navigator
s'inserisca l'URL dell'home page del vostro
chiosco. Se si sta eseguendo una versione locale di Apache o di un altro server
web, lo si imposti a http://localhost/
per l'accesso alla home page, o
più in profondità nell'albero dei documenti html, se si vuole.
Dopo aver salvato queste opzioni, si clicchi View
sulla barra dei menù di
Navigator, per deselezionare Personal Toolbar
e Location Bar
.
Visto come l'interfaccia è diventata più simile a un chiosco? All'uscita da Navigator queste impostazioni saranno salvate.
Guardando attentamente lo schermo già adattato di Navigator, si noteranno quattro aree che devono essere coperte e protette dai clic del mouse o della trackball:
Ecco uno schema approssimativo delle aree da mascherare:
+---------------------------------------+
| # 1 Barra degli strumenti |
+--+------------+-----------------------+
|#2| | #3 Barra navigazione |
+--+ +-----------------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+---------+ |
|#4 Chiave| |
+---------------------------------------+
<!--? la key ora sta in basso a dx no?-->
Per mascherare le aree in alto (#1-3), saranno necessarie tre immagini. Per mascherare la chiave di sicurezza (#4) si utilizzerà xdaliclock.
Il modo più facile per creare le maschere grafiche per coprire le aree #1-3 è di catturare uno screenshot di Navigator in modalità estesa 800x600 e poi ritagliare le aree che corrispondono a #1-3. Ho usato GIMP per questo.
Si può poi ridisegnare la grafica di base, cambiando i colori se si vuole o inserendovi il proprio logo. Salvarli come:
I formato xpm è quello nativo per le bitmap di X Window. Si utilizzerà il programma X Window sxpm per posizionarle sullo schermo.
Creare le maschere con esattamente il giusto numero di pixel ed esattamente il giusto posizionamento sul monitor richiede un po' di prove. Per convenienza, ho messo a disposizione i file xpm che abbiamo creato insieme ai nostri file di configurazione nel seguente sito web: http://www.rom.on.ca/kiosk/HOWTO/. Sarà più semplice scaricare le nostre maschere ed usarle come punto di inizio per la propria soluzione.
/root/kiosk.xinitrc
Proprio come se si creasse normalmente un file .xinitrc
per uso
personale, si deve creare un file di inizializzazione di sessione X Window
per l'applicazione chiosco.
Lo script seguente implementa un certo numero di caratteristiche:
Questo è il file principale che gestisce il chiosco.
#!/bin/sh # kiosk.xinitrc -- Script di inizializzazione per la sessione X Window modalità chiosco # Start screensaver /usr/X11R6/bin/xscreensaver-command -exit /usr/X11R6/bin/xscreensaver & # Maschere sovrapposte a Navigator (maschera num.1) sxpm /root/navtop.xpm & # Piccola sovrapposizione grafica sul tornado della Toolbar - lato sinistro (maschera num.2) sxpm -g +0+23 /root/navleft.xpm & # Sovrapposizione grafica più ampia per coprire tutto ciò che si trova # alla destra della Home sulla Toolbar (maschera num.3) sxpm -g +275+23 /root/navright.xpm & # Pone xdaliclock sopra la chiave di sicurezza Netscape, abbassa lhc (maschera num.4) /usr/X11R6/bin/xdaliclock -g 38x20+0+578 -font fixed -noseconds \ -bg gray -fg black & sleep 2 # Lancia fvwm2 fvwm2 & # rilancia netscape in caso si chiuda while true ; do if [ -f /.netscape/lock] ; then rm /.netscape/lock fi /usr/bin/netscape -geometry 800x600 done # non si dovrebbe mai arrivare sin qui
/root/xkiosk
Adesso si può iniziare a testare la configurazione del chiosco.
Dal momento che sarà necessario farlo ripetutamente, a mano ed anche con
uno script di inizializzazione, si crei il seguente script di shell, chiamato
/root/xkiosk
:
/usr/X11R6/bin/xinit /root/kiosk.xinitrc -- /usr/X11R6/bin/X \ -xf86config /root/kiosk.XF86Config bc
Siccome si vuole testare spesso e riusarlo più tardi quando l'avvio sarà
automatizzato, si crei /root/xkiosk
. Ci si assicuri di renderlo
eseguibile con chmod ug+x
.
In condizioni normali (i.e. chiosco), Linux dovrebbe avviarsi subito nella modalità chiosco. Nel caso di interruzione di corrente e di riavvio del sistema accidentale o programmato, si deve configurare il sistema per farlo.
Per il nostro chiosco abbiamo deciso di utilizzare per la modalità chiosco il
livello di init 4, che di solito non è usato. Abbiamo apportato i seguenti
cambiamenti a /etc/inittab
:
/etc/inittab
# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - Kiosk mode # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:4:initdefault:
/etc/rc.d/rc.4/S99xkiosk
Per inizializzare il chiosco dopo tutti gli altri servizi, compresi, nel nostro caso,
Apache e MySQL, si crei il file /etc/rc.d/rc.4/S99xkiosk
:
#!/bin/bash # # S99xkiosk Inizializzazione del chiosco per runlevel 4 # # Autore: Gene Wilburn <genew@rom.on.ca> # # Mostra un messaggio in console echo "Avvio del chiosco X Window... " if [ -f /.netscape/lock] ; then rm /.netscape/lock fi # Log dell'attività di X echo %%%%%%%%%%%%%Reboot%%%%%%%%%% >> /var/log/xlog /root/xkiosk # Qui si dovrebbe arrivare solo premendo Ctrl-Backspace /sbin/shutdown -r now # Finito.
Una volta creato questo file ed adattato inittab per partire al runlevel 4, Linux si avvierà direttamente nella modalità chiosco. Nel nostro chiosco abbiamo disabilitato il telnet e l'ftp e installato ssh, così da mantenere ed amministrare da remoto il chiosco con ssh e scp.
Ci sono momenti in cui, specialmente durante i test, si vuole lavorare dalla console nel normale runlevel 3. Per fare questo, si prema Ctrl-Backspace per riavviare il sistema. Quando appare LILO: si digiti:
LILO: linux init 3
e si faccia login come di consueto.
A seconda di dov'è installato il chiosco, si potrebbe volere che non appaiano tutte le immagini dello screensaver di default. Per la nostra Hands-On Biodiversity Gallery volevamo mostrare solo il frattale animato che suggeriva argomenti di scienza della vita.
Dopo aver testato vari screensaver, abbiamo deciso di selezionare in modo casuale due possibilità: coral e forest.
Per costringere xscreensaver a mostrare solo questi due, abbiamo creato il file
.xscreensaver
nella directory root ("/") con le seguenti opzioni:
/.xscreensaver
programs: \ coral -root \n\ forest -root \n
La nostra macchina per il chiosco contiene una scheda Sound Blaster AWE64 con degli altoparlanti connessi. Abbiamo scelto questa scheda perché funziona bene con i driver audio di Linux.
Il database MySQL che fa funzionare il nostro chiosco della Biodiversity Gallery punta ad una collezione di file sonori che un visitatore può ascoltare, incluso un quiz sul verso degli uccelli. Il lato negativo nell'usare Netscape su Linux per un chiosco è che per alcuni aspetti il multimedia è primitivo, comparato con Windows e Macintosh.
Per abilitare gli effetti sonori, abbiamo implementato un plugin per Unix Netscape chiamato Xswallow scritto da Caolan McNamara ( http://skynet.csn.ul.ie/~caolan/docs/XSwallow.html). Tutti i plugin che abbiamo testato creano una pagina web separata mentre il suono è riprodotto (a meno che il file sonoro non sia integrato). Tra i programmi che abbiamo testato, Xswallow è stato il migliore ed ha dato la pagina di visualizzazione più pulita.
Sebbene la pagina supplementare costituisca un inconveniente, abbiamo deciso che avere la stabilità di Linux era più importante del clic aggiuntivo richiesto per ritornare alla schermata precedente.
Un problema ulteriore è che quando un suono è selezionato, la pagina di
Xswallow mostra "Click to Abort Swallow of type audio/basic".
Cliccando ritorna solamente una pagina vuota. Ho fatto un piccolo cambiamento
al codice sorgente dell'autore in UnixShell.c
, modificando
char *text2 = "Click to Abort Swallow";
in
char *text2 = "Clicca il pulsante BACK per tornare alla schermata principale";
La frase "of type audio/basic" sembra arrivare direttamente da Netscape piuttosto che da Xswallow.
Dopo la ricompilazione, ho aggiunto il plugin a Netscape.
Un'ultima nota riguardo i file sonori: l'insieme originale di file che abbiamo ricevuto era un misto di file .au e .wav. La nostra esperienza è stata che i file .au in Linux erano più affidabili ed abbiamo convertito tutti i file sonori nel formato .au.
Non avendo i fondi per un monitor touchscreen, abbiamo optato per una trackball (e nessuna tastiera) per la navigazione del nostro chiosco. Il nostro collega, Andy Rauer dell'Ontario Science Centre in Toronto, ci ha suggerito di usare componenti per trackball di uso industriale della Happ Conrols Inc. di Elk Grove Village (Illinois) http://www.happcontrols.com/ (cercare nella loro sezione Interactives).
Una delle cose che dovevamo fare era disabilitare ogni azione equivalente al clic del bottone destro in Netscape Navigator, in quanto gli eventi del bottone destro invocano i dialoghi utente.
Costruendo la nostra trackball, siamo stati in grado di assemblarla nel modo che volevamo. Abbiamo collegato due controlli di tipo pulsante, entrambi equivalenti al bottone sinistro del mouse. I bottoni sono stati sistemati su entrambi i lati della trackball, permettendo un facile utilizzo da parte dei visitatori sia destri che mancini. I nostri progettisti della galleria hanno poi preso i pezzi della trackball e li hanno assemblati nella recinzione del chiosco nella galleria.
Per il nostro chiosco abbiamo acquistato i seguenti componenti per costruire una trackball robusta progettata per resistere all'uso (e all'abuso) dei visitatori:
Da un rivenditore di elettronica locale, abbiamo acquistato un maneggevole involucro di plastica della Hammond Manufacturing (Cat no. 1591ABK) per ospitare il circuito elettronico per la trackball.
In ordine alla possibilità di aggiungere (e di rottura di qualche pezzo), abbiamo ordinato come pezzi di ricambio e test quattro gruppi per ogni pezzo sopracitato.
Nel migliore di tutti i mondi possibili, si avrà la possibilità di progettare le pagine del vostro chiosco da zero. Tenendo presente che usare un chiosco è una esperienza diversa dal sedersi alla scrivania navigando nel web da una workstation individuale, le seguenti linee guida sono utili principi di progettazione:
Sfortunatamente qualche volta si erediteranno pagine che erano state create per la navigazione web piuttosto che per la navigazione in un chiosco. In questi casi potrebbe essere troppo dispendioso in termini di tempo o troppo difficile rimodellarle come pagine per un chiosco. Quando si realizzano pagine web standard per una visualizzazione in un chiosco:
I nostri precedenti tentativi nel creare chioschi basati su browser con PC basati su Windows non sono stati soddisfacenti. Le unità erano instabili, si bloccavano frequentemente. L'approccio Linux ci ha permesso di ottenere un chiosco affidabile, adatto ad un luogo pubblico e robusto, che ha resistito perfettamente all'utilizzo dei visitatori. Il nostro successo con questo progetto ci ha portato a considerare altre possibilità di chiosco.
Uno dei nostri obiettivi futuri è l'implementazione di chioschi remoti nell'area metropolitana di Toronto, dove le persone possano consultare qualche informazione sul nostro sito e, si spera, essere attratte abbastanza da visitare il museo di persona. Queste possono essere distribuite in luoghi come convegni, manifestazioni commerciali, grandi magazzini o esposizioni particolari. Stiamo inoltre pensando in termini di distribuzione dei chioschi in luoghi più distanti, forse nelle librerie pubbliche.
Per questo progetto vorremmo verosimilmente implementare delle Linux box basate su modem che possano "chiamare casa" per aggiornare i file in base ad una procedura di routine e possano essere contattate per manutenzioni ed aggiornamenti.
Quando la tecnologia diventerà più economica, vorremmo sperimentare per i chioschi i monitor touchscreen a schermo piatto. La combinazione di touchscreen a schermo piatto e unità PC molto piccole ci permetterebbe di distribuire chioschi che occupano una superficie assai limitata.
Infine potremmo avere bisogno di distribuire chioschi che utilizzano
tastiere. Questo presenterà un nuovo insieme di esigenze in termini di
bloccare pressioni indesiderate di tasti. Chiunque volesse contribuire
con informazioni a riguardo, o su ogni altro aspetto del Kiosk-HOWTO,
per cortesia spedisca un'email a genew at rom.on.ca
o al mio
indirizzo email alternativo njo at interlog.com
.
Sarei molto interessato a collaborare con altri costruttori di chioschi per estendere il Kiosk-HOWTO ad altre situazioni. I chioschi sono un po' come il Perl: "C'è più di un modo per farlo".