linux: add custom linux boot logo option
authorAngelo Compagnucci <angelo.compagnucci@gmail.com>
Fri, 24 Aug 2018 13:44:58 +0000 (15:44 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 21 Oct 2018 16:16:29 +0000 (18:16 +0200)
This patch adds a simple way to change the linux bootup logo.
The patch was kept purposely simple to support only the use cause
where a user needs a color linux boot up logo.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Peter: clarify/reword option/help text, automatically enable framebuffer
support, fix convert path]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
linux/Config.in
linux/linux.mk

index d372c2c1f8c11b393d328a00ccbdbe3ba1da8791..ecb12d0b16660620f09773c94f38cc6db2868128 100644 (file)
@@ -188,6 +188,14 @@ config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
          A space-separated list of kernel configuration fragment files,
          that will be merged to the main kernel configuration file.
 
+config BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH
+       string "Custom boot logo file path"
+       help
+         Use a custom Linux framebuffer boot logo.
+         Custom logo should be in PNG or JPEG format, it will be
+         converted to the linux kernel format (224 colors only)
+         and copied over the original logo file.
+
 #
 # Binary format
 #
index 675e7906a819a03f1962a3aca04ac90eacc9c176..e9c75153b29433bd55a3ba2fe533e6bb7f69283b 100644 (file)
@@ -248,6 +248,17 @@ define LINUX_TRY_PATCH_TIMECONST
 endef
 LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST
 
+LINUX_KERNEL_CUSTOM_LOGO_PATH = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH))
+ifneq ($(LINUX_KERNEL_CUSTOM_LOGO_PATH),)
+LINUX_DEPENDENCIES += host-imagemagick
+define LINUX_KERNEL_CUSTOM_LOGO_CONVERT
+       $(HOST_DIR)/bin/convert $(LINUX_KERNEL_CUSTOM_LOGO_PATH) \
+               -dither None -colors 224 -compress none \
+               $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm
+endef
+LINUX_PRE_BUILD_HOOKS += LINUX_KERNEL_CUSTOM_LOGO_CONVERT
+endif
+
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 LINUX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
 else ifeq ($(BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG),y)
@@ -349,6 +360,10 @@ define LINUX_KCONFIG_FIXUP_CMDS
                $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
        $(if $(BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV),
                $(call KCONFIG_DISABLE_OPT,CONFIG_MXC_GPU_VIV,$(@D)/.config))
+       $(if $(LINUX_KERNEL_CUSTOM_LOGO_PATH),
+               $(call KCONFIG_ENABLE_OPT,CONFIG_FB,$(@D)/.config)
+               $(call KCONFIG_ENABLE_OPT,CONFIG_LOGO,$(@D)/.config)
+               $(call KCONFIG_ENABLE_OPT,CONFIG_LOGO_LINUX_CLUT224,$(@D)/.config))
 endef
 
 ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)