ubuntu-multiseat team mailing list archive
-
ubuntu-multiseat team
-
Mailing list archive
-
Message #00489
Re: [Bug 1209008] Re: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats
Oh sorry! I didn't catch your lightdm.conf above.
When you restart lightdm service, all Xorg processes are killed and then
restarted. That's why your seat-1 goes back to normal when you do that.
I suspect your seat-1 Xorg may be killed when suspending. You can confirm
it by running "ps -FC Xorg | less". Also take a look at lightdm and Xorg
log files when your seat-1 fails to wake up.
Em qua, 17 de dez de 2014 17:05, Andrzej Pietrasiewicz <
andrzejtp2010@xxxxxxxxx> escreveu:
> 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 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
>
--
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
References