desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #89474
[Bug 1209008] Re: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats
I have two discrete cards. So the difference is that your integrated
card is probably on the "platform bus", while both of my discrete cards
are PCI-E devices.
I started testing multiseat setup described in this thread only last
Saturday and since then have always been using the lightdm version which
supports automatic multiseat; in one of my posts above (where I thought
that the multiseat setup didn't work) I enclosed my full lightdm.conf;
it only consisted of logind-load-seats and logind-check-graphical.
# apt-cache policy lightdm
lightdm:
Zainstalowana: 1.10.4-0ubuntu2 # means: Installed
Kandydująca: 1.10.4-0ubuntu2 # means: Candidate
Tabela wersji:
*** 1.10.4-0ubuntu2 0
500 http://archive.ubuntu.com/ubuntu/ trusty-proposed/main i386 Packages
100 /var/lib/dpkg/status
1.10.3-0ubuntu2 0
500 http://pl.archive.ubuntu.com/ubuntu/ trusty-updates/main i386 Packages
1.10.0-0ubuntu3 0
500 http://pl.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
The full lightdm.conf I'm using now:
[LightDM]
logind-load-seats=true
logind-check-graphical=true
[SeatDefaults]
allow-guest=false
[Seat:seat-1]
xserver-command=/usr/bin/X -core -dpms -s 0
And with this setup the card assigned to seat0 in xorg.conf wakes up
correctly, but the other does not. I'm wandering which step of
restarting lightdm does the trick of waking it up fully? Because, as I
said before, the seat-1 is not completely lost after wakeup; if I
brutally restart lightdm it comes back, of course all graphical sessions
terminated and lightdm login screen displayed again at both seats.
My random guess is that the problem is in the X server. Perhaps for
waking up there is some code path which works in a similar way to what
probing used to work, that is, it only searches for platform display
devices?
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to xorg-server in Ubuntu.
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
Follow ups