7 votes

Commutation de terminal virtuel avec une configuration multiseat et lightdm

Mon objectif est d'avoir deux sièges pour ma machine Ubuntu. L'un des moniteurs est un écran tactile USB de Mimo avec une puce displaylink. J'ai déjà réussi à le faire fonctionner comme écran principal en reconfigurant xorg.conf. Même l'interface tactile fonctionne.

Mais pour les multiseats, il ne suffit pas de changer xorg.conf, car des écrans de connexion supplémentaires doivent également être lancés. Cela doit aller dans la configuration de lightdm.

En configurant lightdm pour le multiseats (lightdm.conf), j'ai réussi à démarrer deux instances X, une pour chaque ServerLayout (xorg.conf). L'une fonctionne sur Virtual Terminal 7 (VT7) et l'autre sur VT8. Comme on le sait, on peut passer d'un terminal virtuel à l'autre avec les raccourcis Ctrl + Alt + Fx (où x est le numéro du terminal).

Maintenant, le problème est le suivant : Par défaut, VT7 est activé et VT8 est désactivé. Mais quand je passe à VT8, il devient activé mais VT7 devient désactivé.

Comment puis-je faire fonctionner les deux terminaux/serveurs X Server en parallèle ?

Merci.

Voici mon lightdm.conf

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default

[Seat:1]
xserver-layout=displaylink

Voici seulement les parties pertinentes de mon xorg.conf :

# Two Server Layouts

Section "ServerLayout"
    Identifier     "default"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
    Identifier     "displaylink"
    Screen         "DisplayLinkScreen"
    InputDevice    "Mouse1"
EndSection

# Two Screens

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
        Identifier      "DisplayLinkScreen"
        Device          "DisplayLinkDevice"
        Monitor         "DisplayLinkMonitor"
        SubSection "Display"
                Depth   24
                Modes   "800x480"
        EndSubSection
EndSection

# Two Monitors

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier      "DisplayLinkMonitor"
EndSection

# Two Graphics Cards/Interfaces

Section "Device"
    Identifier  "Card0"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
        Identifier      "DisplayLinkDevice"
        driver          "displaylink"
        Option  "fbdev" "/dev/fb1"
EndSection

# Three Input Devices (the last is touchscreen of the USB monitor)

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/mice"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "InputDevice"
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Device"        "/dev/input/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-event"
EndSection

5voto

aquaherd Points 5970

En relisant l'entrée wiki sous https://help.ubuntu.com/community/MultiseatX je pense que vous devriez examiner la manière dont X est invoqué, par exemple, la fonction -sharevts y -novtswitch Les options de la ligne de commande doivent être passées à X d'une manière ou d'une autre dans votre fichier lightdm.conf .

Si vous disposez d'un état fonctionnel, veuillez envisager de mettre à jour l'entrée du wiki en 11.10.

2voto

Michael Franzl Points 595

Merci pour l'astuce. L'option -sharevts était la clé. Il n'est pas ajouté par défaut par Lightdm. J'ai regardé dans /var/log/lightdm/lightdm.log et j'ai ajouté une option xserver-command personnalisée et maintenant ça marche enfin ! Merci pour votre aide.

Mon dernier lightdm.conf :

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu

[Seat:0]
xserver-layout=default
xserver-command=/usr/bin/X :0 -layout default -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -sharevts

[Seat:1]
xserver-layout=displaylink
xserver-command=/usr/bin/X :1 -layout displaylink -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch -sharevts

0voto

psusi Points 35613

Je pense qu'il devrait y avoir un ensemble séparé de ttys pour le deuxième siège, et que le deuxième serveur X devrait être exécuté sur l'un d'entre eux. Après avoir examiné le code de la console du noyau, il semble qu'il ait été écrit en partant du principe qu'il n'y a qu'une seule console. Il utilise des variables globales pour multiplexer les consoles virtuelles sur un seul écran, et lit les entrées clavier de tous les claviers connectés.

Il semble que le code de la console Linux devra être considérablement remanié pour prendre en charge le multi-siège.

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