Forum Linux.général Archlinux : compiler Xephyr pour du multiposte (= multiseat in english)

Posté par .
Tags : aucun
1
26
déc.
2010
Bonjour à toutes et tous, je m'excuse si ce texte est un peux brouillon, c'est qu'il est tôt....

J'aurais besoin de quelques infos pour recompiler Xephyr pour Archlinux. En effet, le support de l'evdev n'y est pas inclus (dans Xephyr) et du coup, je peux pas utiliser mes claviers.

Avant de vous déranger, j'ai quand même cherché un peux sur le comment du pourquoi de la mise en place du multiposte.

par exemple j'ai testé ça :
http://horky.wz.cz/en/multiseat/single-carded#setup
http://ubuntuforums.org/showthread.php?p=7448339#post7448339
http://research.edm.uhasselt.be/~jori/page/uploads/Misc/howt(...)
http://multiseatonlinux.blogspot.com/2010/06/part-1-setting-(...)
http://www.nvnews.net/vbulletin/showthread.php?t=101547
http://netpatia.blogspot.com/2006/09/multiseat-computer-with(...)
http://ubuntuforums.org/showthread.php?t=1154052
http://wiki.c3sl.ufpr.br/multiseat/index.php/Mdm
https://wiki.archlinux.org/index.php/Xorg_multiseat

etc.... je ne les met pas tous, ça fait 5 jours que j'y travaille....

voici ma conf :

pc portable clevo w870cu (core i7q820, 4go de ram, 500Go de hdd) + nvidia 285m.
avec 2 claviers usb et 2 souris usb et 1 moniteur externe sur le port DVI.

l'écran du pc portable et l'écran externe ont la même résolution : 1920x1080

Si j'ai bien compris, on peux pas avoir 2 instance de xorg sur 1 carte video, donc il me reste l'option de 1 instance de xorg + 2 instances Xephyr.

je précise encore que mon but est d'utiliser 1 pc portable pour 2 utilisateurs avec les clavier/souris usb (il est évident que ce sera avec une seule carte vidéo dualhead vu que je peux pas en rajouter dans l'ordinateur, d'ou le fait que je cherche à faire marcher Xephyr).

pour mes tests :
j'utilise Archlinux x86_64 à jours, avec xorg-server-xephyr 1.9.2-2 .
les dernier drivers NVIDIA fournis par Archlinux : 260.19.29-1
je définis les clavier/touchpad intégrés au pc portable dans xorg.conf
les claviers/souris usb ne sont pas définis dans xorg.conf (je sais pas si c'est
bien ou pas ????)

Donc si Xephyr se lance bien, il le fait sans le clavier et la souris car :

"Couldn't find pointer driver evdev"
"Couldn't find keyboard driver evdev"

la commande pour le lancer étant la suivante :

Xephyr -mouse evdev,,,device=/dev/input/event16 -keybd evdev,,device=/dev/input/event14,xkbmodel=evdev,xkblayout=fr :1

par contre ceci :

Xephyr -mouse ephyr,,,device=/dev/input/mouse3 -keybd ephyr,,device=/dev/input/event14,xkbmodel=evdev,xkblayout=fr :1

ne produit pas d'erreur et c'est les clavier/touchpad du pc portable qui fonctionnent dans Xephyr.. (alors que le clavier du portable est /dev/input/event0 et le touchpad sur /dev/input/event7)

je n'ai pas trouvé de documentation sur ce mystérieux driver "ephyr".... (sans le X)

Donc, j'en conclus que l'evdev n'a pas été intégré dans Xephyr. Et j'aimerais l'intégrer.. sauf que si bien compris, Xephyr est un module de xorg/xserver... et c'est là que je réclame votre aide : comment compiler xorg/xerver correctement pour Archlinux avec Xephyr + evdev (voir aussi de la 3d pour les Xephyr aussi :-p) ?

Je pense qu'il y aurais un début de ce type : ./configure --enable-kdrive --enable-xephyr --enable-kdrive-evdev ....

si quelqu'un avais une procédure/doc/etc sur comment récupérer les sources complètes avec tout les modules de xorg/xserver, et la doc sur les option de compilation et sur comment c'est fait pour Archlinux, ça m'aiderais grandement!

(oui google est mon ami, mais là, au bout de 5 jours, il me goonfle ^^)

Merci d'avance :-)
  • # extrait d'un pkgbuild

    Posté par . Évalué à 1.

    je vais essayer ça et on verra ce que ça donne :

    ./autogen.sh --prefix=/usr \
    --enable-ipv6 \
    --enable-dri \
    --enable-dmx \
    --enable-xvfb \
    --enable-xnest \
    --enable-composite \
    --enable-xcsecurity \
    --enable-xorg \
    --enable-xephyr \
    --enable-glx-tls \
    --enable-kdrive \
    --enable-kdrive-evdev \
    --enable-kdrive-kbd \
    --enable-kdrive-mouse \
    --enable-install-setuid \
    --enable-config-udev \
    --disable-config-dbus \
    --enable-record \
    --disable-xfbdev \
    --disable-xfake \
    --disable-static \
    --sysconfdir=/etc/X11 \
    --localstatedir=/var \
    --with-xkb-path=/usr/share/X11/xkb \
    --with-xkb-output=/var/lib/xkb \
    --with-fontrootdir=/usr/share/fonts \
    --disable-docs \
    --disable-devel-docs

    résultats après que j'ai dormis ^^
    • [^] # Re: extrait d'un pkgbuild

      Posté par . Évalué à 1.

      mouais.....

      ça compile, ça s'installe, mais ça marche pas.... le driver nvidia est pas content :

      ================ WARNING WARNING WARNING WARNING ================
      This server has a video driver ABI version of 9.0 that is not
      supported by this NVIDIA driver. Please check
      http://www.nvidia.com/ for driver updates or downgrade to an X
      server with a supported driver ABI.
      =================================================================
      (EE) NVIDIA: Use the -ignoreABI option to override this check.
      (EE) Failed to load module "nvidia" (module requirement mismatch, 0)
      (EE) No drivers available.

      et X -ignoreABI :

      ================ WARNING WARNING WARNING WARNING ================
      This server has a video driver ABI version of 9.0 that is not
      supported by this NVIDIA driver. Please check
      http://www.nvidia.com/ for driver updates or downgrade to an X
      server with a supported driver ABI.
      =================================================================
      (WW) NVIDIA: The driver will continue to load, but may behave strangely.
      (WW) NVIDIA: This server has an unsupported input driver ABI version (have 12.0, need < 12.0). The driver will continue to load, but may behave strangely.

      Backtrace:
      0: X (xorg_backtrace+0x28) [0x4a3f78]
      1: X (0x400000+0x64509) [0x464509]
      2: /lib/libpthread.so.0 (0x7f55f9187000+0xf1c0) [0x7f55f91961c0]
      3: /usr/lib/xorg/modules/drivers/nvidia_drv.so (0x7f55f5f80000+0xadfd0) [0x7f55f602dfd0]
      4: /usr/lib/xorg/modules/drivers/nvidia_drv.so (0x7f55f5f80000+0x3b63ea) [0x7f55f63363ea]
      5: X (xf86DeleteScreen+0x7c) [0x46ed2c]
      6: X (InitOutput+0x872) [0x473d12]
      7: X (0x400000+0x2556d) [0x42556d]
      8: /lib/libc.so.6 (__libc_start_main+0xfd) [0x7f55f810cc4d]
      9: X (0x400000+0x252c9) [0x4252c9]
      Segmentation fault at address 0x18

      Fatal server error:
      Caught signal 11 (Segmentation fault). Server aborting

      bon... une aide, quelqu'un(e) ? a vot' bon coeur 'sieux 'dames !
      • [^] # Re: extrait d'un pkgbuild

        Posté par . Évalué à 3.

        Pourquoi ne pas essayer avec nouveau, le driver libre ?

        Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

        • [^] # Re: extrait d'un pkgbuild

          Posté par . Évalué à 2.

          parce que dans quelques uns des tutos que j'ai suivis, c'étais déconseillé. et puis je fait de la 3d (d'amateur) et je crains que nouveau ne soit pas très performant par rapport au driver proprio (surtout pour 2 utilisateurs)

          donc nouvelle orientation : packager un xorg à-la-Archlinux avec Xephyr bien compilé :

          récupération des sources :
          yaourt -G xorg

          compilation :
          cd xorg-server/
          vi PKGBUILD et ajout de --enable-kdrive-evdev --enable-kdrive-kbd --enable-kdrive-mouse

          makepkg

          faire le [café/vaisselle/ménage/ceque_vous_voulez] le temps que ça compile,

          installation :
          yaourt -Uf ./*xz

          retour dans mon wm favoris et là Xephyr+evdev fonctionne!!\O/
          le driver nvidia est content \o/
          mais sans la 3D pour xephyr..... car il manque swrast_dri.so... mais bon, là j'ai bien avancé.

          j'ai bien googolisé moi!

          je vais voir pour la 3D maintenant.....
      • [^] # Re: extrait d'un pkgbuild

        Posté par . Évalué à 3.

        Bonjour, peut être faut il essayer avec nouveau (le driver) s'il gère le dual-head ?

        Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.

        • [^] # Re: extrait d'un pkgbuild

          Posté par . Évalué à 2.

          oué bon ok, je viens d'essayer nouveau, et donc c'est ce que je pensait : les perfs sont pas au rendez-vous...

          Donc je re-installe Archlinux parce que durant tout ces jours ou j'ai fait des test, j'ai pas mal pourris mon OS XD

          Et je ferais des sessions Xephyr sans 3D.
  • # un truc marrant

    Posté par . Évalué à 1.

    je teste une autre approche :

    xorg/nvidia propriétaire, pas de twinview, pas de xinerama.

    je crée 1 ServerLayout :

    Section "ServerLayout"
    Identifier "Layout0"
    Screen 0 "Screen0" 0 0
    Screen 1 "Screen1" 0 0
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse0" "CorePointer"
    Option "Xinerama" "off"
    EndSection

    et mes deux screen :

    Section "Device"
    Identifier "Device0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce GTX 285M"
    BusID "PCI:2:0:0"
    Screen 0
    EndSection

    Section "Device"
    Identifier "Device1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce GTX 285M"
    BusID "PCI:2:0:0"
    Screen 1
    EndSection

    Section "Screen"
    Identifier "Screen0"
    Device "Device0"
    Monitor "Monitor0"
    DefaultDepth 24
    Option "TwinView" "off"
    Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection

    Section "Screen"
    Identifier "Screen1"
    Device "Device1"
    Monitor "Monitor1"
    DefaultDepth 24
    Option "TwinView" "0"
    Option "metamodes" "DFP-2: 1920x1080 +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection

    DFP-0 = écran du pc portable
    DFP-1 = écran externe

    avec tout ça, je démarre X

    # X &

    dans une autre console, je lance icewm :

    export DISPLAY=:0.0
    icewm

    et ça marche sur l'écran du pc portable

    dans une troisième console je lance un autre icewm :

    export DISPLAY=:0.1

    et ça marche sur l'écran externe... mais sans clavier (normal vu qu'il y en a qu'un de déclaré dans mon ServerLayout)

    pour les deux display, peux lancer de la 3d hardware (un test glxgear par exemple) !

    notez que pour lancer glxgears sur le display 0.1, je me suis connecté via ssh vu quele claviern'est pas actif.

    la question étant, comment faire pour avoir un deuxième clavier pour le display 0.1 ?


    autrement dit, comment avoir un couple de clavier/souris par screen et non par serverlayout dans xord.conf ?
    • [^] # Re: un truc marrant

      Posté par . Évalué à 2.

      faire 2 serverLayout

      avec chacun leur clavier, souris et ecran ?
      ca ne marcherait pas ?
      • [^] # Re: un truc marrant

        Posté par . Évalué à 1.

        non, car je n'ai qu'une seule carte graphique, pour faire 2 serverslayout, il faut 2 carte graphiques.
  • # et pour finir!

    Posté par . Évalué à 2.

    j'ai donc terminé.

    Comme le pc ne sera utilisé que par moi et ma compagne, voici ce que j'ai fait :

    configuration de Xorg en twinviwew + démarrage de mon wm favoris (xfce4) + et utilisation de plusieurs scripts (j'ai voulu n'en faire qu'un, mais ça parche pas autrement...).

    1) script d'initilalisation du X invité
    runxephyr.sh
    #!/bin/sh
    Xephyr -nolisten tcp -br nologo -mouse evdev,5,,device=/dev/input/by-path/pci-0000\:00\:1d.0-usb-0\:1.1.6\:1.0-event-mouse -keybd evdev,,device=/dev/input/by-id/usb-CHESEN_PS2_to_USB_Converter-event-kbd,,xkblayout=fr -screen 1920x1080 :1 &
    #demarrage du wm
    sudo -u yumemi -i /home/yumemi/runwm.sh

    2) initialisation du bureau invité
    runwm.sh :
    #!/bin/sh
    cd ~
    export DISPLAY=:1
    startxfce4 &

    3)placement de la fenêtre xephyr sur l'écran de droite :
    movexephyr.sh
    #!/bin/sh
    winid=`xwininfo -root -tree | grep "Xephyr on :1" | sed 's#^\([ \t]*\)\([0-9xA-Fa-f]*\).*#\2#'`
    wmctrl -i -r $winid -e "0,1913,-17,0,0"

    4) et enfin le script qui vas lancer tout ce petit monde :
    init_gest_desktop.sh
    #!/bin/sh
    sudo runxephyr.sh
    sudo movexephyr.sh

    tout ces bout de scripts sont dans mon ~/bin/ et je n'ai qu'à appeller init_gest_desktop.sh pour avoir un bureau xfce4 avec son couple de clavier/souris dédié sur l'écran de droite. C'est presque fonctionnel pour l'utilisatrice... car Xephyr est sans 3D.

    tout ceci pourrais être adapté pour avoir 2 gdm au démarrage mais j'ai la flemme de me battre contre ConsoleKit (oui car j'ai remarqué que /etc/gdm/custom.conf et /etc/gdm/gdm.conf n'étaient pas pris en compte par le gdm 2.32.0-4 de Archlinux...)

    Si un jours j'arrive à activer la 3D, je ne manquerais de revenir vous déranger ;-)

    ps : si vous avez une meilleur soluce que ce que j'ai posté là, je suis preneur!
  • # enfin la 3D !!! (logicielle)

    Posté par . Évalué à 1.

    Petit épilogue :

    Le fait de copier swrast_dri.so dans /usr/lib/xorg/modules/dri/ active la 3D (logicielle) dans Xephyr \o/

    C'est un pis-aller mais c'est toujours ça de gagné!

    (pour info, le fichier swrast_dri.so viens d'une tentative de compilation d'un paquet Archlinux mesa, qui avait pour dépendance libgl. et donc j'avais pas poussé plus loin à l'époque car ça faisais conflit avec nvidia)

Suivre le flux des commentaires

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