Right. So, the underlying problem here appears to be that /dev/fb0, driven by vesafb, gets tagged as PRIMARY_DEVICE_FOR_DISPLAY=1 and gdm is starting on fb0 && PRIMARY_DEVICE_FOR_DISPLAY=1. So gdm is starting before the drm devices are available, and all hell breaks loose.
Reassigning to gdm, as that's what's responsible for prematurely starting X. A safe fix for this would be to replace
"""
...
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))
"""
with
"""
...
and stopped udevtrigger
"""
from gdm's upstart script. There may be a better way, though, as this will increase boot time.
Right. So, the underlying problem here appears to be that /dev/fb0, driven by vesafb, gets tagged as PRIMARY_ DEVICE_ FOR_DISPLAY= 1 and gdm is starting on fb0 && PRIMARY_ DEVICE_ FOR_DISPLAY= 1. So gdm is starting before the drm devices are available, and all hell breaks loose.
Reassigning to gdm, as that's what's responsible for prematurely starting X. A safe fix for this would be to replace device- added fb0 PRIMARY_ DEVICE_ FOR_DISPLAY= 1 DEVICE_ FOR_DISPLAY= 1
"""
...
and (graphics-
or drm-device-added card0 PRIMARY_
or stopped udevtrigger))
"""
with
"""
...
and stopped udevtrigger
"""
from gdm's upstart script. There may be a better way, though, as this will increase boot time.