Créer une borne tactile magasin (kiosk Intel NUC + Ubuntu 18.04)
But de l’utilisation
L’idée est de monter soi-même des bornes tactiles qui seront utilisées en point de vente. Les bornes se lanceront et s’éteindront automatiquement chaque jour. Elle seront connectées à un site internet qui servira d’interface (dans mon cas, un wordpress customisé).
Note : Le plus simple reste de mettre en place Porteus Kiosk (voir l’article concernant le fichier de configuration Porteus Kiosk).
Le matériel retenu :
- 1 NUC NUC6CAYH (+ SDD 64Go + 8Go RAM)
- 1 écran tactile Iiyama ProLite T2236MSC-B2
Notons que pour faciliter tout ça, il est utile d’utiliser un clavier et une souris physiques parce que tout se taper au clavier tactile de l’OS, hum…
On commence doucement
- Configurer le NUC pour qu’il se lance automatiquement (c’est dans le BIOS).
- Installer Ubuntu 18.04 (LTS, version desktop) avec une clé USB
- Se loguer avec le compte créé pendant l’installation
- Se rendre dans les paramètres, utilisateurs, et créer un compte
kioskavec le password de son choix - Valider l’ouverture automatique de session pour l’utilisateur
kiosk - Paramétrer le non-arrêt de l’écran (énergie > écran noir > jamais)
On passe au terminal
On ouvre le terminal et place au fun, youpi :)
On va se servir de Chromium ici, alors zou, on attaque par là :
1$ sudo apt update && sudo apt upgrade -y
2$ sudo apt install chromium
Avec Gnome, on a un système de gestures qui rendent l’utilisation plus sympa avec un écran tactile, genre changer d’espace de travail en swipant depuis le bord de l’écran ou fermer une fenêtre en pincant. Mais ça bien entendu on en veut pas sur la borne, alors on commence par installr chrome-gnome-shell pour que Chrome puisse agir sur les gestures :
1sudo apt-get install chrome-gnome-shell
Ensuite, dans Chrome on installe l’extension disable gnome gestures. Hop, une bonne chose de faite.
Configuration du système
Ouvrir le terminal et saisir :
1$ sudo apt-get install openssh-server -y
2$ sudo apt-get install -y chromium-browser unclutter xdotool -y
Enlever la demande de trousseau (ça casse une partie de la sécurité, il est bon de le savoir pour prendre les mesures adéquates en amont) :
1$ sudo chmod a-x /usr/bin/gnome-keyring*
2$ sudo killall gnome-keyring-daemon
Mettre en place l’auto-update avec unattended-upgrades :
1$ sudo apt-get install unattended-upgrades -yes
2$ sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Décommenter la ligne "${distro_id}:${distro_codename}-updates";
Modifier le fichier 20auto-upgrades avec sudo nano /etc/apt/apt.conf.d/20auto-upgrades en mettant le contenu suivant :
1APT::Periodic::Update-Package-Lists "1";
2APT::Periodic::Download-Upgradeable-Packages "1";
3APT::Periodic::AutocleanInterval "7";
4APT::Periodic::Unattended-Upgrade "1";
Configuration du mode kiosk
Création du script d’autorun de chromium, partie 1 :
1sudo mkdir /home/kiosk/.config/autostart
2sudo nano /home/kiosk/.config/autostart/kiosk.desktop
Y mettre le contenu suivant :
1[Desktop Entry]
2Type=Application
3Name=Kiosk
4Exec=/home/kiosk/kiosk.sh
5X-GNOME-Autostart-enabled=true
Création du script d’autorun de chromium, partie 2 :
1sudo nano /home/kiosk/kiosk.sh
Y mettre le contenu suivant :
1#!/bin/bash
2
3# Run this script in display 0 - the monitor
4export DISPLAY=:0
5
6# Hide the mouse from the display
7unclutter &
8
9# If Chromium crashes (usually due to rebooting), clear the crash flag so we don't have the annoying warning bar
10sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
11sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences
12
13# Run Chromium and open tabs
14/usr/bin/chromium-browser --window-size=1920,1080 --kiosk --window-position=0,0 http://ghost.bajuno.fr &
15
16# Start the kiosk loop. This keystroke changes the Chromium tab
17# To have just anti-idle, use this line instead:
18# xdotool keydown ctrl; xdotool keyup ctrl;
19# Otherwise, the ctrl+Tab is designed to switch tabs in Chrome
20# #
21while (true)
22 do
23 xdotool keydown ctrl+Tab; xdotool keyup ctrl+Tab;
24 sleep 15
25done
On le rend exécutable :
1sudo chmod +x /home/kiosk/kiosk.sh
Commandes utiles
Si il faut relancer chromium, se connecter en SSH et lancer la commande suivante :
sudo pkill chromium && /home/kiosk/kiosk.sh