I have been trying to setup my NVidia card to support a multiseat installation for 2 days now and I feel like I am not making any progress.
First I tried to follow the Ubuntu instructions found here:
https://wiki.ubuntu.com/MultiseatTeam/Instructions
These are not too bad, only the NVidia drivers do not offer a way to select one seat per output connector since it only defines one device in the list of devices:
udevadm info --export-db
That gives me the following entry for the NVidia video board:
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DRIVER=nvidia
E: ID_MODEL_FROM_DATABASE=GF108GL [Quadro 600]
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
E: MODALIAS=pci:v000010DEd00000DF8sv000010DEsd00000835bc03sc00i00
E: PCI_CLASS=30000
E: PCI_ID=10DE:0DF8
E: PCI_SLOT_NAME=0000:01:00.0
E: PCI_SUBSYS_ID=10DE:0835
E: SUBSYSTEM=pci
E: USEC_INITIALIZED=85345
There are other entries for the audio, but no other entries for the video. So it is not possible to create two "video seats" (actually, I never saw anything more than "seat0" with loginctl list-seats
in the list of seats, even though I tagged the second mouse and keyboard as "seat-1"... From the the freedesktop website, it sounds like adding any tag named "seat-???" is enough to create a seat that loginctl list-seats
would end up showing. It did not work for me, even after rebooting.)
One interesting aspect to this entry, it does not include a seat tag as we see in some other entries:
E: TAGS=:seat:
So I am pretty sure that the neat setup offered by Ubuntu page I linked above won't work at all with NVidia unless you have 2 or more video boards.
Later I tried the old way which means creating an xorg.conf setup with 2 screens. NVidia offers a way to do the setup automatically, which is great (i.e. the nvidia-settings tool can be used to save a valid xorg.conf.) That works in the sense that we do get two independent screens, but I have not found a way to place a login screen on the second screen (Screen 1). I tried to start X twice as shown in various places, but when starting X for screen 1 the NVidia driver tells me that certain resources are not available (locked by screen 0).
[Seat0]
xserver-command=/usr/bin/X :0
[Seat1]
xserver-command=/usr/bin/X :1
I'm not so sure lightdm would try to start both X servers, so I tried by hand from an ssh session and it works okay when starting the first X instance. The second generates errors and quits because it could not initialize the driver (which makes sense since both would be trying to use the same hardware resources.) The full command line I used is:
/usr/bin/X -config /etc/X11/xorg.conf -isolateDevice PCI:1:0:0 :0 \
-auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -sharevts -keeptty
And use :1 for the other one.
So I'm thinking that the straight forward screen 0 and 1 setup is what I need to use and just make sure Screen 1 is reserved for a different user. Anyone would know how to get that to work?
There is a version of the xorg.conf that I tried with thus far, but I have not found a way to get the second log in screen yet...
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 331.20 (buildd@roseapple) Mon Feb 3 15:07:22 UTC 2014
Section "ServerLayout"
Identifier "seat0"
Screen "Screen0" 0 0
#Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
#Option "Xinerama" "0"
# Avoid having X add all the devices to all the layouts
Option "AutoAddDevices" "False"
Option "AutoEnableDevices" "False"
EndSection
Section "ServerLayout"
Identifier "seat1"
Screen 0 "Screen1" 0 0
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
#Option "Xinerama" "0"
# Avoid having X add all the devices to all the layouts
Option "AutoAddDevices" "False"
Option "AutoEnableDevices" "False"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
#Option "Device" "/dev/psaux" -- default setup
Option "Device" "/dev/input/mouse0"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mouse1"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
# /devices/platform/i8042/serio0/input/input2
Option "Device" "/dev/input/event2"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard1"
Driver "kbd"
# /devices/platform/i8042/serio0/input/input2
Option "Device" "/dev/input/event7"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Sony SDM-S73"
HorizSync 28.0 - 65.0
VertRefresh 57.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Samsung SyncMaster"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "CRT-0"
Option "metamodes" "DVI-I-0: nvidia-auto-select +0+0; DVI-I-0: 1280x1024 +0+0; DVI-I-0: 1024x768 +0+0; DVI-I-0: 800x600 +0+0; DVI-I-0: 640x480 +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "DP-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
0 Answers