Realizzare un Kiosk Touch con Porteus

From RVM Wiki
Revision as of 16:38, 13 September 2016 by Gabriele.vivinetto (talk | contribs) (Created page with "Porteus è una distribuzione Linux live specifica per la realizzazione di chioschi interattivi basati su Firefox o Chrome. La versione base si installa da chiavetta USB e si ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Porteus è una distribuzione Linux live specifica per la realizzazione di chioschi interattivi basati su Firefox o Chrome.

La versione base si installa da chiavetta USB e si configura al primo avvio.

Per renderla più gestibile è possibile

  • Impostare la gestione della configurazione da remoto
  • Attivare una tastiera touch con Firefox

Impostazione della configurazione da remoto

  • Portare a termine la configurazione voluta, senza installare porteus
  • Visualizzare via web dall'installazione la configurazione
  • Esportare la configurazione via webmail o tramite un servizio tipo pastebin
  • Copiare il file di configurazione su un webserver
  • Rifare la configurazione specificando l'url di configurazione remota che punti al file precedentemente creato
  • Un esempio di file è
connection=wired
network_interface=eth0
dhcp=yes
proxy=
browser=firefox
disable_firewall=yes
homepage=http://www.example.com/kioskhome.html
hostname=mykiosk01
session_idle_forced=10
primary_keyboard_layout=it
disable_navigation_bar=yes
kiosk_config=hhttp://www.example.com/porteus/mykiosk01.txt
disable_private_mode=yes
root_password=secretPassword
timezone=Europe/Rome
vnc_interactive=yes
vnc_password=secretP
wake_on_lan=yes
disable_zoom_controls=yes
additional_components=09-x11vnc.xzm uefi.zip 08-ssh.xzm 07-java.xzm 06-fonts.xzm 05-flash.xzm 
  • In questo modo, basta modificare la configurazione sul webserver, riavviare il kiosk: verrà riconfigurato con i nuovi parametri

Riferimenti


Attivazione della tastiera touch in firefox

  • Firefox dispone di un addon FXKeyboard che fa apparire una tatsiera ogni volta che si clicca in un campo testo.
  • Per attivarla, è necessario creare una versione customizzata di porteus che comprenda questo addon
  • Verificare la versione di firefox utilizzata da porteus, consultando http://whatismybrowser.com durante l'installazione
  • Scaricare la versione ESR di firefox corrispondente
  • Lanciarla creando un profilo vuoto:
./firefox -no-remote -ProfileManager
  • Installare l'addon
  • Copiare i files:
addons.json
extensions.ini
extensions.json

  • Rimuovere i riferimenti ad altri addon da questi files
  • Impostare come percorso dell'addon
/home/guest/.mozilla/firefox/c3pp43bg.default/
  • Esempio di
addons.json
{"schema":5,"addons":[]}
  • Esempio di
extensions.ini
[ExtensionDirs]
Extension0=/home/guest/.mozilla/firefox/c3pp43bg.default/extensions/fxkeyboard@zabreznik.net.xpi

[MultiprocessIncompatibleExtensions]
Extension0=fxkeyboard@zabreznik.net
  • Esempio di
extensions.json
{"schemaVersion":17,"addons":[{"id":"fxkeyboard@zabreznik.net","syncGUID":"PbGs1ts4cQGl","location":"app-profile","version":"2.4.2.1-signed.1-signed","type":"extension","internalName":null,"updateURL":null,"updateKey":null,"optionsURL":null,"optionsType":null,"aboutURL":null,"icons":{"32":"icon.png","48":"icon.png"},"iconURL":null,"icon64URL":null,"defaultLocale":{"name":"FxKeyboard","description":"A virtual keyboard for Firefox","creator":"Marko Zabreznik","homepageURL":"http://zabreznik.net"},"visible":true,"active":true,"userDisabled":false,"appDisabled":false,"descriptor":"/home/guest/.mozilla/firefox/c3pp43bg.default/extensions/fxkeyboard@zabreznik.net.xpi","installDate":1473775035000,"updateDate":1473775035000,"applyBackgroundUpdates":1,"bootstrap":false,"skinnable":false,"size":112319,"sourceURI":null,"releaseNotesURI":null,"softDisabled":false,"foreignInstall":true,"hasBinaryComponents":false,"strictCompatibility":false,"locales":[],"targetApplications":[{"id":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","minVersion":"4.0.*","maxVersion":"16.*"}],"targetPlatforms":[],"multiprocessCompatible":false,"signedState":2,"seen":true}]}
  • Esempio di (solo le ultime righe aggiunte)
prefs.js
# Mozilla User Preferences

/* Do not edit this file.
 *
 * If you make changes to this file while the application is running,
 * the changes will be overwritten when the application exits.
 *
 * To make a manual change to preferences, you can visit the URL about:config
 */

user_pref("accessibility.browsewithcaret_shortcut.enabled", false);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("browser.backspace_action", 0);
user_pref("browser.bookmarks.restore_default_bookmarks", false);
user_pref("browser.cache.disk.capacity", 0);
user_pref("browser.cache.disk.smart_size.enabled", false);
user_pref("browser.cache.disk.smart_size.first_run", false);
user_pref("browser.fullscreen.animate", false);
user_pref("browser.link.open_newwindow.disabled_in_fullscreen", true);
user_pref("browser.link.open_newwindow.restriction", 0);
user_pref("browser.migration.version", 36);
user_pref("browser.newtabpage.directory.ping", "");
user_pref("browser.newtabpage.directory.source", 'data:application/json,{}');
user_pref("browser.newtabpage.enhanced", false);
user_pref("browser.newtabpage.introShown", true);
user_pref("browser.pocket.enabled", false);
user_pref("browser.privatebrowsing.autostart", true);
user_pref("browser.rights.3.shown", true);
user_pref("browser.safebrowsing.appRepURL", "");
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.safebrowsing.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.search.geoip.url", "");
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.search.update", false);
user_pref("browser.selfsupport.url", "");
user_pref("browser.sessionstore.resume_from_crash", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.startup.homepage_override.mstone", "ignore");
user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.tabs.warnOnCloseOtherTabs", false);
user_pref("browser.tabs.warnOnOpen", false);
user_pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
user_pref("dom.max_chrome_script_run_time", 0);
user_pref("dom.max_script_run_time", 0);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.blocklist.enabled", false);
user_pref("extensions.update.autoUpdateDefault", false);
user_pref("full-screen-api.warning.timeout", 0);
user_pref("geo.enabled", false);
user_pref("media.gmp-gmpopenh264.autoupdate", false);
user_pref("media.gmp-gmpopenh264.enabled", false);
user_pref("media.gmp-gmpopenh264.provider.enabled", false);
user_pref("network.auth.force-generic-ntlm-v1", true);
user_pref("network.automatic-ntlm-auth.allow-non-fqdn", true);
user_pref("network.protocol-handler.external.mailto", false);
user_pref("network.protocol-handler.external.news", false);
user_pref("network.protocol-handler.external.nntp", false);
user_pref("network.protocol-handler.external.snews", false);
user_pref("plugin.default.state", 2);
user_pref("plugin.state.java", 2);
user_pref("privacy.trackingprotection.pbmode.enabled", false);
user_pref("reader.parse-on-load.enabled", false);
user_pref("security.OCSP.enabled", 0);
user_pref("signon.autologin.proxy", true);
user_pref("signon.rememberSignons", false);
user_pref("toolkit.startup.max_resumed_crashes", -1);
user_pref("ui.key.menuAccessKeyFocuses", false);
user_pref("xpinstall.signatures.required", false);

user_pref("extensions.e10sBlockedByAddons", true);
user_pref("extensions.enabledAddons", "fxkeyboard%40zabreznik.net:2.4.2.1-signed.1-signed");
user_pref("extensions.xpiState", "{\"app-profile\":{\"fxkeyboard@zabreznik.net\":{\"d\":\"/home/guest/.mozilla/firefox/c3pp43bg.default/extensions/fxkeyboard@zabreznik.net.xpi\",\"e\":true,\"v\":\"2.4.2.1-signed.1-signed\",\"st\":1473775035000}}}");
  • Scompattare la ISO di porteus
  • Spostarsi in
cd Porteus-Kiosk-4.1.0-x86_64/xzm
  • Scompattare 003-settings.xzm
unsquashfs 003-settings.xzm
  • Spostarsi in
cd squashfs-root/home/guest/.mozilla/firefox/c3pp43bg.default/
  • Copiare i files precedentemente modificati qui
  • Ricreare il file .xzm
cd -
mksquashfs squashfs-root 003-settings.xzm  -comp xz -b 256K -noappend
  • Rimuovere
squashfs-root
  • Installare mkisofs o copiarla dal sito porteus in /usr/local/bin
  • Ricreare la iso con
cd ..
sudo ./make_iso.sh
  • Verrà generato
../Porteus-Kiosk.iso
  • Modificare la iso per essere scrivibile su chiavetta USB:
cd ..
sudo isohybrid -type 0x83 -offset 1 -h 255 -s 63 Porteus-Kiosk.iso
  • Testarla

Riferimenti