Installation et configuration de la borne

Installation : voir la doc Client léger.

Login automatique

Editer le fichier /etc/lightdm/lightdm.conf.

Dans la section [Seat:*], décommenter la ligne autologin-user et renseigner l’utilisateur qui sera authentifié automatiquement.

Ecran tactile

  1. Lister les périphériques d’entrée : xinput --list et repérer le tactile (ex: ZTouch Rct6 id=11)

  2. Lister les écrans : xrandr et repérer l’écran qui doit gérer le tactile (ex: HDMI-2)

  3. Lier les deux : xinput map-to-output <id> <ecran> Exemple : xinput map-to-output 11 HDMI-2

  4. Rendre permanent

Créer le fichier /etc/lightdm/touchscreen avec le contenu :

#!/bin/sh
xinput map-to-output <id> <ecran>

Le rendre exécutable : chmod +x /etc/lightdm/touchscreen

Editer le fichier /etc/lightdm/lightdm.conf.

Dans la section [Seat:*], décommenter la ligne et renseigner : display-setup-script=/etc/lightdm/touchscreen

Script de détection de l’id du touch

Exemple avec xinput --list :

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse              	id=9	[slave  pointer  (2)]
⎜   ↳ ZTouch Rct6                             	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ LITEON Technology USB Multimedia Keyboard	id=10	[slave  keyboard (3)]
    ↳ ZTouch Rct6  Keyboard                   	id=11	[slave  keyboard (3)]
    ↳ USBKey Chip USBKey Module               	id=13	[slave  keyboard (3)]

Le périhpérique à utiliser : ZTouch Rct6 id=12 [slave pointer (2)]

Ensuite xrandr

Screen 0: minimum 320 x 200, current 1080 x 1920, maximum 8192 x 8192
LVDS-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +  59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected primary 1080x1920+0+0 left (normal left inverted right x axis y axis) 575mm x 323mm
   1920x1080     60.00*+  60.00    50.00    59.94    24.00    23.98  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     60.02  
   1280x960      60.00  
   1366x768      59.96  
   1280x800      59.91  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32    56.25  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       60.00    59.94  
   720x400       70.08  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)

La sortie à utiliser : HDMI-2

Script :

#!/bin/bash

set -e

SCREEN_ID=HDMI-2
TOUCH_ID=$(xinput --list | grep -Ei "ZTouch" | grep "pointer" | grep -oEi 'id=[0-9]+' | cut -d = -f 2)
xinput map-to-output $TOUCH_ID $SCREEN_ID

Si le tactile n’est toujours pas bon

Symptôme : déplacement du doigt vertical, curseur souris horizontal

  • Commenter la ligne autologin-user pour vérifier que l’écran de login est dans la bonne orientation TODO

Sortie son

Installer pavucontrol :

apt-get install pavucontrol

Lancer pavucontrol, aller sur l’onglet Configuration, dans la liste Profil, choisir Digital Stereo (HDMI) Ouput (ou le matériel approprié).

Installation définitive

systemctl disable --now lightdm

/etc/systemd/system/chromium.service

[Unit]
Requires=setup-x.service
After=setup-x.service

[Service]
User=isinc
Environment=DISPLAY=:0
ExecStart=/usr/bin/chromium --kiosk --start-maximized --incognito http://isi.nc
 
Restart=always
RestartSec=1
 
[Install]
WantedBy=multi-user.target

/etc/systemd/system/setup-x.service

[Unit]
Requires=x.service
After=x.service

[Service]
Type=notify
Environment=DISPLAY=:0
ExecStart=/usr/local/bin/setup-x

[Install]
WantedBy=multi-user.target

/etc/systemd/system/x.service

[Service]
ExecStart=/usr/bin/X :0
#ExecStartPost=/usr/local/bin/setup-x

[Install]
WantedBy=multi-user.target

/etc/systemd/system/x11vnc.service

[Unit]
Description=x11vnc remote desktop server
Requires=setup-x.service
After=setup-x.service

[Service]
#Type=forking
#ExecStart=/usr/bin/x11vnc -forever -shared -bg -xkb -norc -rfbauth /etc/x11vnc.pass -display :0 -auth guess -o /var/log/x11vnc.log
ExecStart=/usr/bin/x11vnc -rfbauth /etc/x11vnc.pass -forever -shared -xkb -display :0 -noxdamage
 
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

/usr/local/bin/setup-x

#! /bin/sh

set -e

export DISPLAY=:0

notified=false

while sleep 1; do

xrandr |grep HDMI-2 ||continue
xrandr |grep HDMI-2.*primary && {
  sleep 1m
  continue
}

echo "setting up X..."

xrandr --output LVDS-1 --off
xrandr --output HDMI-2 --off
xrandr --output HDMI-2 --auto --rotate left --primary

if ! $notified; then
  systemd-notify --ready
  notified=true
fi
done