How do I prevent boot processes and system initialization processes from clearing the kernel's frame buffer? [Arch/6.11.6/unified kernel image]
0
votes
0
answers
79
views
I am trying to get the boot splash I built into my unified kernel image to remain on screen for more of the boot process. Currently the transition from the UEFI logo to the boot splash is completely seamless, but the boot splash shuts off a considerable amount of time before my login screen appears. I'm not expecting a perfectly seamless transition from splash to login, as nice as that would be, but there must be some way to at least hang onto it for a little longer while things that don't need the display are initializing. As far as I can tell based on the research I've done, some process is clearing the initial frame buffer set up by the kernel, which I've taken a few steps to address, but I'm not entirely sure if I've done everything I can. Here's a quick overview of all my different settings.
Splash built into the unified kernel image using /etc/mkinitcpio.d/linux.preset
default_uki="/boot/arch-linux.efi"
default_options="--splash=/etc/mkinitcpio.d/bootsplash.bmp"
KMS removed from mkinitcpio.conf hooks to prevent early modesetting by the GPU
HOOKS=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems)
amdgpu.seamless=1 added to kernel parameters to smooth the transition to amdgpu when it inevitably does takeover, as well as various output silencing parameters
quiet
loglevel=3
systemd.show_status=auto
rd.udev.log_level=3
vt.global_cursor_default=0
amdgpu.seamless=1
I've also added the line
TTYVTDisallocate=no
to both systemd-vconsole-setup.service and getty@tty1.service
Can anyone think of anything else I should be changing/adding/trying?
Please refrain from suggesting I use Plymouth, it is notoriously buggy unless you specifically use software and hardware that integrates well with it. I tried for two days straight, the only way I could get a seamless transition from UEFI to splash was by configuring it to use the simpledrm driver which completely borked the resolution. Opting for the amdgpu driver and kernel mode setting with Plymouth causes there to be a black screen between the UEFI logo and the splash screen due to the time it takes for the amdgpu to actually initialize. This is a well documented problem if you take the time to look into it. Again, please do not suggest I use Plymouth. I'm not looking for splash screen alternatives, I'm looking for an answer to the question in the post title. It may be that there is no way to do so, and if that is the case then so be it, but that's what I'm here to find out. Thank you for taking the time to read.
Asked by Prod. EGO
(1 rep)
Nov 7, 2024, 06:21 PM