![Virtuelles Terminal-Switching mit einem Multiseat-Setup und LightDM](https://rvso.com/image/1036626/Virtuelles%20Terminal-Switching%20mit%20einem%20Multiseat-Setup%20und%20LightDM.png)
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 -sharevts
und irgendwie an X in Ihrem übergeben werden .-novtswitch
lightdm.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.