[HOWTO] Multiseat with Ubuntu 16.04 + systemd + gdm + proprietary drivers

Proprietary multi seat worked out of the box for me. that is I had to add nothing to the xorg conf, just use loginctl attach commands to attach the usb devices and the video device which worked after a reboot.

Send the output of the following commands
loginctl show-seat
loginctl list-seats
lspci

Hi MariusSiuram,
I have a ubuntu 16.04 (ligntdm) pc with onboard Intel i915 and a PCI Express GeForce 7100 GS (which uses the nvidia-304). This card works with multiseat and the Nouveau driver (but with screen distortions, poor performance and monitor resolution issues) using just the loginctl attach commands.

However when I install nvidia-driver which then shows the nvidia-304 being installed, I am unable to get the Xorg to start on the seat-1 even with the changes that you have given (suitably modified).

Since it work automagically with lightdm, the nouvaeu driver (with really poor performance but functional) it appears that the mutliseat rig is fine. Something with the driver not being triggered.
Attaching the relevant commands below. please see if you can spot something I have missed.

Thanks

root@dev1 ~# loginctl seat-status
n/a
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.0/0000:01:00.0/drm/card1
│ [MASTER] drm:card1
├─/sys/devices/pci0000:00/0000:00:02.0/drm/card0
│ [MASTER] drm:card0
│ └─/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1
│ [MASTER] drm:card0-VGA-1
├─/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
│ drm:renderD128
├─/sys/devices/pci0000:00/0000:00:02.0/graphics/fb0
│ [MASTER] graphics:fb0 “inteldrmfb”
├─/sys/devices/pci0000:00/0000:00:1a.0/usb1
│ usb:usb1
│ └─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1
│ usb:1-1
│ ├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:046D:C040.0001/input/input5
│ │ input:input5 “Logitech USB-PS/2 Optical Mouse”
│ ├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:046D:C313.0002/input/input6
│ │ input:input6 “BTC USB Multimedia Keyboard”
│ ├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.1/0003:046D:C313.0003/input/input7
│ │ input:input7 “BTC USB Multimedia Keyboard”
│ ├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:0461:4D0F.0004/input/input8
│ │ input:input8 “PixArt USB Optical Mouse”
│ ├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:046D:C31C.0005/input/input9
│ │ input:input9 “Logitech USB Keyboard”
│ └─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:046D:C31C.0006/input/input10
│ input:input10 “Logitech USB Keyboard”
├─/sys/devices/pci0000:00/0000:00:1b.0/sound/card0

root@dev1 ~# lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation H61 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation NV44 [GeForce 7100 GS] (rev a1)
02:00.0 PCI bridge: Integrated Technology Express, Inc. Device 8892 (rev 30)

root@dev1 ~# cat /etc/X11/xorg.conf.d/01-nvidia-gpu-seat-1.conf
Section “ServerFlags”
Option “AutoAddGPU” “off”
EndSection

Section “Device”
Identifier “Device1”
Driver “nvidia”
VendorName “NVIDIA Corporation”
Option “GLXVBlank” “true”
BoardName “GeForce 7100 GS (rev a1)”
Option “NoLogo” “1”
BusId “PCI:1:0:0”
Option “ProbeAllGpus” “false”
MatchSeat “seat-1”
EndSection

Hi MariusSiuram

Thanks for your post.

I have an application for a kiosk, 2 touch screens at different resolutions. The touch is obviously the mouse input.

The reason for the 2 screens in a kiosk is so that someone in a wheelchair is not disadvantaged as they can’t reach the top screen.

I have one card - multiple heads - it’s an intel card not nVidia.

Have you tried to get mulitseat working on a single card with multiple heads?

Many thanks
Mark

Maybe this helps:
[url]http://us.download.nvidia.com/XFree86/Linux-x86/173.14.12/README/chapter-15.html[/url]

if

loginctl seat-status seat0

have multiple “drm:card” and “drm:render” entries, then it is possible.

Ive used multiseat for many years with kdm and gentoo. KDM is replaced with sddm and theres no support for multiseat. I have 2 nvidia cards + intel hd , nvidias use drivers and intel seat is 2d… Now that kdm is not supported im unable to upgrade my system. It seem pretty much the same with configs kdm/gdm…
I have 3 xorg.confs xorg_left.conf middle… right… Seats are assigned in kdmrc
[X-:0-Core]
AutoLoginEnable=false
AutoLoginLocked=false
AutoLoginUser=markus
ClientLogFile=.xsession-errors
ServerCmd=/usr/bin/X -nolisten tcp -novtswitch -config /etc/X11/xorg_left.conf -br -sharevts vt12

[X-:0-Greeter]
DefaultUser=mari

[X-:1-Core]
ClientLogFile=.xsession-errors1
ServerCmd=/usr/bin/X -nolisten tcp -novtswitch -config /etc/X11/xorg_right.conf -br vt12

[X-:2-Core]
ClientLogFile=.xsession-errors2
ServerCmd=/usr/bin/X -nolisten tcp -novtswitch -config /etc/X11/xorg_middle.conf -br -sharevts vt12

This is xorg_left.conf for nvidia card

Section “Device”
Identifier “gfx_left”
Driver “nvidia”
BusID “PCI:1:0:0”
Option “ProbeAllGpus” “false”
Option “Coolbits” “12”
EndSection

Section “InputClass”
Identifier “ignore_other_seats”
Option “Ignore” “yes”
EndSection

Section “InputClass”
Identifier “input_left”
MatchTag “input_left”
Option “Ignore” “no”
EndSection

Section “ServerFlags”
Option “AutoAddGPU” “FALSE”
EndSection
ANd xorg_right.conf for intel hd graphics

Section “Device”
Identifier “gfx_right”
BusID “PCI:0:02:0”
Driver “intel”
Option “ProbeAllGpus” “false”
EndSection

Section “Monitor”
Identifier “monitor0”

EndSection

Section “InputClass”
Identifier “ignore_other_seats”
Option “Ignore” “yes”
EndSection

Section “InputClass”
Identifier “input_right”
MatchTag “input_right”
Option “Ignore” “no”
EndSection

If I could do it with gdm (the kdmrc part) then i could breath again :)

If someone can help me migrate settings to gdm i would be thankfull. Ive attached mouses and etc though usb hubs and sound goes with hdmi / intel seat has usb sound system…