How to I enable splash screen and bootup logo using Yocto recipe


We are using Toradex Apalis imx8 SOM and the Yocto Project. We are using a standard HDMI monitor as the display output device.

I would like to know the steps/procedure that I can follow to enable the bootup logo and splash screen using Yocto recipes. I have gone through many posts related to splash screen(s) but they are mainly concentrated on Torizon core.

Currently, I don’t see any logo (even the default logo) while booting up, instead, I know a boot log on the HDMI display.
uboot setup arguments are currently set as “setup=run loadhdp; hdp load ${hdp_addr}; run mmcargs”

Standard 224-color Linux logo is enabled in manuconfig under Bootup logo settings.

I am using toradex dunfell branch to build my yocto project


Hi @Dhanyakumar

Welcome to toradex community.
You can add a splash/boot screen to yocto recipe in various methods like patching,adding custom defconfig,or altering the kernel config options etc.
Hereby i’m attaching the steps to do the same
1.Create a custom meta layer and kernel recipe(recipes-kernel) as described Here
2.Now add 224-logo(logo_custom_clut224.ppm) file to recipes-kernel/linux/linux-toradex directory.Steps to create custom Splash logo
3.Add the changes in the kernel bbappend file.provided sample file(linux-toradex_5.4%.bbappend
linux-toradex_5.4%.bbappend (669 Bytes)
).you can add the addition patchs here if needed.
4.Now build the custom image.

For u-boot splash logo,add the patchs to u-boot append file i.e recipes-bsp/u-boot/u-boot-toradex_%.bbappend

Hi Ashok

Thank you for your response.

I followed all the steps that you suggested but I don’t see the logo appearing while booting up.
I am not even seeing a default Linux logo appearing on the HDMI monitor while booting.

Hi @Dhanyakumar

Hope you have disabled the framebuffer console in u-boot.if not please use the below command to disable the same.
#setenv setup ‘setenv setupargs console=${console},${baudrate}n8 ${memargs} consoleblank=0’
#setenv defargs consoleblank=0 vt.global_cursor_default=0

For more information,please refer to the framebuffer-linux article.

Thank you for your response.

Yes, I did.

HDMI monitor is blank until kernel boot is completed. I see the DEMO QT application on the monitor after booting up, until then I don’t see anything on the HDMI display (monitor)


Hi @Dhanyakumar

Could you provide the changes that you have made in yocto and provide the output of
#zcat /proc/config.gz | grep LOGO output from target board.


Here is the output from board.

apalis-imx8-07107212 login: root
Last login: Sun Sep 20 10:44:14 UTC 2020
root@apalis-imx8-07107212:~# zcat /proc/config.gz | grep LOGO





This is the content of my linux-torade_%.bbappend file

FILESEXTRAPATHS_prepend := “${THISDIR}/linux-toradex-5.4-2.3.x:”

SRC_URI += “file://0001-nhp-board-update-dts-v1.patch

#Make changes to the kernel .config
config_script () {
echo “CONFIG_LOGO_CUSTOM_CLUT224=y” >> ${B}/.config
echo “CONFIG_LOGO_LINUX_MONO=n” >> ${B}/.config
echo “CONFIG_LOGO_LINUX_VGA16=n” >> ${B}/.config
echo “CONFIG_LOGO_LINUX_CLUT224=n” >> ${B}/.config


#Copy the boot logo to kernel source
do_configure_prepend() {
cp ${WORKDIR}/logo_custom_clut224.ppm ${S}/drivers/video/logo

Logo format:
1024*600 ASCII format - follower steps asper splash screen link that you shared earlier

Placed logo file inside Files directory of the recipe


Hi @Dhanyakumar

bbappend file looks good.Could you provide the splash/boot image(png) image, so that i can test with my set up and update you.


You need ppm or png image.

I have created ppm image file as per instructions in URL :

(Attachment logo_custom_clut224.ppm is missing) (80.9 KB)

attached as zip as file size was >4MB

Hi @Dhanyakumar

Sorry for the delay.
Unfortunaly,Splash screen/boot logo feture is not supported on Apalis imx8 for HDMI displays.
It should work for LVDS displays.