ubuntu-multiseat team mailing list archive
-
ubuntu-multiseat team
-
Mailing list archive
-
Message #00478
[Bug 1209008] Re: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats
Does NOT work for me :-(
I'm still getting the "no screens found" error, which, if I understand correctly, is supposed to be fixed with:
http://bazaar.launchpad.net/~ubuntu-multiseat/xorg-server/trusty-matchseat/revision/287/debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch
$ cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ trusty-proposed restricted main multiverse universe
deb http://pl.archive.ubuntu.com/ubuntu trusty-updates restricted universe main multiverse
deb http://security.ubuntu.com/ubuntu/ trusty-security restricted universe main multiverse
deb http://pl.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
$ dpkg -l xserver-xorg-core
...
ii xserver-xorg-core 2:1.15.1-0ubuntu2.6
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation G98 [GeForce 8400 GS Rev. 2] (rev a1)
03:00.0 VGA compatible controller: NVIDIA Corporation G86 [Quadro NVS 290] (rev a1)
$ cat /etc/udev/rules.d/99-multiseat.rules
SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de", TAG+="master-of-seat"
TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:01.0/0000:01:00.0/*", ENV{ID_SEAT}="seat0", TAG+="seat0"
TAG=="seat", DEVPATH=="/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/*", ENV{ID_SEAT}="seat-1", TAG+="seat-1"
TAG=="seat", SUBSYSTEM=="usb", ATTR{name}=="DELL Dell USB Entry Keyboard", ENV{ID_SEAT}="seat0", TAG+="seat0"
TAG=="seat", SUBSYSTEM=="usb", ATTR{name}=="Logitech USB-PS/2 Optical Mouse", ENV{ID_SEAT}="seat0", TAG+="seat0"
TAG=="seat", SUBSYSTEM=="input", ATTR{name}=="AT Translated Set 2 keyboard", ENV{ID_SEAT}="seat-1", TAG+="seat-1"
TAG=="seat", SUBSYSTEM=="input", ATTR{name}=="ImPS/2 Generic Wheel Mouse", ENV{ID_SEAT}="seat-1", TAG+="seat-1"
$ loginctl list-seats
SEAT
seat0
seat-1
2 seats listed.
$ loginctl show-seat seat0
Id=seat0
ActiveSession=c2
CanMultiSession=yes
CanTTY=yes
CanGraphical=yes
Sessions=c2
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
$ loginctl show-seat seat-1
Id=seat-1
CanMultiSession=no
CanTTY=no
CanGraphical=yes
IdleHint=yes
IdleSinceHint=0
IdleSinceHintMonotonic=0
$ loginctl list-sessions
SESSION UID USER SEAT
c2 1000 andrzejtp seat0
1 sessions listed.
$ loginctl seat-status seat0
seat0
Sessions: *c2
Devices:
/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
input:input1 "Power Button"
/sys/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0
input:input0 "Power Button"
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0
[MASTER] drm:card0
/sys/devices/pci0000:00/0000:00:1a.0/usb3
usb:usb3
/sys/devices/pci0000:00/0000:00:1a.1/usb4
usb:usb4
/sys/devices/pci0000:00/0000:00:1a.2/usb5
usb:usb5
/sys/devices/pci0000:00/0000:00:1a.7/usb1
usb:usb1
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0
sound:card0 "Intel"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input10
input:input10 "HDA Intel Line Out CLFE"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input11
input:input11 "HDA Intel Line Out Side"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input12
input:input12 "HDA Intel Front Headphone"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input5
input:input5 "HDA Intel Rear Mic"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input6
input:input6 "HDA Intel Front Mic"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input7
input:input7 "HDA Intel Line"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input8
input:input8 "HDA Intel Line Out Front"
/sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input9
input:input9 "HDA Intel Line Out Surround"
/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/ata5/host4/target4:0:0/4:0:0:0/block/sr0
block:sr0
/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/ata5/host4/target4:0:0/4:0:0:0/scsi_generic/sg1
scsi_generic:sg1
/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/ata5/host4/target4:0:1/4:0:1:0/block/sr1
block:sr1
/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/ata5/host4/target4:0:1/4:0:1:0/scsi_generic/sg2
scsi_generic:sg2
/sys/devices/pci0000:00/0000:00:1d.0/usb6
usb:usb6
/sys/devices/pci0000:00/0000:00:1d.1/usb7
usb:usb7
/sys/devices/pci0000:00/0000:00:1d.2/usb8
usb:usb8
/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.0/input/input13
input:input13 "DELL Dell USB Entry Keyboard"
/sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0/input/input14
input:input14 "Logitech USB-PS/2 Optical Mouse"
/sys/devices/pci0000:00/0000:00:1d.7/usb2
usb:usb2
/sys/devices/pci0000:00/0000:00:1e.0/0000:06:00.0/video4linux/vbi0
video4linux:vbi0 "BT878 vbi ( *** UNKNOWN/GENERIC"
/sys/devices/pci0000:00/0000:00:1e.0/0000:06:00.0/video4linux/video0
video4linux:video0 "BT878 video ( *** UNKNOWN/GENER"
/sys/devices/virtual/misc/rfkill
misc:rfkill
$ loginctl seat-status seat-1
seat-1
Devices:
/sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/drm/card1
[MASTER] drm:card1
/sys/devices/platform/i8042/serio0/input/input2
input:input2 "AT Translated Set 2 keyboard"
/sys/devices/platform/i8042/serio1/input/input4
input:input4 "ImPS/2 Generic Wheel Mouse"
$ lsmod | grep nouveau
$ lsmod | grep nvidia
nvidia 9704610 58
drm 244037 3 nvidia
$ cat /etc/lightdm/lightdm.conf
[LightDM]
logind-load-seats=true
logind-check-graphical=true
# cat /var/log/lightdm/x-1.log
X.Org X Server 1.15.1
Release Date: 2014-04-13
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.0-70-generic i686 Ubuntu
Current Operating System: Linux turbo 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:44 UTC 2014 i686
Kernel command line: BOOT_IMAGE=/vmlinuz root=/dev/sda1 nomodeset
Build Date: 10 December 2014 06:16:10PM
xorg-server 2:1.15.1-0ubuntu2.6 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.30.2
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.1.log", Time: Sat Dec 13 19:25:33 2014
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
On the other hand, if I use nouveau, both seats come up, but once a demanding application (like firefox) is started at seat-1, screen quickly becomes full of garbage and in dmes I can see many lines like:
Dec 13 17:20:28 turbo kernel: [ 2788.000175] nouveau E[ PGRAPH][0000:03:00.0] ch 2 [0x000fb43000 Xorg[21316]] subc 0 class 0x0030 mthd 0x0224 data 0x00000140
Dec 13 17:20:28 turbo kernel: [ 2788.000193] nouveau E[ PGRAPH][0000:03:00.0] ILLEGAL_MTHD.
To conclude this lengthy post: either I have both seats but one unusable
(with nouveau), or I have just one seat working properly while the other
gets "no screens found" (with nvidia).
--
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