web-dev-qa-db-fra.com

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 doté d'une puce displaylink. Je l’ai déjà fait fonctionner comme écran principal en reconfigurant xorg.conf. Même l'interface tactile fonctionne.

Mais pour les tâches multiples, il ne suffit pas de changer xorg.conf, car il faut aussi lancer des écrans de connexion supplémentaires. Cela doit aller dans la configuration de lightdm.

En configurant lightdm pour plusieurs tâches (lightdm.conf), j'ai réussi à démarrer deux instances X, une pour chaque ServerLayout (xorg.conf). L'un fonctionne sur le terminal virtuel 7 (VT7) et l'autre sur le VT8. Comme on le sait, vous pouvez basculer entre les terminaux virtuels avec les raccourcis Ctrl + Alt + Fx (où x est le numéro du terminal).

Le problème est le suivant: par défaut, VT7 est activé et VT8 est désactivé. Mais lorsque 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?

Je vous remercie.

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
6
Michael Franzl

En relisant l'entrée du wiki sous https://help.ubuntu.com/community/MultiseatX , je suppose que vous devriez jeter un coup d'œil à la façon dont X est invoqué; par exemple. les options de ligne de commande -sharevts et -novtswitch doivent être en quelque sorte transmises à X dans votre lightdm.conf.

Si vous avez un état de fonctionnement, envisagez de mettre à jour l'entrée du wiki vers 11.10.

4
aquaherd

Merci pour l'allusion. Le commutateur -sharevts était la clé. Il n'est pas ajouté par défaut par Lightdm. J'ai regardé /var/log/lightdm/lightdm.log et ajouté une option de commande xserver personnalisée et cela fonctionne enfin! Merci de 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
1
Michael Franzl

Je penserais 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 fonctionner sur l’un d’eux. Après avoir examiné le code de la console du noyau, il apparaît qu’il a été écrit en supposant qu’il n’ya qu’une console. Il utilise des variables globales pour multiplexer les consoles virtuelles sur un seul écran et lit les entrées au 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 les systèmes multi-postes.

0
psusi