]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
login: mark nomodeset fb devices as master-of-seat
authorAdam Jackson <ajax@redhat.com>
Tue, 12 Mar 2019 19:22:13 +0000 (20:22 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 13 Mar 2019 11:17:34 +0000 (12:17 +0100)
When 'nomodeset' is specified, there's no DRM driver to take over from
efifb. This means no device will be marked as a seat master, so gdm will
never find a sufficiently active seat to start on.

I'm not aware of an especially good way to detect this through a proper
kernel API, so check for the word 'nomodeset' on the command line and
allow fbdev devices to be seat masters if found.

For https://bugzilla.redhat.com/show_bug.cgi?id=1683197.

src/login/71-seat.rules.in

index a5928b0a4f3915d023270cc502afbfb6924cf31f..b67966cdf6d0339b6a7cacd925b9968490b8fcb6 100644 (file)
@@ -17,6 +17,9 @@ SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat"
 # HyperV currently doesn't do DRM, hence we need to synthesize for HyperV's fb device instead
 SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", DRIVERS=="hyperv_fb", TAG+="master-of-seat"
 
+# Allow efifb / uvesafb to be a master if KMS is disabled
+SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", IMPORT{cmdline}="nomodeset", TAG+="master-of-seat"
+
 SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="seat", TAG+="master-of-seat"
 SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat"