Skip to contentSkip to conversation

Add kernel compression selection.

PATCH New Maxime Hadjinlian 3 participants 3 messages Jul 12, 2015 – Dec 13, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add kernel compression selection.

From: Johan Sagaert <[email protected]>

This selection will ensure that the correct host tools will be build used for the kernel compression method used.

[Maxime: Select the compression opts in the kernel config too ]

---
V3->V4
Add selection menu in the kernel menu section. This ensures only things needed are build.
V2->V3
Unconditionally build lz4.
The building overhead is negligible.
V1->V2
Only add the host-lz4 dependency when ARM is selected. Don't touch host-lz4 package.

---
 linux/Config.in | 28 ++++++++++++++++++++++++++++
 linux/linux.mk  | 27 ++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)
linux/Config.in +28 -0
index 8c86a1a..73ae0b9 100644
@@ -254,6 +254,34 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
 
 endchoice
 
+#
+# Kernel compression format
+#
+
+choice
+	prompt "Kernel compression format"
+	help
+	  This selection will just ensure that the correct host tools are build.
+	  The actual compression for the kernel should be selected in the
+	  kernel configuration menu.
+
+config BR2_LINUX_KERNEL_GZIP
+	bool "gzip compression"
+
+config BR2_LINUX_KERNEL_LZ4
+	bool "lz4 compression"
+
+config BR2_LINUX_KERNEL_LZMA
+	bool "lzma compression"
+
+config BR2_LINUX_KERNEL_LZO
+	bool "lzo compression"
+
+config BR2_LINUX_KERNEL_XZ
+	bool "xz compression"
+
+endchoice
+
 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
 	string "Kernel image target name"
 	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
linux/linux.mk +26 -1
index eca1450..c710355 100644
@@ -56,7 +56,27 @@ LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
 LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
 
 LINUX_INSTALL_IMAGES = YES
-LINUX_DEPENDENCIES += host-kmod host-lzop
+LINUX_DEPENDENCIES += host-kmod
+
+# host tools needed for kernel compression
+ifeq ($(BR2_LINUX_KERNEL_LZ4),y)
+LINUX_DEPENDENCIES += host-lz4
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZ4
+else ifeq ($(BR2_LINUX_KERNEL_LZMA),y)
+LINUX_DEPENDENCIES += host-lzma
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZMA
+else ifeq ($(BR2_LINUX_KERNEL_LZO),y)
+LINUX_DEPENDENCIES += host-lzop
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZO
+else ifeq ($(BR2_LINUX_KERNEL_XZ),y)
+LINUX_DEPENDENCIES += host-xz
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_XZ
+endif
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_GZIP) = CONFIG_KERNEL_GZIP
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZ4) = CONFIG_KERNEL_LZ4
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) = CONFIG_KERNEL_LZMA
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) = CONFIG_KERNEL_LZO
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) = CONFIG_KERNEL_XZ
 
 ifeq ($(BR2_LINUX_KERNEL_UBOOT_IMAGE),y)
 LINUX_DEPENDENCIES += host-uboot-tools
@@ -187,6 +207,11 @@ LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
 LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
 
 define LINUX_KCONFIG_FIXUP_CMDS
+	$(call KCONFIG_ENABLE_OPT,$(LINUX_COMPRESSION_OPT_y),$(@D)/.config)
+	$(foreach opt, $(LINUX_COMPRESSION_OPT_),
+		$(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config)
+	)
+
 	$(if $(BR2_arm)$(BR2_armeb),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config))
 	$(if $(BR2_TARGET_ROOTFS_CPIO),
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 Add kernel compression selection.

Johan, Maxime, All,

On 2015-07-12 13:34 +0200, Maxime Hadjinlian spake thusly:

Quoted 9 lines

From: Johan Sagaert <[email protected]>

This selection will ensure that the correct host tools will be build used for the kernel compression method used.

[Maxime: Select the compression opts in the kernel config too ]

Regards,
Yann E. MORIN.

Quoted 106 lines

---
V3->V4
Add selection menu in the kernel menu section. This ensures only things needed are build.
V2->V3
Unconditionally build lz4.
The building overhead is negligible.
V1->V2
Only add the host-lz4 dependency when ARM is selected. Don't touch host-lz4 package.

---
 linux/Config.in | 28 ++++++++++++++++++++++++++++
 linux/linux.mk  | 27 ++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)
linux/Config.in +28 -0
index 8c86a1a..73ae0b9 100644
@@ -254,6 +254,34 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
 
 endchoice
 
+#
+# Kernel compression format
+#
+
+choice
+	prompt "Kernel compression format"
+	help
+	  This selection will just ensure that the correct host tools are build.
+	  The actual compression for the kernel should be selected in the
+	  kernel configuration menu.
+
+config BR2_LINUX_KERNEL_GZIP
+	bool "gzip compression"
+
+config BR2_LINUX_KERNEL_LZ4
+	bool "lz4 compression"
+
+config BR2_LINUX_KERNEL_LZMA
+	bool "lzma compression"
+
+config BR2_LINUX_KERNEL_LZO
+	bool "lzo compression"
+
+config BR2_LINUX_KERNEL_XZ
+	bool "xz compression"
+
+endchoice
+
 config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
 	string "Kernel image target name"
 	depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM
linux/linux.mk +26 -1
index eca1450..c710355 100644
@@ -56,7 +56,27 @@ LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
 LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
 
 LINUX_INSTALL_IMAGES = YES
-LINUX_DEPENDENCIES += host-kmod host-lzop
+LINUX_DEPENDENCIES += host-kmod
+
+# host tools needed for kernel compression
+ifeq ($(BR2_LINUX_KERNEL_LZ4),y)
+LINUX_DEPENDENCIES += host-lz4
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZ4
+else ifeq ($(BR2_LINUX_KERNEL_LZMA),y)
+LINUX_DEPENDENCIES += host-lzma
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZMA
+else ifeq ($(BR2_LINUX_KERNEL_LZO),y)
+LINUX_DEPENDENCIES += host-lzop
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_LZO
+else ifeq ($(BR2_LINUX_KERNEL_XZ),y)
+LINUX_DEPENDENCIES += host-xz
+LINUX_COMPRESSION_OPTS = CONFIG_KERNEL_XZ
+endif
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_GZIP) = CONFIG_KERNEL_GZIP
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZ4) = CONFIG_KERNEL_LZ4
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) = CONFIG_KERNEL_LZMA
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) = CONFIG_KERNEL_LZO
+LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) = CONFIG_KERNEL_XZ
 
 ifeq ($(BR2_LINUX_KERNEL_UBOOT_IMAGE),y)
 LINUX_DEPENDENCIES += host-uboot-tools
@@ -187,6 +207,11 @@ LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
 LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
 
 define LINUX_KCONFIG_FIXUP_CMDS
+	$(call KCONFIG_ENABLE_OPT,$(LINUX_COMPRESSION_OPT_y),$(@D)/.config)
+	$(foreach opt, $(LINUX_COMPRESSION_OPT_),
+		$(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config)
+	)
+
 	$(if $(BR2_arm)$(BR2_armeb),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config))
 	$(if $(BR2_TARGET_ROOTFS_CPIO),
Signature · 6 lines
2.1.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 Add kernel compression selection.

In reply to Maxime Hadjinlian

Dear Maxime Hadjinlian,

Quoted 19 lines · Maxime Hadjinlian

From: Johan Sagaert <[email protected]>

This selection will ensure that the correct host tools will be build used for the kernel compression method used.

[Maxime: Select the compression opts in the kernel config too ]

---
V3->V4
Add selection menu in the kernel menu section. This ensures only things needed are build.
V2->V3
Unconditionally build lz4.
The building overhead is negligible.
V1->V2
Only add the host-lz4 dependency when ARM is selected. Don't touch host-lz4 package.

Quoted 4 lines
---
 linux/Config.in | 28 ++++++++++++++++++++++++++++
 linux/linux.mk  | 27 ++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com