3 votes

Comment utiliser l'affichage local à distance

J'ai un ordinateur Linux sur lequel je peux me connecter à distance via ssh et ssh -Y.

Une application que j'aimerais utiliser utilise GLFW. Avant la pandémie, je pouvais travailler à distance sans problème car il y avait un utilisateur connecté localement (moi).

Maintenant, j'ai dû redémarrer la machine et bien que je puisse me connecter en ssh, aucun utilisateur ne s'est connecté depuis le redémarrage. Par conséquent, mon application ne démarre pas. J'obtiens :

Impossible d'initialiser la bibliothèque GLFW

car l'application essaie d'ouvrir un affichage. (Je me moque de cet affichage, l'application produit des fichiers de sortie auxquels je peux accéder à distance)

J'ai essayé d'exporter l'affichage avec export DISPLAY=[mon adresse IP]:0 et j'ai réussi à faire fonctionner xterm. Mais cela ne me sert à rien, car mon application nécessite quelque chose avec OpenGL :

que() : Erreur GLFW: GLX : La compatibilité ascendante a été demandée, mais GLX_ARB_create_context_profile est indisponible

Alors, ce que je demande :

En utilisant ssh (-Y), comment puis-je me connecter en tant qu'utilisateur comme s'il était assis devant la machine ? Je suppose qu'il manque une partie du démarrage de X.

Si cela peut être utile :

4.15.0-91-generic #92~16.04.1-Ubuntu SMP Fri Feb 28 14:57:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

2voto

ChrisAga Points 869

Voici une solution pour ouvrir un bureau X local pour le superutilisateur à partir d'une connexion ssh distante. J'espère que cela sera utile car je n'arrive pas à le faire fonctionner pour un utilisateur régulier.

1. Connectez-vous à votre machine avec ssh

2. Autoriser tout le monde à ouvrir une session X11 locale sur la console

Vous devez modifier /etc/X11/Xwrapper.config et changer

allowed_users=console

à

allowed_users=anybody

3. Démarrer la session (sudo)

sudo startx

La session X11 démarre (en tant que superutilisateur) et vous pouvez voir les messages normaux de la session X11 sur votre session ssh.

startx ne se termine pas tant que la session X11 n'est pas terminée. Si startx se termine avec des messages d'erreur, quelque chose s'est mal passé.

Il échoue généralement pour un utilisateur régulier

Sur certains systèmes, vous pouvez simplement utiliser startx (ou startx -- vt[number] pour forcer l'utilisation de la console virtuelle) mais en général cela échoue.

Cela semble être lié aux droits d'accès à (au moins) :

  • /dev/tty[number]
  • /dev/dri/card0
  • /dev/fb0

Ces droits devraient être définis par un mécanisme et les forcer avec chown apporte quelques améliorations mais ne résout pas le problème.

Je n'ai pas pu trouver la différence entre le système où startx fonctionne pour l'utilisateur régulier et les systèmes où cela ne fonctionne pas. Ils fonctionnent tous avec ubuntu eoan et autant que je sache, les configurations sont identiques. Seuls les matériels sont différents, en particulier les cartes vidéo.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X