Adding deferred fbcon console takeover to the Fedora kernels

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

 



Hi All,

Good news on the patch to make the loglevel for quiet configurable,
this has been accepted into -next now. I plan to add this to the
Fedora kernels soonish and set the quiet loglevel to 3 as
discussed earlier.

Today another related patch-set got merged, see the last 3
commits here:
https://github.com/bzolnier/linux/commits/ib-fbdev-drm-v4.19-deferred-console-takeover

I would also like to add these 3 patches to the Fedora 4.18
kernel (for F29+).

The end goal here is a boot where the firmware shows its boot graphics
and these stay in place for a couple of seconds until the GUI loads and
the GUI then smoothly takes over the framebuffer without any disruptions.

See here for an example of what this looks like on my main workstation:

https://fedorapeople.org/~jwrdegoede/flickerfree-videos/workstation-normal.webm

Shim has already been modified to leave the framebuffer as setup by
the firmware intact and patches for grub have been merged, but not
yet build for F29+.

Combined with the hidden grub menu feature for F29:

https://fedoraproject.org/wiki/Changes/HiddenGrubMenu

This means that the framebuffer is still showing the boot graphics
(e.g. vendor logo) when the kernel loads.

Without the "deferred fbcon console takeover" patches the fbcon
will takeover from dummycon as the console driver as soon as
the efifb registers itself as a fbdev, clearing the screen to
black. breaking the desired boot experience.

The deferred console takeover patches make the fbcon code delay
taking over as the console until the first character is output
on the console.

I've tested this code with the following scenarios:

1) Remove quiet from the kernel commandline -> fbcon binds right away
because messages are logged to the dummycon before efifb loads

2) Mess up the root= kernel argument -> As soon as dracut prints
its timeout message for finding the rootfs, fbcon binds and shows
the timeout message

3) Detailed view in plymouth mode (press ESC to show boot msg) ->
plymouth retains drm master rights on /dev/dri/card? while it
tries to show the details. The blocks fbcon accessing the fbdev
device registered by the kms driver, so nothing will be shown
until plymouth exits (and releases the drm-master rights).

This really is a plymouth bug, I've submitted plymouth patches
fixing this here:
https://bugs.freedesktop.org/show_bug.cgi?id=107047

4) touch /.autorelabel -> autorelabel correctly switches back
to text mode and shows the autorelabel status

###

TL;DR: I'm working on making the boot look pretty (prettier)
for F29 and to complete this we need the 3 patches from here:

https://github.com/bzolnier/linux/commits/ib-fbdev-drm-v4.19-deferred-console-takeover

Added as downstream patches to the Fedora kernel for F29+
(and just for 4.18, they are going upstream for 4.19).

Are you (the Fedora kernel team) ok with me adding these
patches and enabling the new FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
Kconfig option?

Regards,

Hans
_______________________________________________
kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to kernel-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/kernel@xxxxxxxxxxxxxxxxxxxxxxx/message/3MWCKJ2DVJPC4INXPKB4ECFZLA7X5RTI/




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux