Bonjour,
J’ai un projet domotique utilisant Jeedom sur un raspberry PI 4 et je souhaite installer un écran tactile pour le pilotage. J’ai suivi plusieurs tuto pour mettre en place un autologin et démarrer Chromium en mode Kiosk mais je coince depuis plusieurs jours sur une erreur « XIO : fatal IO error 2 (No such file or directory) on X server ».
J’aurais du mal à revenir sur tout ce que j"ai fait exactement et à force de bidouiller à droite et à gauche je suis même sur le point de flasher à nouveau l’OS pour recommencer. Mais avant ça, je souhaite d’abord comprendre ce qui ne va pas.
Voici avec les quelques notes que j’ai pris les différentes étapes de mon installation. Tout n’est peut être pas dans l’ordre, j’ai exploré mon .bash_history pour essayer de trier…
-
Tout d’abord, j’ai activé le boot USB, je ne pense pas que cela ai de lien avec mon problème mais bon
-
J’ai téléchargé et flashé l’image Raspbian buster lite (version du 10/07/2019) sur un SSD que j’ai donc branché en USB, j’ai activé le SSH
A ce stade, j’ai donc déjà un OS qui fonctionne et je peux m’y connecter en SSH ainsi que directement en avec clavier et souris. L’écran tactile est connecté et fonctionne, mais pour me faciliter la vie je connecte également un grand écran en HDMI (affichage dupliqué sur les deux écrans).
- J’ai ensuite procédé aux mises à niveau qui semblent être un classique (tous les tutos commencent par ça) et installé les packages que je souhaite utiliser :
sudo apt update
sudo apt full-upgrade
sudo apt-get install chromium-browser unclutter lightdm
A noter : j’ai choisi le display manager « lightdm »… parce que c’est ce que j’ai trouvé dans les tutos.
- J’ai exécuté le script d’installation Jeedom :
wget -O- https://raw.githubusercontent.com/jeedom/core/master/install/install.sh | sudo bash
Pour info : j’ai essayé d’installer directement l’OS fournit sur le site Jeedom mais j’avais une erreur sur le fichier « start4.elf » (non compatible), je me suis rabattu sur le script en pensant que cela est plus simple.
Après reboot, j’arive à me connecter à Jeedom depuis mon PC en utilisant l’adresse IP du Raspberry.
-
J’ai créé un utilisateur « kiosk » spécifique pour l’autologin : ce n’était dans aucun des tuto que j’ai trouvé, mais faire un autologin sur un sudoer ne me semblait pas un bonne pratique
-
En ensuite j’ai tenté de configurer le tout… J’ai modifié les fichiers autologin.conf et lightdm.conf, et j’ai créé le fichier .Xsession et configuré le lancement automatique de chromium-browser dans le home de l’utilisateur « kiosk ».
J’en arrive donc à mon erreur « XIO : fatal IO error 2 (No such file or directory) on X server ».
J’ai pas mal bidouillé le fichier ci-dessus pour essayer de résoudre le problème en me basant sur différents forums, mais je n’y arrive pas.
Initialement, j’avais aussi des erreurs chromium, mais je suppose qu’elles sont dûes à celle ci-dessus qui arrive en premier dans les logs xsession-errors.
Voici ce que j’ai tenté :
- J’ai modifié la configuration pour tenter un autologin sur l’utilisateur root mais j’ai la même erreur
- En désactivant le xsession (suppression du fichier ou en commentant toutes les lignes), l’autologin fonctionne et je tombe sur un terminal en mode graphique, aussi bien pour l’utilisateur root que pour l’utilisateur kiosk
- J’ai également trouvé une doc lightdm qui indique qu’il faut créer un groupe « autologin » et y affecter le user à loguer, mais ça n’a rien changé : sudo groupadd -r autologin ; sudo gpasswd -a kiosk autologin
J’ai consulté et tenter de comprendre plusieurs logs lightdm, Xorg, xsession, etc… Je ne suis pas sûr de tout comprendre, mais j’ai l’impression qu’il y a bien un display « :0 » qui est créé mais ensuite il y a un display « :1 » qui apparait dans les logs. J’ai cherché à changer le display utilisé mais je trouve pas comment faire.
Les fichiers de config actuels sont :
======== /etc/systemd/system/getty@tty1.service.d/autologin.conf =======
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM
========== ~/.Xsession ============
xset s off
xset -dpms
xset s noblank
sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
#chromium-browser --noerrdialogs --kiosk --incognito --disable-translate --window-size=1920,1080 --window-position=0,0 http://127.0.0.1/index.php?v=d&p=plan&plan_id=1&fullscreen=1
================= /etc/lightdm/lightdm.conf =====================
[LightDM]
logind-check-graphical=true
[Seat:*]
autologin-user=admin
[XDMCPServer]
[VNCServer]
Sur le fichier lightdm.conf j’ai aussi essayé d’ajouter la ligne « autologin-session=lightdm-xsession » mais ça ne change rien.