← Back to team overview

desktop-packages team mailing list archive

[Bug 1209008] Re: [SRU] X doesn't work for video cards with non-KMS drivers on non-seat0 seats

 

Unfortunately, I can't reproduce your error in my hardware. Both seats
wake up correctly here.

My hardware consists of an integrated Intel graphics device and a
Silicon Motion SM501 PCI graphics card. I'm also using Xubuntu with
lightdm 1.10.3 from trust-updates repo.

BTW, did you upgrade your lightdm to 1.10.3? Dou you know this version
has backported automatic multiseat feature introduced in 1.12 series?
Although this is the default behaviour in 1.12 series, it must be
enabled manually in 1.10.3. Just drop all your previous manual seat
configurations ([Seat:0], [Seat:1], etc.) in lightdm.conf and put the
following:

[LightDM]
logind-load-seats=true

If you want to seat e.g. autologin user for each seat, just append the
following sections:

[Seat:seat0]
autologin-user=<USER FOR seat0>

[Seat:seat-1]
autologin-user=<USER FOR seat-1>

Now you can test again that setting above for disabling DPMS for your
seat-1 X server:

[Seat:seat-1]
xserver-command=/usr/bin/X -core -dpms -s 0

-- 
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