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

Bug#1125346: linux: Consider enabling deferred console takeover for flicker-free boot



Source: linux
Severity: wishlist

Dear Maintainer,

Currently, Debian does not enable CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
by default. I'd like to request that this config options be enabled for
UEFI-enabled architectures in order to better support flicker-free boot.

CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER defers the clearing of the
framebuffer console until the first text is displayed on the console.
Without this option, there is a brief time between the firmware
splash screen and the initialization Plymouth splash screen where the
kernel may clear the graphics from the firmware. 

When booting with "quiet", this will result in a black flicker between
the UEFI firmware and Plymouth. Without "quiet", text output is briefly
visible as expected.

By enabling the deferred takeover, the graphics from the firmware can
remain in the framebuffer until either a) the kernel begins printing
text or b) Plymouth (or similar software) takes control and does
whatever it's been configured to do. In cases where flicker-free boot is
desired, that would typically be reusing the BGRT graphics in the
framebuffer and overlaying or augmenting it with additional elements
like a loading spinner.

Other distributions have already used the options for a while in stable
configurations (Fedora, NixOS, Red Hat, OpenSUSE, Arch Linux, etc.), so
I believe the change would be relatively low-impact. There were some
concerns around combining GRUB and deferred takeover, but I believe that
was fixed back in 2018 by Fedora.

-- System Information:
Debian Release: 13.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.57+deb13-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=locale: Cannot set LC_ALL to default locale: No such file or directory
UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


Reply to: