10

I've been reading (old) guides all day and I still know nothing about multiseat on Ubuntu 18.04. To make matters worse, I only have one graphics card with multiple outputs.

The only thing that gives me hope is loginctl list-seats which indicates that my Ubuntu knows about seats.

How can I set up my machine in multiseat?

Edit: output of loginctl commands.

Please note that not everything is connected. I want to first figure out how to get about it, not just plunge in. I figure each seat will have its own USB hub (HID devices + whatever else needed) + one of the displays.

loginctl list-seats
SEAT            
seat0           

1 seats listed.

loginctl seat-status seat0

seat0
Sessions: *c1
 Devices:
      ├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
      │ input:input1 "Power Button"
      ├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
      │ input:input0 "Power Button"
      ├─/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1
      │ usb:usb1
      │ ├─/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-12/1-12:1.0/input/input11
      │ │ input:input11 "iMON USB Touchscreen (15c2:0034)"
      │ ├─/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-12/1-12:1.0/input/input2
      │ │ input:input2 "iMON Panel, Knob and Mouse(15c2:0034)"
      │ └─/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-12/1-12:1.0/rc/rc0/input3
      │   input:input3 "iMON Remote (15c2:0034)"
      ├─/sys/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb2
      │ usb:usb2
      ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0
      │ [MASTER] drm:card0
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-1
      │ │ [MASTER] drm:card0-DP-1
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-2
      │ │ [MASTER] drm:card0-DP-2
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DP-3
      │ │ [MASTER] drm:card0-DP-3
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-DVI-D-1
      │ │ [MASTER] drm:card0-DVI-D-1
      │ └─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/card0/card0-HDMI-A-1
      │   [MASTER] drm:card0-HDMI-A-1
      ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0/drm/renderD128
      │ drm:renderD128
      ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0
      │ sound:card0 "NVidia"
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0/input12
      │ │ input:input12 "HDA NVidia HDMI/DP,pcm=3"
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0/input13
      │ │ input:input13 "HDA NVidia HDMI/DP,pcm=7"
      │ ├─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0/input14
      │ │ input:input14 "HDA NVidia HDMI/DP,pcm=8"
      │ └─/sys/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0/input15
      │   input:input15 "HDA NVidia HDMI/DP,pcm=9"
      ├─/sys/devices/pci0000:00/0000:00:07.1/0000:27:00.3/usb3
      │ usb:usb3
      ├─/sys/devices/pci0000:00/0000:00:07.1/0000:27:00.3/usb4
      │ usb:usb4
      ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1
      │ sound:card1 "Generic"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input10
      │ │ input:input10 "HD-Audio Generic Front Headphone"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input4
      │ │ input:input4 "HD-Audio Generic Front Mic"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input5
      │ │ input:input5 "HD-Audio Generic Rear Mic"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input6
      │ │ input:input6 "HD-Audio Generic Line"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input7
      │ │ input:input7 "HD-Audio Generic Line Out Front"
      │ ├─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input8
      │ │ input:input8 "HD-Audio Generic Line Out Surround"
      │ └─/sys/devices/pci0000:00/0000:00:08.1/0000:28:00.3/sound/card1/input9
      │   input:input9 "HD-Audio Generic Line Out CLFE"
      └─/sys/devices/virtual/misc/rfkill
        misc:rfkill
5
  • see wiki.ubuntu.com/MultiseatTeam/Instructions
    – damadam
    Commented Jul 12, 2018 at 14:32
  • Please add results of loginctl seat-status and add it to the question. You need to find the master in the result ;-)
    – Rinzwind
    Commented Jul 12, 2018 at 14:32
  • Guide for this: devtalk.nvidia.com/default/topic/936873/linux/… I used this with 16.04 to create a multiseat. Should still work.
    – Rinzwind
    Commented Jul 12, 2018 at 14:38
  • Did you have any luck with setting up multi-seat under Ubuntu? It still seems to be really out of date. Commented Dec 11, 2019 at 9:05
  • 1
    No. I just created VMs and am connecting to them via RDP / spice
    – velis
    Commented Dec 12, 2019 at 16:26

2 Answers 2

7

Multiple video cards is by far the easy way to set up multiseat. It allows you to avoid the mess of Xephyr and any other additional configuration.

Setting up a second seat (assuming you had a second video card) would be no more simple than issuing the command:

loginctl attach seat1 ....

Once you reboot, you should have two login screens. All other configuration is generally incidental after that.

Does your motherboard support a second full-length PCI-E graphics slot? If it does not, that is not an automatic disqualifier. You can also use one of those PCI-E 1x risers that the bitcoin crowd are fond of using to add a 16x slot to your machine. Not saying you should, I'm just saying you could.

4
  • Well, I specifically looked for a card with multiple outputs. While my MB supports inserting other cards, I really don't want to. OTOH the card's outputs are nicely enumerated in the HW list. I will try with that first, thanks.
    – velis
    Commented Aug 19, 2018 at 4:37
  • @velis were you able to find a solution to this? It seems no one ever wants a multi seat setup with Ubuntu any more.. Commented May 31, 2019 at 5:20
  • No. Gave up. Now I'm just running VMs and connecting to them remotely using cheap zero clients. WAY sub-optimal, but at least it works, especially with Windows guests (RDP). Unfortunately, for linux guests I am yet to find a truly zero-lag protocol.
    – velis
    Commented May 31, 2019 at 7:00
  • Just to clarify further: even though you can loginctl a single output on a graphics card, the command actually assigns the entire card to that seat then. There is no granularity. At least this is so with gdm3, if it is at all a display manager that actually handles the assignment. Never tried with any other display managers.
    – velis
    Commented May 31, 2019 at 7:03
3

I agree with @ezst036 regarding this:

Multiple video cards is by far the easy way to set up multiseat. It allows you to avoid the mess of Xephyr and any other additional configuration.

However, even in this "easy scenario", I stumbled upon some issues regarding the interactions between gdm, snap and the logind component. For starters, if you have a 16.04 and do a loginctl seat-status you will be given the information regarding your seat, but if you try that in 18.04 an error will be thrown:

Could not get properties: Caller does not belong to any known session

I don't know if that issue is relevant or not.

In order to achieve a functional multiseat configuration in Ubuntu vanilla you can do the following:

  • Install lightdm: By doing sudo apt install lightdm and then be sure to check lightdm as the default login screen in the prompt that will appear.
  • Configure the following in /etc/lightdm/lightdm.conf.d/multiseat.conf (you should create this file, name it as you wish).
[LightDM]
logind-load-seats=true
  • Properly assign the devices to the seat by doing loginctl attach seat-1 <device>

Then you will be able to reboot and everything should fall in place.

There is no need to configure anything in /etc/X11, the previous configuration will automagically set up all the devices properly.

DISCLAIMER: I have two Radeon RX 5700, and I am using the official driver 19.30 from the AMD website. I am not sure if my configuration will work as-is in other setups. YMMV.

You must log in to answer this question.

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