Yocto Linux logo

From Variscite Wiki
Replacing the Linux logo with your own

Create your own logo file

Create your logo in a .png format (logo.png), and run the following to convert it to a 224 colors PPM formatted image file named logo_linux_clut224.ppm:

$ sudo apt-get install netpbm
$ pngtopnm logo.png | ppmquant 224 | pnmnoraw > logo_linux_clut224.ppm

Replace the default logo file in the Linux source

Using the Linux source code directly

Follow the "Build Linux from source code" guide to get the Linux kernel source tree.
Copy your logo_linux_clut224.ppm file to drivers/video/logo/logo_linux_clut224.ppm overwriting the original logo.
Configure your kernel and enable the default logo instead of the Variscite logo: Device Drivers -> Graphics support -> Bootup logo -> Standard 224-color Linux logo (Symbol: LOGO_LINUX_CLUT224)

If you want to create a different configuration for your own logo rather than overwriting the default one, you can look at this commit which adds the Variscite Linux logo to our kernel, and make a similar patch of your own.

Using Yocto

Add your logo_linux_clut224.ppm file to recipes-kernel/linux/files, create a bbappend file for the linux recipe (recipes-kernel/linux/linux-variscite_%.bbappend), and put the following in it:

FILESEXTRAPATHS:prepend = "${THISDIR}/${PN}:"
SRC_URI:append = " file://logo_linux_clut224.ppm"

TARGET_DEFCONFIG="${B}/.config"

do_configure:prepend() {
    # Add the kernel_defconf_variable function
    kernel_defconf_variable() {
       CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
       if test "$2" = "n"
       then
           echo "# CONFIG_$1 is not set" >>  ${TARGET_DEFCONFIG}
       else
           echo "CONFIG_$1=$2" >>  ${TARGET_DEFCONFIG}
       fi
    }
    # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used
    if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
        install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm ${S}/drivers/video/logo/logo_linux_clut224.ppm
        kernel_defconf_variable LOGO y
        kernel_defconf_variable LOGO_LINUX_CLUT224 y
        kernel_defconf_variable LOGO_VARISCITE_CLUT224 n
    fi
}
For Yocto Hardknott or older, change the overrides for 'SRC_URI:append' and 'do_configure:prepend' to SRC_URI_append and do_configure_prepend.