** Description changed: - From <https://bugs.freedesktop.org/show_bug.cgi?id=66851>: + [Impact] - > I have a multiseat setup with a primary on-board Intel graphics - > device and a secondary Silicon Motion SM501 graphics card. My SM501 - > is configured via custom xorg.conf with siliconmotion ddx driver, so - > it exposes no framebuffer devices to e.g. systemd-logind. The same - > situation is seen e.g. for a NVIDIA graphics card with proprietary - > drivers. - > - > Every time I configure my system to assign my SM501 card with a - > secondary seat, i.e. not seat0, my X server fails to start, - > returning a "No devices detected" error. Nevertheless, when I assign - > my SM501 card with seat0 and attach my Intel graphics device to - > secondary seat (via loginctl), both seats load successfully. - > - > Investigating the Xorg-server sources, I've found something related - > to "platform bus". I don't know what is it at all, but whatever it - > means, my Intel graphics card with its open-source drivers implement - > it, but my siliconmotion driver doesn't. - > - > In its current form, Xorg-server probes for platform bus devices as - > well as "legacy" PCI bus ones only for seat0. For other seats, it - > only probes for platform bus devices, hence it never reaches my - > SM501 card, returning that "No devices found" error. - > - > I don't know if there's a good reason for probing only platform bus - > devices on non-seat0 seats, but this brings a problem for multiseat - > setups like mine. + * 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. - This same problem was encoutered by a user with two NVIDIA cards; see - bug #976124. + Patch "xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch" from + lp:~ubuntu-multiseat/xorg-server/trusty-matchseat fixes this. - A patch was supplied to the upstream bug report, and this patch seems to - fix the problem. + * 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). - Note that this bug only affects detection of cards when X is passed the - '-seat' argument with a seat name OTHER than "seat0". Thus, this only - happens in multiseat setups. + 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.
** Summary changed: - X fails to detect certain video cards on non-seat0 seats + [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1209008 Title: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats To manage notifications about this bug go to: https://bugs.launchpad.net/xorg-server/+bug/1209008/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs