X fatal server error with -seat option

Because multiseat doesn’t work out-of-the-box with the Nvidia drivers I try to figure out why.

The story so far:
create a udev rule for the nvidia device and attach it together with a usb-hub to seat1

loginctl seat-status seat1

seat1
Devices:
├─/sys/devices/pci0000:00/0000:00:05.0/0000:02:00.0
│ [MASTER] pci:0000:02:00.0
├─/sys/devices/pci0000:00/0000:00:05.0/0000:02:00.1/sound/card2
│ sound:card2 “NVidia”
│ ├─/sys/devices/pci0000:00/0000:00:05.0/0000:02:00.1/sound/card2/input17
│ │ input:input17 “HDA NVidia HDMI/DP,pcm=7”
│ └─/sys/devices/pci0000:00/0000:00:05.0/0000:02:00.1/sound/card2/input18
│ input:input18 “HDA NVidia HDMI/DP,pcm=3”
├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3
│ usb:1-1.3
│ └─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input2
│ input:input2 “Cypress Sem PS2/USB Browser Combo Mouse”
└─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4
usb:1-1.4
├─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input3
│ input:input3 “BTC USB Multimedia Keyboard”
└─/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.1/input/input4
input:input4 “BTC USB Multimedia Keyboard”

Now the “magic” should happen, but there isn’t a way to add a -layout option to the X server, so the second seat remains black.I made a little script to add that option to systemd-multi-seat-x (I renamed the original systemd-multi-seat-x to systemd-multi-seat-x.org)

#!/bin/bash
echo “$@”>>/var/log/multiseat.log

layout=$(echo “$@” | awk ‘{print $8}’)
/lib/systemd/systemd-multi-seat-x.org “$@” -layout $layout
exit

Unfortunately, still no gdm or an other Xserver on seat1
The X server tries to start the right ServerLayout

[ 1160.624] (++) ServerLayout “seat1”
[ 1160.624] () |–>Screen “TV” (0)
[ 1160.624] (
) | |–>Monitor “”
[ 1160.624] () | |–>Device “seat1”
[ 1160.624] (==) No monitor specified for screen “TV”.
Using a default monitor configuration.
[ 1160.624] (
) Option “IsolateDevice” “PCI:02:00:0”
[ 1160.624] (**) Option “SingleCard” “true”
[ 1160.624] (==) Automatically adding devices
[ 1160.624] (==) Automatically enabling devices
[ 1160.624] (==) Automatically adding GPU devices

But ends with:

[ 1160.689] (EE) No devices detected.
[ 1160.689]
Fatal server error:
[ 1160.690] no screens found
[ 1160.690] (EE)

I figured out that I can start a second Xserver with gnome3:
#DISPLAY=:1 startx – -layout seat1 -sharevts
But this gnome session isn’t aware of any udev seat rules so it isn’t really working

#DISPLAY=:1 startx – -layout seat1 -sharevts -seat seat1
Ends with the same “Fatal server error:”

[ 2188.890] (EE) No devices detected.
[ 2188.890]
Fatal server error:
[ 2188.890] no screens found
[ 2188.890] (EE)

Bugs 878605 – systemd-logind: No way to setup multi-seat with two nvidia cards using proprietary drivers
and 962907 – X server needs fixes to start properly on non-seat0 seats with non-KMS video drivers
about the same problem already exist, but aren’t solved.

I hope that some of the developers will fix this issue.

Floris

Some information about my system:

#uname -a
Linux Alice 3.9.9-301.fc19.x86_64 #1 SMP Thu Jul 4 15:10:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

X -version

X.Org X Server 1.14.1
Release Date: 2013-04-17
X Protocol Version 11, Revision 0
Build Operating System: 2.6.32-358.2.1.el6.x86_64
Current Operating System: Linux Alice 3.9.9-301.fc19.x86_64 #1 SMP Thu Jul 4 15:10:36 UTC 2013 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.9.9-301.fc19.x86_64 root=UUID=fb180b7d-1be5-4068-99ec-31ed0e95d8f5 ro rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 vconsole.keymap=us rhgb LANG=nl_NL.UTF-8
Build Date: 05 June 2013 10:30:19PM
Build ID: xorg-x11-server 1.14.1-4.fc19
Current version of pixman: 0.30.0

NVRM version: NVIDIA UNIX x86_64 Kernel Module 310.51 Wed May 1 16:58:02 PDT 2013
GCC version: gcc versie 4.8.1 20130603 (Red Hat 4.8.1-1) (GCC)
nvidia-bug-report.log (665 KB)

Is there no developer who can point me to a solution?

Is was a Xorg-related problem. It fails to start on non-seat0 seats with non-KMS drivers. This bug is solved in Xorg server 1.16.