Créer une borne tactile magasin (kiosk Intel NUC + Ubuntu 18.04)
Sommaire
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é).
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
kiosk
avec 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à :
$ sudo apt update && sudo apt upgrade -y
$ 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 :
sudo 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 :
$ sudo apt-get install openssh-server -y
$ 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) :
$ sudo chmod a-x /usr/bin/gnome-keyring*
$ sudo killall gnome-keyring-daemon
Mettre en place l’auto-update avec unattended-upgrades
:
$ sudo apt-get install unattended-upgrades -yes
$ 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 :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
Configuration du mode kiosk #
Création du script d’autorun de chromium, partie 1 :
sudo mkdir /home/kiosk/.config/autostart
sudo nano /home/kiosk/.config/autostart/kiosk.desktop
Y mettre le contenu suivant :
[Desktop Entry]
Type=Application
Name=Kiosk
Exec=/home/kiosk/kiosk.sh
X-GNOME-Autostart-enabled=true
Création du script d’autorun de chromium, partie 2 :
sudo nano /home/kiosk/kiosk.sh
Y mettre le contenu suivant :
#!/bin/bash
# Run this script in display 0 - the monitor
export DISPLAY=:0
# Hide the mouse from the display
unclutter &
# If Chromium crashes (usually due to rebooting), clear the crash flag so we don't have the annoying warning bar
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences
# Run Chromium and open tabs
/usr/bin/chromium-browser --window-size=1920,1080 --kiosk --window-position=0,0 http://ghost.bajuno.fr &
# Start the kiosk loop. This keystroke changes the Chromium tab
# To have just anti-idle, use this line instead:
# xdotool keydown ctrl; xdotool keyup ctrl;
# Otherwise, the ctrl+Tab is designed to switch tabs in Chrome
# #
while (true)
do
xdotool keydown ctrl+Tab; xdotool keyup ctrl+Tab;
sleep 15
done
On le rend exécutable :
sudo 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