Re: F30 Testing request: "basic graphics mode" in Workstation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2019-03-06 at 12:46 -0800, Adam Williamson wrote:
> Hi folks!
> 
> So there's a current Beta blocker bug:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1683197
> 
> it is currently accepted as a blocker on the understanding that trying
> to boot to Workstation in 'basic graphics mode' (i.e. with 'nomodeset'
> on the cmdline) *always* fails, on all hardware (or at least on most
> hardware). However, we don't yet have enough testing to be sure of
> this.

I looked into this today, and while it's a truly gross issue at root, I
think I've got a reasonable solution (see patch in comment #11).

The issue seems to be:

a) gdm is expecting a 'master-of-seat' property for the graphics device
attached to a given seat before it will deign to touch the seat

b) systemd is now setting that property only for a subset of devices -
specifically, drm devices but not fbdev devices.

c) you don't want to set master-of-seat unconditionally for fbdev
devices, because it introduces a race: efifb will have bound to the
device first, and drm driver load is asynchronous, so there's no
guarantee i915 (or whatever) will have loaded by the time gdm starts,
and if gdm wins the race the session at best comes up unaccelerated and
RANDRless with fbdev and llvmpipe, and at worst crashes when the
framebuffer handoff to i915 triggers.

So. The workaround is to add a udev rule:

# allow efifb / uvesafb to be a master if KMS is disabled
SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", PROGRAM="/usr/bin/grep -qw nomodeset /proc/cmdline", TAG+="master-of-seat"

This says, if you asked for nomodeset, whatever fbdev device is present
is good enough to be a seat master. This doesn't handle all possible
cases. It doesn't catch the case of a user saying (for example)
i915.modeset=0, which would also disable modesetting, but that's never
what our tools write to our grub configs. It wouldn't catch the case of
using vgafb or vesafb (or any other fbdev driver) _without_ explicitly
saying nomodeset; but we ship very few such drivers, and our tools will
not give you any of the generic ones like vga or vesa by default.

So I think this handles 90%+ of the cases we care about, certainly
enough to unblock the release. If anyone wants to polish it further,
feel free. Let me know if there's any additional insight I can provide.

- ajax
_______________________________________________
test mailing list -- test@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to test-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/test@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Desktop]     [Fedora SELinux]     [Photo Sharing]     [Yosemite Forum]     [KDE Users]

  Powered by Linux