Virtuelles Terminal-Switching mit einem Multiseat-Setup und LightDM

Virtuelles Terminal-Switching mit einem Multiseat-Setup und LightDM

Mein Ziel ist es, zwei Plätze für meine Ubuntu-Maschine zu haben. Einer der Monitore ist ein USB-Touchscreen von Mimo mit einem Displaylink-Chip. Ich habe ihn bereits als Hauptbildschirm zum Laufen gebracht, indem ich einfach xorg.conf neu konfiguriert habe. Sogar die Touch-Oberfläche funktioniert.

Bei Multiseats reicht es jedoch nicht aus, einfach nur xorg.conf zu ändern, da auch zusätzliche Anmeldebildschirme gestartet werden müssen. Dies muss in die Lightdm-Konfiguration.

Durch die Konfiguration von lightdm für mehrere Benutzer (lightdm.conf) gelang es mir, zwei X-Instanzen zu starten, eine für jedes ServerLayout (xorg.conf). Eine läuft auf dem virtuellen Terminal 7 (VT7) und eine auf VT8. Wie allgemein bekannt, kann man mit den Tastenkombinationen Strg + Alt + Fx (wobei x die Terminalnummer ist) zwischen virtuellen Terminals wechseln.

Das Problem ist nun folgendes: Standardmäßig ist VT7 aktiviert und VT8 deaktiviert. Wenn ich jedoch zu VT8 wechsle, wird es aktiviert, aber VT7 wird deaktiviert.

Wie kann ich beide X-Server-Terminals/Server parallel laufen lassen?

Danke schön.

Hier ist meine lightdm.conf

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

[Seat:0]
xserver-layout=default

[Seat:1]
xserver-layout=displaylink

Hier sind nur die relevanten Teile meiner 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

Antwort1

Lesen Sie den Wiki-Eintrag unterhttps://help.ubuntu.com/community/MultiseatX, ich denke, Sie sollten sich ansehen, wie X aufgerufen wird; beispielsweise sollten die Befehlszeilenoptionen -sharevtsund irgendwie an X in Ihrem übergeben werden .-novtswitchlightdm.conf

Wenn Sie über einen funktionierenden Stand verfügen, ziehen Sie bitte in Erwägung, den Wiki-Eintrag auf 11.10 zu aktualisieren.

Antwort2

Danke für den Hinweis. Der Schalter -sharevts war der Schlüssel. Er wird von Lightdm nicht standardmäßig hinzugefügt. Ich habe mir /var/log/lightdm/lightdm.log angesehen und eine benutzerdefinierte xserver-command-Option hinzugefügt und jetzt funktioniert es endlich! Danke für Ihre Hilfe.

Meine endgültige 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

Antwort3

Ich würde meinen, dass es einen separaten Satz von TTYs für den zweiten Arbeitsplatz geben sollte und dass der zweite X-Server auf einem davon laufen sollte. Nach einem Blick auf den Kernel-Konsolencode scheint es jedoch so, als wäre er mit der Annahme geschrieben worden, dass es nur eine Konsole gibt. Er verwendet globale Variablen, um die virtuellen Konsolen auf einem einzigen Display zu multiplexen, und liest Tastatureingaben von allen angeschlossenen Tastaturen.

Es sieht so aus, als ob der Linux-Konsolencode erheblich umgestaltet werden müsste, um mehrere Plätze zu unterstützen.

verwandte Informationen