[systemd-devel] Starting Display Managers

Kay Sievers kay at vrfy.org
Tue Aug 21 05:09:13 PDT 2012


On Tue, Aug 21, 2012 at 12:08 PM, Tomasz Torcz <tomek at pipebreaker.pl> wrote:
> On Tue, Aug 21, 2012 at 11:09:10AM +0600, Alexander E. Patrakov wrote:
>> If the user has a graphics card supported by open-source DRI-based
>> drivers with mandatory KMS, then /dev/dri/card0 (or maybe card1 in
>> dual-gfx setups) is needed. And for Radeon TURKS cards, this only
>> appears after loading firmware (which takes some time). If this is a
>> tablet using the "fbdev" driver, then /dev/fb0 is needed. And with
>> yet-unsupported graphics cards, the vesa driver only needs /dev/mem or
>> something like that which is always present given a devtmpfs.
>>
>> The question is: how does one write this dependency information, so
>> that lxdm is not attempted to be started before udev creates the
>> necessary device node? Yes, I understand that GPU hotplug in Xorg is
>> the real answer, but we don't have that now, and I don't know how it
>> would cover vesa-based screens.
>
>   This bug prompted adding CanGraphical property to seat.  See
> http://www.freedesktop.org/wiki/Software/systemd/writing-display-managers
> lxdm should watch for seat property to change to CanGraphical=yes
> and then continue initialisation.

Right. And in other words:

A display manager that wants to survive in today's setups needs to be
fully hotplug capable. And hotplug capable does not mean calling
"udevadm settle" or fiddling with other sorts of barriers and delays;
it's watching for display hardware and seats coming and going at *any*
time a machine is running.

Kay


More information about the systemd-devel mailing list