Erreur xsession : fatal IO error 2 (No such file or directory) on X server

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…

  1. Tout d’abord, j’ai activé le boot USB, je ne pense pas que cela ai de lien avec mon problème mais bon

  2. 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).

  1. 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.

  1. 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.

  1. 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

  2. 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.

Salut @Tiess

Ton problème ne serait pas simplement que tu essayes de lancer Chromium alors que tu tournes sur une installation de RaspberryPiOS Lite ?

  • L’installation de lightdm a fonctionné ?
  • Tu arrives à utiliser le raspberry en mode graphique sans souci ?

++

Le mode graphique fonctionne sans soucis. Avec l’autologin et en supprimant ou commantant le fichier .Xsession, le log se passe correctement et un terminal graphique s’affiche (visuel un peu différent du terminal sans mode graphique). En laissant le fichier .Xsession l’autologin échoue et j’ai l’écran de saisie du user et mot de passe qui s’affiche, toujours en mode graphique (fenêtre de saisie sur fond d’écran). Par contre dans ce cas impossible de me loguer : je n’ai pas d’erreur de mot de passe mais la fenêtre disparaît puis revient, l’erreur semble provoquer un échec de la connexion.

Si j’ai choisi la version lite c’est pour limiter les packages installés au minimum.

Yo,
Il ne faut pas installer le serveur xserver-xorg et un bureau comme pixel raspberrypi-ui-mods ou d’autres en sus de LightDM (gestionnaire d’affichage) ?

Re,

Allez ; on y va ; c’est pour le bien de la science ! (en plus d’aider @Tiess évidemment)

Test sur mon rpi0video (un RpiZero configuré avec RaspberryPiOS Lite et un script pour lire des vidéos en boucle en automatique dès le démarrage avec cvlc)

Capture d’écran du 2022-10-31 21-10-43
En voulant passer en autolog en GUI via raspi-config, on me dit clairement d’installer lightdm


Là, automatiquement, installation de xserver-xorg (et d’autres) + on me dit d’installer gnome ou kde ou xfce …

Je « reboot »
Là, ma demande « Desktop Autologin Desktop GUI » est acceptée dans raspi-config

Je « reboot »
(c’est lent un RpiZero)
Affichage cassé ; ce n’est pas du vrai graphique ce truc :sweat_smile:
(juste une sorte de terminal)

Je tente sudo apt install raspberrypi-ui-mods
La vache ; ça cause :


Pas le meilleur choix (ça ajoute +++), mais je tente un « o » pour voir.

J’attends … (pffff … Long … Vais faire 3 séries de 15 pompes en attendant … et même un Pac-Man sur Nintendo) et je lance un « reboot » …

Là, OK, le redémarrage se fait (lentement) en mode graphique classique (en auto-log)
(j’ai installé VNC en sus pour la capture)

Bref,
Sans doute pas le meilleur choix, mais ça fonctionne.
(et moi, je n’ai plus qu’à recommencer toute mon install au propre sur un lite minimaliste :sweat_smile: :blush:)

++