ubuntu-multiseat team mailing list archive
-
ubuntu-multiseat team
-
Mailing list archive
-
Message #00481
[Bug 1209008] Re: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats
Hi Laércio,
SHAME ON ME!!!!
When I started looking for files to paste here, I had a closer look at
my xorg.conf:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
MatchSeat "seat0"
EndSection
Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1" 0 0
MatchSeat "seat1"
EndSection
Section "Files"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Samsung SMEX2220"
HorizSync 30.0 - 81.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Philips 170B4"
HorizSync 30.0 - 82.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8400 GS"
BusID "PCI:1:0:0"
MatchSeat "seat0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro NVS 290"
BusID "PCI:3:0:0"
MatchSeat "seat1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
MatchSeat "seat0"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
MatchSeat "seat1"
EndSection
The problem is in naming. I dutifully named seat 0 "seat0", but I also dutifully followed the convention of naming
seat 1 "seat-1", with a dash between the "t" and the "1" - _EXCEPT_ in my xorg.conf...
When I did s/seat1/seat-1/g in my xorg.conf, the two seats appear correctly.
I did not stress test it too much, but will do now. If I have a problem I will let you know immediately.
I've been using multiseat setups for over a decade now and it has always
been at least a bit "hakish"; each and every dist-upgrade (I've been
using Debian testing, where dist-upgrades happen frequently) has been a
threat that thigs would stop working. What is proposed here looks like a
proper solution to multiseat setups. Thanks for your work!
--
You received this bug notification because you are a member of Ubuntu
Multiseat, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1209008
Title:
[SRU] X doesn't work for video cards with non-KMS drivers on non-seat0
seats
Status in X.Org X server:
Fix Released
Status in xorg-server package in Ubuntu:
Fix Released
Status in xorg-server source package in Trusty:
Fix Committed
Bug description:
[Impact]
* In Xorg-server versions older than 1.16, if Xorg is started as a
non-seat0 X server (i.e. if it was started with "-seat XXXX" option
where "XXXX" != "seat0"), it only probes platform bus for graphics
devices, leaving devices with non-KMS drivers (like NVIDIA proprietary
drivers and old ones like xf86-video-siliconmotion) unreachable.
Patch "xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch"
from lp:~ubuntu-multiseat/xorg-server/trusty-matchseat fixes this.
* systemd-logind has no intrinsic mechanism to assign non-KMS graphics
devices to seats. In this case, one should tag another seat device
(keyboard, USB hub, etc.) in udev as "master-of-seat", and provide a
suitable xorg.conf for that seat. In order to avoid that a given
xorg.conf affects other seats, it should be passed to Xorg via
"-config xorg.conf.custom" option, which requires X server command
line customization support in DM in use (GDM, for example, has no such
support).
Patch "xfree86_add_matchseat_key_to_xorg_conf.patch" from lp:~ubuntu-
multiseat/xorg-server/trusty-matchseat introduces a new MatchSeat key
for xorg.conf sections "Device", "Screen", and "ServerLayout", which
will target a given seat only. Example file
/etc/X11/xorg.conf.d/90-seat-1.conf:
Section "Device"
Identifier "card0"
Driver "nvidia"
Option "NoLogo" "True"
# This section will only apply for seat-1
MatchSeat "seat-1"
EndSection
* systemd-logind can't handle any VT switching for non-seat0 seats,
but Xorg-server older than 1.16 still opens VT even if it's started as
a non-seat0 X server. This may lead to a race condition between X
servers: if a non-seat0 one is started before a seat0 one, the former
"steals" VTs from the later. If a seat0 X server can't open VTs,
systemd-logind can't activate sessions for seat0, leaving user without
sound or usb input support, for example.
Patch "xfree86_keep_non_seat0_from_touching_vts.patch" from lp
:~ubuntu-multiseat/xorg-server/trusty-matchseat fixes this.
[Test Case]
* Set up a multiseat system where your non-seat0 seats use non-KMS
video drivers (you may need to tag another device in udev as "master-
of-seat" in order to achieve it).
* When LightDM/GDM tries to start a Xorg server for your non-seat0
seats, it will end up with the following error: "(EE) No devices
found".
* After applying
xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch, you can
configure your seats in LightDM by setting appropriate "xserver-
config" properties for each seat. However, you can't configure them in
GDM.
* After applying xfree86_add_matchseat_key_to_xorg_conf.patch,
configure your seats properly and restart LightDM/GDM services (or
reboot your computer) repeatedly. In some iterations, it may happen
that logind can't activate graphical sessions for seat0. If it occurs,
check output of command "ps -FC Xorg" and you'll see that a non-seat0
Xorg server has a lower PID than seat0 one. Moreover, the non-seat0
has opened a TTY, while the seat0 hasn't.
[Regression Potential]
* Very low. All these patches were well tested in xorg-server "trusty"
package available in ppa:ubuntu-multiseat/ppa.
To manage notifications about this bug go to:
https://bugs.launchpad.net/xorg-server/+bug/1209008/+subscriptions