7

My aim is to have two seats for my Ubuntu machine. One of the monitors is a USB touchscreen from Mimo with a displaylink chip. I already got it working as main display just by reconfiguring xorg.conf. Even the touch interface works.

But for multiseats, it's not just enough to change xorg.conf, because additional login screens have to be started too. This has to go into the lightdm configuration.

By configuring lightdm for multiseats (lightdm.conf), I managed to start up two X instances, one for each ServerLayout (xorg.conf). One is running on Virtual Terminal 7 (VT7) and one on VT8. As is commonly known, you can switch between Virtual Terminals with the shortcuts Ctrl + Alt + Fx (where x is the terminal number).

Now the problem is this: By default, VT7 is enabled and VT8 is disabled. But when I switch to VT8, it becomes enabled but VT7 becomes disabled.

How can I make both X Server terminals/servers run in parallel?

Thank you.

Here is my lightdm.conf

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

[Seat:0]
xserver-layout=default

[Seat:1]
xserver-layout=displaylink

Here are only the relevant parts of my 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

3 Answers 3

5

Rereading the wiki entry under https://help.ubuntu.com/community/MultiseatX, I guess you should have a look at how X is invoked; e.g. the -sharevts and -novtswitch command line options should be somehow passed to X in your lightdm.conf.

If you have a working state, please consider updating the wiki entry to 11.10.

2

Thanks for the hint. The -sharevts switch was the key. It is not added by default by Lightdm. I looked at /var/log/lightdm/lightdm.log and added a custom xserver-command option and now it finally works! Thanks for your help.

My final 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
0

I would think that there should be a separate set of ttys for the second seat, and that the second X server should be run on one of those. After looking at the kernel console code though, it appears that it was written with the assumption that there is only one console. It uses global variables to multiplex the virtual consoles onto a single display, and reads keyboard input from all attached keyboards.

It looks like the Linux console code will need significantly refactored to support multi seat.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .