add menuconfig option for selecting initramfs compression
authorGabor Juhos <juhosg@openwrt.org>
Sun, 16 Aug 2009 05:35:34 +0000 (05:35 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 16 Aug 2009 05:35:34 +0000 (05:35 +0000)
SVN-Revision: 17283

Config.in
include/kernel-defaults.mk

index 40764790219127af606449d8a861722899bc1300..ab4fbe8cd8701c1f52a7d15b9da59c89004034d8 100644 (file)
--- 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"
index 0ba1e056a69a30c5c626e66d6e66d6190aeaac8b..4266157d266e9998e64810ce8f4793dbd6f26600 100644 (file)
@@ -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