Message ID | 1481051295-1190-1-git-send-email-angelo.compagnucci@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
On 06-12-16 20:08, Angelo Compagnucci wrote: > This patch adds a custom linux logo to the generated kernel image. > > Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> > --- > linux/Config.ext.in | 26 ++++++++++++++++++++++++++ > linux/linux-ext-customlogo.mk | 19 +++++++++++++++++++ > 2 files changed, 45 insertions(+) > create mode 100644 linux/linux-ext-customlogo.mk > > diff --git a/linux/Config.ext.in b/linux/Config.ext.in > index 011dffb..da63109 100644 > --- a/linux/Config.ext.in > +++ b/linux/Config.ext.in > @@ -1,5 +1,31 @@ > menu "Linux Kernel Extensions" > > +# Custom logo > +config BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > + bool "Custom logo" > + select BR2_PACKAGE_CUSTOMLOGO > + help > + Change linux boot logo with your own graphics. > + Can be used as an early bootsplash. > + The file should be in kernel ppm format if the > + option BR2_PACKAGE_CUSTOMLOGO_CONVERT is not > + selected. You should wrap at 72 colums (where tab counts as 8, so 62 effective characters). > + > +config BR2_PACKAGE_CUSTOMLOGO_PATH > + string "Image file path" > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > + help > + This image will be used as custom logo. > + > +config BR2_PACKAGE_CUSTOMLOGO_CONVERT The feedback in your RFC patch was to remove the convert option. Regards, Arnout > + bool "Convert custom logo to kernel format" > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > + help > + If checked, the convert command will be run on the source > + image file to obtain a kernel compatible ppm image file. > + *REQUIRES* a pre installed imagemagick on the host system > + to convert the image. > + > #------------------------------------------------------------------------------- > # Xenomai > config BR2_LINUX_KERNEL_EXT_XENOMAI > diff --git a/linux/linux-ext-customlogo.mk b/linux/linux-ext-customlogo.mk > new file mode 100644 > index 0000000..99e3ab1 > --- /dev/null > +++ b/linux/linux-ext-customlogo.mk > @@ -0,0 +1,19 @@ > +################################################################################ > +# > +# Custom logo > +# > +################################################################################ > + > +LINUX_EXTENSIONS += customlogo > + > +ifeq ($(BR2_PACKAGE_CUSTOMLOGO_CONVERT),) > +define CUSTOMLOGO_PREPARE_KERNEL > + cp $(BR2_PACKAGE_CUSTOMLOGO_PATH) $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm > +endef > +else > +define CUSTOMLOGO_PREPARE_KERNEL > + convert $(BR2_PACKAGE_CUSTOMLOGO_PATH) \ > + -dither None -colors 224 -compress none \ > + $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm > +endef > +endif >
Dear Arnout Vandecappelle, 2016-12-07 0:51 GMT+01:00 Arnout Vandecappelle <arnout@mind.be>: > > > On 06-12-16 20:08, Angelo Compagnucci wrote: > > This patch adds a custom linux logo to the generated kernel image. > > > > Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> > > --- > > linux/Config.ext.in | 26 ++++++++++++++++++++++++++ > > linux/linux-ext-customlogo.mk | 19 +++++++++++++++++++ > > 2 files changed, 45 insertions(+) > > create mode 100644 linux/linux-ext-customlogo.mk > > > > diff --git a/linux/Config.ext.in b/linux/Config.ext.in > > index 011dffb..da63109 100644 > > --- a/linux/Config.ext.in > > +++ b/linux/Config.ext.in > > @@ -1,5 +1,31 @@ > > menu "Linux Kernel Extensions" > > > > +# Custom logo > > +config BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > > + bool "Custom logo" > > + select BR2_PACKAGE_CUSTOMLOGO > > + help > > + Change linux boot logo with your own graphics. > > + Can be used as an early bootsplash. > > + The file should be in kernel ppm format if the > > + option BR2_PACKAGE_CUSTOMLOGO_CONVERT is not > > + selected. > > You should wrap at 72 colums (where tab counts as 8, so 62 effective > characters). > Ok! > > > + > > +config BR2_PACKAGE_CUSTOMLOGO_PATH > > + string "Image file path" > > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > > + help > > + This image will be used as custom logo. > > + > > +config BR2_PACKAGE_CUSTOMLOGO_CONVERT > > The feedback in your RFC patch was to remove the convert option. > Yes I know. Let me explain my point of view. There are a tons of way a buildroot power user can overwrite the linux boot logo, but my intent here is not to present something complex to the average user. This option would cover a simple use case of a user which wants to have a custom boot logo without too much of a hassle, something like the ethernet boot options does. It not covers all the corner cases, only a basic and useful one. The complex part here is to obtain the ppm file in a correct format and guessing the correct combo of options requires a bit of trial and error. If it's not feasible to run a pre-installed executable on the host system, I will add a dependency on imagemagick, but I think it's a bit overkill to compile all that stuff only to convert an image for a bunch of milliseconds. Sincerely, Angelo > > > Regards, > Arnout > > > + bool "Convert custom logo to kernel format" > > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > > + help > > + If checked, the convert command will be run on the source > > + image file to obtain a kernel compatible ppm image file. > > + *REQUIRES* a pre installed imagemagick on the host system > > + to convert the image. > > + > > #----------------------------------------------------------- > -------------------- > > # Xenomai > > config BR2_LINUX_KERNEL_EXT_XENOMAI > > diff --git a/linux/linux-ext-customlogo.mk b/linux/linux-ext-customlogo. > mk > > new file mode 100644 > > index 0000000..99e3ab1 > > --- /dev/null > > +++ b/linux/linux-ext-customlogo.mk > > @@ -0,0 +1,19 @@ > > +########################################################### > ##################### > > +# > > +# Custom logo > > +# > > +########################################################### > ##################### > > + > > +LINUX_EXTENSIONS += customlogo > > + > > +ifeq ($(BR2_PACKAGE_CUSTOMLOGO_CONVERT),) > > +define CUSTOMLOGO_PREPARE_KERNEL > > + cp $(BR2_PACKAGE_CUSTOMLOGO_PATH) $(LINUX_DIR)/drivers/video/ > logo/logo_linux_clut224.ppm > > +endef > > +else > > +define CUSTOMLOGO_PREPARE_KERNEL > > + convert $(BR2_PACKAGE_CUSTOMLOGO_PATH) \ > > + -dither None -colors 224 -compress none \ > > + $(LINUX_DIR)/drivers/video/ > logo/logo_linux_clut224.ppm > > +endef > > +endif > > > > -- > Arnout Vandecappelle arnout at mind be > Senior Embedded Software Architect +32-16-286500 > Essensium/Mind http://www.mind.be > G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven > LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle > GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF >
Hello, On Tue, 6 Dec 2016 20:08:15 +0100, Angelo Compagnucci wrote: > This patch adds a custom linux logo to the generated kernel image. > > Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> > --- > linux/Config.ext.in | 26 ++++++++++++++++++++++++++ > linux/linux-ext-customlogo.mk | 19 +++++++++++++++++++ > 2 files changed, 45 insertions(+) > create mode 100644 linux/linux-ext-customlogo.mk > > diff --git a/linux/Config.ext.in b/linux/Config.ext.in > index 011dffb..da63109 100644 > --- a/linux/Config.ext.in > +++ b/linux/Config.ext.in > @@ -1,5 +1,31 @@ > menu "Linux Kernel Extensions" Why is this implemented as a Linux extension? There's no reason for that, it could just be an option of the Linux package itself. > +# Custom logo > +config BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > + bool "Custom logo" > + select BR2_PACKAGE_CUSTOMLOGO > + help > + Change linux boot logo with your own graphics. > + Can be used as an early bootsplash. > + The file should be in kernel ppm format if the > + option BR2_PACKAGE_CUSTOMLOGO_CONVERT is not > + selected. > + > +config BR2_PACKAGE_CUSTOMLOGO_PATH > + string "Image file path" > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO > + help > + This image will be used as custom logo. > + > +config BR2_PACKAGE_CUSTOMLOGO_CONVERT > + bool "Convert custom logo to kernel format" > + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO Why do we have this sub-option? Makes more sense to just run "convert" unconditionally. Of course, as Arnout said, this will require add host-imagemagick in the dependencies of the linux package. > +ifeq ($(BR2_PACKAGE_CUSTOMLOGO_CONVERT),) > +define CUSTOMLOGO_PREPARE_KERNEL > + cp $(BR2_PACKAGE_CUSTOMLOGO_PATH) $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm But there's a more fundamental problem to this: you're simply generating logo_linux_clut224.ppm, but what tells you that the kernel is going to use this specific file? Depending on whether the screen supports 1-bit, 4-bit or 8-bit pixel depth, and depending on the kernel configuration in drivers/video/logo/, it's not necessarily logo_linux_clut224.ppm that will be used. I think if we want to do this, we want to: - Enable CONFIG_LOGO_LINUX_MONO, CONFIG_LOGO_LINUX_VGA16 and CONFIG_LOGO_LINUX_CLUT224 - Install logo_linux_clut224.ppm, logo_linux_mono.pbm and logo_linux_vga16.ppm. However, this means the user can no longer disable CONFIG_LOGO_LINUX_VGA16 and/or CONFIG_LOGO_LINUX_MONO if he only uses CONFIG_LOGO_LINUX_CLUT224. Overall, I think the benefit is really not worth the complexity. Best regards, Thomas
diff --git a/linux/Config.ext.in b/linux/Config.ext.in index 011dffb..da63109 100644 --- a/linux/Config.ext.in +++ b/linux/Config.ext.in @@ -1,5 +1,31 @@ menu "Linux Kernel Extensions" +# Custom logo +config BR2_LINUX_KERNEL_EXT_CUSTOMLOGO + bool "Custom logo" + select BR2_PACKAGE_CUSTOMLOGO + help + Change linux boot logo with your own graphics. + Can be used as an early bootsplash. + The file should be in kernel ppm format if the + option BR2_PACKAGE_CUSTOMLOGO_CONVERT is not + selected. + +config BR2_PACKAGE_CUSTOMLOGO_PATH + string "Image file path" + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO + help + This image will be used as custom logo. + +config BR2_PACKAGE_CUSTOMLOGO_CONVERT + bool "Convert custom logo to kernel format" + depends on BR2_LINUX_KERNEL_EXT_CUSTOMLOGO + help + If checked, the convert command will be run on the source + image file to obtain a kernel compatible ppm image file. + *REQUIRES* a pre installed imagemagick on the host system + to convert the image. + #------------------------------------------------------------------------------- # Xenomai config BR2_LINUX_KERNEL_EXT_XENOMAI diff --git a/linux/linux-ext-customlogo.mk b/linux/linux-ext-customlogo.mk new file mode 100644 index 0000000..99e3ab1 --- /dev/null +++ b/linux/linux-ext-customlogo.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# Custom logo +# +################################################################################ + +LINUX_EXTENSIONS += customlogo + +ifeq ($(BR2_PACKAGE_CUSTOMLOGO_CONVERT),) +define CUSTOMLOGO_PREPARE_KERNEL + cp $(BR2_PACKAGE_CUSTOMLOGO_PATH) $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm +endef +else +define CUSTOMLOGO_PREPARE_KERNEL + convert $(BR2_PACKAGE_CUSTOMLOGO_PATH) \ + -dither None -colors 224 -compress none \ + $(LINUX_DIR)/drivers/video/logo/logo_linux_clut224.ppm +endef +endif
This patch adds a custom linux logo to the generated kernel image. Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com> --- linux/Config.ext.in | 26 ++++++++++++++++++++++++++ linux/linux-ext-customlogo.mk | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 linux/linux-ext-customlogo.mk