I've seen a want over my time using the pi for projects to have fancy boot splash screens. Most users I've interacted with over the years have been looking for something simple, and easy to maintain. It uses a simple initramfs contains no kernel modules and as such doesn't need to update.
Initramfs-Splash
I've been working my way to this for some time as I gathered knowledge now I give to you Initramfs-splash. This is what I think can solve the wants of most user looking for a simple way to boot splash. The goal was to keep it simple and not introduce upkeep.
What is it
To put it simply this a program that loads very early in the boot sequence. It's meant for users of the lite flavour or Raspberry Pi OS who don't want to mess about with Plymouth or just want to show a static image during boot. However it should work on other OS platforms as long as they don't require an initramfs to boot.
Quick Start
To get up and running is very simple!!
Code: Select all
git clone --depth=1 https://gitlab.com/DarkElvenAngel/initramfs-splash.git
Code: Select all
initramfs initramfs.img
Code: Select all
logo.nologo loglevel=0 splash silent quiet
Next you need the image you want to display this can be a PNG, JPEG, or BMP copy it to the /boot and edit /boot/splash.txt
Code: Select all
## Initramfs-Splash
image=splash.png
If your image is smaller than the current display size and you want it to be full screen add this line to the /boot/splash.txt
Code: Select all
fullscreen=1
Code: Select all
stretch=1
Next run this command from initramfs-splash folder you cloned
Code: Select all
sudo cp boot/initramfs.img /boot
Issues
Currently there are some issues I don't support MSD or NetBooting at this time.
This doesn't work with PINN, NOOBS, or any software like it.
Out of the box this project is incompatible with the overlayfs option offered with the raspi-config. There is a workaround found here
PI 4B and the vc-fkms-v3d
This combination has an issue that can not be overcome. The driver needs to reset the framebuffer as it does this the contents are erased there is currently no way to stop this other than disabling the driver. The workaround is to create a service that will reload the image to the display after this reset has happened. This has the effect of having the image on screen for a moment then the screen goes black and the image comes back.
Updates
As I have new information I will add it here
AUG 24 2020 : Added the option to display image full screen by setting the option in the splash.txt
AUG 25 2020 : Added the option to stretch image full screen by setting the option in the splash.txt
DEC 04 2020 : Due to a bug in fbsplash exposed by recent kernel change it necessary to update your initramfs.img
All comments, question or issues welcome.
Thank you.