From e2f5de7a4602a3f34ea14c5abc18d3e204c4784c Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Sun, 16 Aug 2009 05:35:34 +0000 Subject: [PATCH] add menuconfig option for selecting initramfs compression SVN-Revision: 17283 --- Config.in | 49 ++++++++++++++++++++++++++++---------- include/kernel-defaults.mk | 12 ++++++---- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/Config.in b/Config.in index 4076479021..ab4fbe8cd8 100644 --- a/Config.in +++ b/Config.in @@ -20,6 +20,31 @@ menu "Target Images" help Embed the rootfs into the kernel (initramfs) + choice + prompt "ramdisk compression" + depends TARGET_ROOTFS_INITRAMFS + depends !LINUX_2_6_21 + depends !LINUX_2_6_25 + depends !LINUX_2_6_27 + depends !LINUX_2_6_28 + default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx + default TARGET_INITRAMFS_COMPRESSION_NONE + help + Select ramdisk compression. + + config TARGET_INITRAMFS_COMPRESSION_NONE + bool "NONE" + + config TARGET_INITRAMFS_COMPRESSION_GZIP + bool "GZIP" + + config TARGET_INITRAMFS_COMPRESSION_BZIP2 + bool "BZIP2" + + config TARGET_INITRAMFS_COMPRESSION_LZMA + bool "LZMA" + endchoice + config TARGET_ROOTFS_JFFS2 bool "jffs2" default y if USES_JFFS2 @@ -40,14 +65,14 @@ menu "Target Images" depends !TARGET_ROOTFS_INITRAMFS help Build a compressed tar archive of the the root filesystem - + config TARGET_ROOTFS_CPIOGZ bool "cpiogz" default y if USES_CPIOGZ depends !TARGET_ROOTFS_INITRAMFS help Build a compressed cpio archive of the the root filesystem - + config TARGET_ROOTFS_EXT2FS bool "ext2" default y if USES_EXT2 @@ -55,12 +80,12 @@ menu "Target Images" help Ext2 file system with some free space for uml images - config TARGET_ROOTFS_ISO - bool "iso" - default n - depends TARGET_ROOTFS_INITRAMFS && TARGET_x86 - help - Create some bootable ISO image + config TARGET_ROOTFS_ISO + bool "iso" + default n + depends TARGET_ROOTFS_INITRAMFS && TARGET_x86 + help + Create some bootable ISO image comment "Image Options" @@ -158,11 +183,11 @@ config DEBUG_DIR This will install all compiled package binaries into build_dir/target-*/debug-*/, useful for cross-debugging via gdb/gdbserver -config IPV6 - bool +config IPV6 + bool prompt "Enable IPv6 support in packages" - default n - help + default n + help Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts). comment "Kernel build options" diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 0ba1e056a6..4266157d26 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -1,4 +1,4 @@ -# +# # Copyright (C) 2006-2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. @@ -49,7 +49,7 @@ define Kernel/Prepare/Default endef else define Kernel/Prepare/Default - git clone --reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) + git clone --reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) endef endif endif @@ -67,12 +67,14 @@ ifeq ($(KERNEL),2.6) ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) define Kernel/SetInitramfs mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config + grep -v -e INITRAMFS -e CONFIG_RD_ $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_COMPRESSION_NONE=y' >> $(LINUX_DIR)/.config - echo '# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set' >> $(LINUX_DIR)/.config + echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config endef else define Kernel/SetInitramfs