Bug 1639437 - kernel-4.18 flashes vendor boot logo
Summary: kernel-4.18 flashes vendor boot logo
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 29
Hardware: x86_64
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-10-15 17:54 UTC by Julius B.
Modified: 2018-11-26 08:48 UTC (History)
16 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-11-26 08:48:14 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
FreeDesktop.org 108773 0 None None None 2018-11-25 18:47:32 UTC

Description Julius B. 2018-10-15 17:54:37 UTC
Description of problem:
On a Thinkpad S1 Yoga, kernel 4.18 flashes the vendor UEFI boot logo on boot.

Version-Release number of selected component (if applicable):
$ uname -r
4.18.13-300.fc29.x86_64
(happens with all 4.18+ versions, didn't happen with 4.16

How reproducible:
1. Everytime

Steps to Reproduce:
1. Boot F28/F29 with an 4.18.x kernel on Thinkpad S1 yoga
2. Observe the flashing boot logo
3. Boot F28 with older 4.16 kernel
4. Observe the usual F28 plymouth boot logo

Additional info:
I didn't know where to file this exactly.
If there's additional information you need (like log files), please don't hesitate to ask.

Video recording of the boot sequence: https://photos.app.goo.gl/GLKTyMnJ4vf8uXJS8

Comment 1 Hans de Goede 2018-10-15 18:25:39 UTC
The kernel now showing the bootlogo during boot is part of the flickerfree support explained here:

https://hansdegoede.livejournal.com/19224.html

However for you it currently does not look all that flicker free :|

I see 3 "troublesome" visual transitions and 1 expected:

1) The grub menu shows on boot, replacing the Lenovo logo and then later the kernel restores it (4 seconds into your video), this restore is done for 2 reasons:

1a) Some BIOS-es do not show the logo themselves, relying on the OS to show it, pre F29 the first thing the user would see on these devices is grub, but since we hide grub on boot now, they would get a black screen, so we show the logo from the kernel ASAP to avoid the user staring at a blackscreen at machines with such unfortunate BIOS behavior

1b) To make the boot sequence in cases where the menu does show consistent with the default hidden grub menu sequence.

You can make this transition smooth by enabling the grub hidden menu feature, which is enabled by default on all new F29 workstation installs, see:
https://hansdegoede.livejournal.com/19081.html

2) When the i915 driver loads it disables the screen and then re-inits it needlessly (8 seconds into your video), you always had this flicker but it may be more prominent now, to avoid this add i915.fastboot=1 on your kernel commandline

3) The transition from the logo to the plymouth bootscreen (11 seconds into your video) plymouth shows only very briefly on your machine, this is caused by plymouth showing 5 seconds after it starts, so that it does not visually disrupt really short boots, while still showing that something is happening on longer boots. This is a problem which is also present in F28, to fix this you can change plymouth's splash delay by e.g. adding "plymouth.splash-delay=20" to the kernel commandline. Adding this will make the difference between:
https://fedorapeople.org/~jwrdegoede/flickerfree-videos/workstation-plymouth.webm
and:
https://fedorapeople.org/~jwrdegoede/flickerfree-videos/workstation-normal.webm

4) The transition from plymouth exiting and your login manager loading shows
the default framebuffer contents again, this used to be an empty text screen with just a blinking cursor but now is the Vendor logo. GDM does a smooth transition from plymouth to itself, but you are using another login manager which does not do this. Note that if you add "plymouth.splash-delay=20" this problem too will go away.

TL;DR: if you will add "i915.fastboot=1 plymouth.splash-delay=20" to your kernel commandline then you will get the vendor logo shown after the grub menu all the way into your login manager without flashing. If you also (optionally) enable the hidden-grub menu then you will get a smooth boot from power on all the way into your login manager.

Unfortunately i915.fastboot=1 is not yet the default I'm working on this, as mentioned in: https://hansdegoede.livejournal.com/19224.html I also have an alternative plymouth theme on my to do list, which will draw over (under) the vendor logo so that the transition to/from plymouth will be smooth rather then the current jarring experience. I plan to release this as a F29 update when it is done (but I won't switch the default plymouth theme for F29).

I hope that this helps explain what you are seeing and I hope that with the commandline changes in place (for now this should become the default) you also like the new experience.

Comment 2 Julius B. 2018-10-15 19:31:11 UTC
Hans,

thank you very much for the prompt and detailed explanation.

With the information, I was able to tweak the boot sequence to not flicker that much anymore. Since I don't like the vendor logo being shown, I'll just disable plymouth timeout and try to get the original boot animation as early as possible.

> but you are using another login manager which does not do this. 

That's SDDM (Simple Desktop Display Manager) from the KDE spin. Would it make sense to file a bug/feature request for SDDM to support that as well? If so, is there any information available that would help implementing it?

Regarding this ticket, please feel free to close it if you feel like it (since it's not exactly a bug).

Comment 3 Julius B. 2018-10-15 19:56:26 UTC
Seems like I spoke to soon.

With i915.fastboot=1, the screen stays black after the post-grub logo is shown (grub itself is shown since this is a multiboot system), and won't show any boot screen (or even the login manager) anymore. I also cannot switch ttys via ALT+F keys anymore. :(

Without fastboot, even if the plymouth timeout is set to 0 or 1, the logo is flashed three times. As much as I welcome the work you're putting into getting a fluid boot experience, in my case it has become rather uneasy.

Is there any way to disable it in the meantime? And what logs would you need to debug the fastboot issue?

Comment 4 Hans de Goede 2018-10-15 20:30:29 UTC
(In reply to Julius B. from comment #2)
> > but you are using another login manager which does not do this. 
> 
> That's SDDM (Simple Desktop Display Manager) from the KDE spin. Would it
> make sense to file a bug/feature request for SDDM to support that as well?

Yes that would make sense, although I don't have high hopes of them implementing this given that SDDM still runs the X-server as root despite that no longer being necessary for 3-4 years now and gdm running the X-server as user for that long already. Basically it does not see that SDDM gets a lot of work done to it.

> If so, is there any information available that would help implementing it?

The SDDM folks can look at the gdm and plymouth systemd .service files to see how they work together to make plymouth release master rights on the video card but keep the console in graphics mode so that it shows the last contents plymouth rendered. gdm then reads the contents back from the framebuffer and blends it towards its welcome screen after which it tells plymouth it is ok to quit (and free the framebuffer it installed).

(In reply to Julius B. from comment #3)
> With i915.fastboot=1, the screen stays black after the post-grub logo is
> shown (grub itself is shown since this is a multiboot system), and won't
> show any boot screen (or even the login manager) anymore. I also cannot
> switch ttys via ALT+F keys anymore. :(

Bummer, can you please follow these instructions to file a bug about this upstream? :

https://01.org/linuxgraphics/documentation/how-report-bugs

> Without fastboot, even if the plymouth timeout is set to 0 or 1, the logo is
> flashed three times. As much as I welcome the work you're putting into
> getting a fluid boot experience, in my case it has become rather uneasy.
> 
> Is there any way to disable it in the meantime?

Starting with 4.19 kernels, e.g. :
https://koji.fedoraproject.org/koji/buildinfo?buildID=1153580

You can add "video=efifb:nobgrt" on the kernel commandline to get the efifb code to show whatever is left behind by grub. If you want you can also add "fbcon=nodefer" to immediately get a blackscreen with a text-cursor as in F28.

If you need instructions on howto install a kernel directly from koji, see:

https://fedorapeople.org/~jwrdegoede/kernel-test-instructions.txt

Comment 5 Hans de Goede 2018-10-15 20:35:03 UTC
p.s.

Note even with multiboot you could still consider hiding grub and using the firmware's builtin bootmenu to select Windows when you use it (Press F12 during boot to get the builtin bootmenu) if you use bitlocker with Windows with a TPM that actually is the only way to boot Windows.

Comment 6 Julius B. 2018-11-25 18:46:45 UTC
It seems like fastboot is not yet supported on Haswell platform (see fdo#104838 and the one I reported, fdo#108773), and since not enabled by default. I guess this bug report is invalid, as it works as intended.

So, with a heavy heart, I'll disable flicker-free boot for the time being as described in comment#4. Thank you nevertheless for your hard work, Hans!

Comment 7 Hans de Goede 2018-11-26 08:48:14 UTC
(In reply to Julius B. from comment #6)
> It seems like fastboot is not yet supported on Haswell platform (see
> fdo#104838 and the one I reported, fdo#108773), and since not enabled by
> default. I guess this bug report is invalid, as it works as intended.

Ok, lets close this bug and track the fastboot=1 issue not working in fdo#108773.


Note You need to log in before you can comment on or make changes to this bug.