Comment 32 for bug 1365336

Revision history for this message
LaƩrcio de Sousa (lbssousa) wrote : Re: Lightdm update=No desktop

Well... Now I can tell the whole story:

1. Following http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/ , LightDM gains automatic multiseat support in release 1.11.7. This support improves a bit in release 1.11.8, which now watches on changes in property "CanGraphical" of logind seats. LightDM only spawns a greeter on a seat that has property "CanGraphical=yes".

2. Reading systemd-logind source code, I've found that a requisite to a logind seat gain property "CanGraphical=yes" is attaching a device tagged in udev as "master-of-seat" to it.

3. systemd-logind ships a default set of udev rules that tags any framebuffer devices (/dev/fb*) as "master-of-seat", which is OK for all KMS-compliant video drivers like Intel, Nouveau (open-source driver for NVIDIA graphics devices) and Radeon (open-source driver for AMD graphics devices).

4. However, NVIDIA or AMD proprietary drivers don't expose kernel framebuffer devices, so they need their own udev rule to tag another kernel device they expose as "master-of-seat" (in @elfy example, we tag kernel device /dev/dri/card0):

SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de", TAG+="master-of-seat"

5. Without this custom udev rule, seat0 will change his property "CanGraphical" from "no" to "yes", so LightDM fails to spawn a greeter on it.

I don't believe that systemd developers will accept to ship this udev rule in upstream releases, because they only support open-source drivers.

The right thing to do right now is reporting a bug to NVIDIA proprietary driver's Ubuntu package maintainers, asking them to ship a suitable udev rule like the one above. There's nothing to do with lightdm in this case.