On a standard Debian, how to replace everything that is displayed at Linux boot by a custom JPG or PNG image, until a Python app with GUI starts?

Is there a generic way to replace the boot messages display with a CustomSplash.jpg image, in a seamless way, with no flicker, for:

  • GRUB (I already used this in /etc/default/grub: GRUB_HIDDEN_TIMEOUT=0, GRUB_HIDDEN_TIMEOUT_QUIET=true but I think there's still a very short GRUB splash screen)

  • these log messages:

    enter image description here

  • the start screen X11/Xfce4 (for now I have enabled an autologin like in Automatically Login on Debian 9.2.1 Command Line and I do startxfce4 manually, but eventually I'll create a systemd service to start xfce)

  • i.e. everything until a Python app starts (using Tkinter or wxPython)

For an embedded computer, I'd like to have only the custom splash screen and then the application. (The only thing I probably won't be able to remove is BIOS initial messages?).


Concerning the boot process per se: You can try to use "silent boot" settings (see e.g. here on the ArchWiki):

  • set quiet, followed by loglevel=0, on the kernel command line (GRUB_CMDLINE_LINUX in /etc/default/grub)
  • eliminate the cursor by setting vt.global_cursor_default=0 on the kernel command line


Relevant pages within the SE network:

... and probably others

Concerning your other points:

  • The BIOS messages will be impossible to remove from the OS side - if you have a commercial project and order the hardware to volume, you can probably reach an agreement with the manufacturer/integrator to replace the BIOS messages with your company logo.
  • Add splash to the kernel parameters and use plymouth for the splash screen


  • Add loglevel=0 to the kernel parameters.

To change kernel parameters edit /etc/default/grub if you are using the GRUB bootloader (probably)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.