All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] linux: Adding customizable linux logo
@ 2016-12-06 19:08 Angelo Compagnucci
  2016-12-06 23:51 ` Arnout Vandecappelle
  2016-12-11 14:39 ` Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Angelo Compagnucci @ 2016-12-06 19:08 UTC (permalink / raw)
  To: buildroot

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.
+
+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
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] linux: Adding customizable linux logo
  2016-12-06 19:08 [Buildroot] [PATCH] linux: Adding customizable linux logo Angelo Compagnucci
@ 2016-12-06 23:51 ` Arnout Vandecappelle
  2016-12-07  6:47   ` Angelo Compagnucci
  2016-12-11 14:39 ` Thomas Petazzoni
  1 sibling, 1 reply; 4+ messages in thread
From: Arnout Vandecappelle @ 2016-12-06 23:51 UTC (permalink / raw)
  To: buildroot



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
> 

-- 
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] linux: Adding customizable linux logo
  2016-12-06 23:51 ` Arnout Vandecappelle
@ 2016-12-07  6:47   ` Angelo Compagnucci
  0 siblings, 0 replies; 4+ messages in thread
From: Angelo Compagnucci @ 2016-12-07  6:47 UTC (permalink / raw)
  To: buildroot

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
>



-- 
Profile: http://it.linkedin.com/in/compagnucciangelo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20161207/6721e1d4/attachment-0001.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] linux: Adding customizable linux logo
  2016-12-06 19:08 [Buildroot] [PATCH] linux: Adding customizable linux logo Angelo Compagnucci
  2016-12-06 23:51 ` Arnout Vandecappelle
@ 2016-12-11 14:39 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2016-12-11 14:39 UTC (permalink / raw)
  To: buildroot

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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-12-11 14:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-06 19:08 [Buildroot] [PATCH] linux: Adding customizable linux logo Angelo Compagnucci
2016-12-06 23:51 ` Arnout Vandecappelle
2016-12-07  6:47   ` Angelo Compagnucci
2016-12-11 14:39 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.