Please watch the CanGraphical property on logind Seat objects before spawning a graphical login on a seat
Submitted by Lennart Poettering
We now boot so fast that gdm might get started at a time where the graphics drivers are not fully initialized yet and the video device might still get probed. Currently gdm chokes on that, because it assumes that all graphics hw is available when it is started.
To fix this I have just updated systemd git to expose a CanGraphics boolean property on all seats that tells gdm whether a specific seat can do graphics (i.e. has an fb/kms device node). gdm should only care for seats with this field set. In the race case mentioned above this property might be initialized with False first, but change to True as the video driver finishes probing. This means gdm needs to watch PropertyChanged for this field (in addition to the SeatAdded, SeatRemoved signals), and take possession of a seat/give up a seat as the flag changes.