Forum Linux.debian/ubuntu xinit: xf86openconsole cannot open virtual console 7 (permission denied)

Posté par  . Licence CC By‑SA.
Étiquettes :
0
18
août
2017

Bonjour.

Je viens de me faire une VM Debian au taf et après y avoir installé tous mes gadgets habituels (xinit, i3, etc) et fait mes classiques .xinitrc et .profile pour démarrer une session graphique quand je me log sur tty1, surprise: ça marche pas, avec le message d'erreur dans le titre…

À la base, il me disait ne pas pouvoir ouvrir /dev/tty0 pour cause de permissions. Je me suis donc ajouté au groupe tty (qui possède le fameux fichier), et même si le message d'erreur à évolué, le problème n'est toujours pas résolu.
De mémoire, il existait un fichier dans /etc qui permettait de définir qui peut lancer un serveur graphique, mais je me retrouve incapable de le retrouver. En fait, j'ai l'impression que les paquets Debian pour Xorg ont bien changé: de mémoire, avant, il y avait un exécutable X dans /etc/X11, et la, impossible de le trouver.

Je précise que j'utilise VirtualBox, sur une VM en 32bits (pas d'accel matérielle, bios verouillé) derrière un proxy qui fait chier (pas moyen de logguer apt, donc je me base sur les 3 DVD binaires fournis par Debian) et que je n'ai pu qu'installer les pilotes vesa et framebuffer (le pilote vbox étant absent des 3 DVD), ce dernier point n'est pas le problème, puisque lancer xinit via root fonctionne.

Je dois rater un détail, mais lequel…

Edit 1:

Bon, je viens de regarder, il semblerait que de toute façon il n'y ait plus de paquet xserver-xorg-video pour virtualbox… surprenant. Ça aurait été intégré ailleurs?

Edit 2:
Ce post semble relater le même problème que celui que je rencontre… en tout cas les symptômes collent…

  • # reponse partielle

    Posté par  . Évalué à 2.

    Bon, il semblerait qu'en fait ca ne juste marche plus sans: "logind" (aucun paquet ne s'appelle comme ca dans les iso 32, je presume que c'est libsystemd0 en fait, qui n'est donc plus un simple wrapper?), libpam-systemd, un kernel qui supporte kms (a priori pas valide pour vbox, par exemple), soit gdm3 soit startx et enfin que ca tourne sur le meme tty…

    La raison serait de permettre que X n'aie pas a etre lance en tant que root (les gestionnaires autres que gdm3 et startx ne supporteraient pas cette fonctionnalite)… ce qui est pourtant bien ce que j'ai l'impression de faire depuis des années via startx (va falloir que je me documente un peu sur ce point ca m'intrigue).

    Pour le moment ca va donc (enfin, lundi) etre downgrade, le temps de trouver une veritable solution, qui risque de ne pas etre superbe…

  • # 2 pistes

    Posté par  . Évalué à 1. Dernière modification le 19 août 2017 à 00:42.

    En début de semaine j’ai voulu expérimenter wayland et je crois me rappeler d’un message d’erreur équivalent. Jamais eu de problèmes avec Xorg, car démarré en root.

    J’utilise systemd comme init, mais comme j’aime vivre dangereusement je masque les services logind et dbus pour les inhiber pour avoir le système le plus minimaliste possible. Avec logind démarré j’arrivais à lancer une session wayland après avoir loggué mon user dans une console, mais pas moyen de le faire sans logind et depuis un service systemd.

    J’ai eu l’erreur sur les virtual console et j’ai eu la même idée que toi en ajoutant mon user au groupe tty, mais c’est une mauvaise piste.

    J’ai quand même réussi par faire démarrer une session graphique sur mon user en faisant deux choses :
    — export XDG_RUNTIME_DIR=/tmp ou autre (un répertoire pour y placer les sockets du serveur graphique, wayland et xwayland, ainsi que le verrou : faut avoir les droits)
    — avec wayland, malgré tout il y a toujours un—tout petit—process qui tourne en root, ça m’a mis la puce à l’oreille : il faut avoir la capabilities CAP_SETUID. Probable qu’il en soit de même avec X.

    Ton cas n’est pas mon cas, et je ne me rappelle plus trop des détails, mais ce sont deux pistes que tu peux explorer. Bon courage !

    Rapport au lien de ton edit2, j’ai la solution avec systemd, dans le .service j’ai ce genre de chose :

      7 [Service]
      8 Type=simple
      9 WorkingDirectory=/home/USER
     10 Environment=XDG_RUNTIME_DIR=/home/USER/.sway ...
     11 ExecStart=-/usr/bin/sway -c /home/USER/.sway/config
     12 User=USER
     13 AmbientCapabilities=CAP_SETUID
    

    (pour info sway est un port de i3 sur wayland, et la commande sway joue le rôle d’un xinit)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.