image: ext4: allow to choose a block size for the rootfs
authorJohn Crispin <john@openwrt.org>
Mon, 2 Jun 2014 12:44:04 +0000 (12:44 +0000)
committerJohn Crispin <john@openwrt.org>
Mon, 2 Jun 2014 12:44:04 +0000 (12:44 +0000)
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
SVN-Revision: 40924

config/Config-images.in
include/image.mk

index 49569006e90b92deed6298abfc54876e1719e592..368f14768d8cf3fb4540a537f37fd6b4131a7bf8 100644 (file)
@@ -86,6 +86,30 @@ menu "Target Images"
                        help
                          Allows you to change the percentage of reserved blocks in the root filesystem
 
                        help
                          Allows you to change the percentage of reserved blocks in the root filesystem
 
+               choice
+                       prompt "Root filesystem block size""
+                       default TARGET_EXT4_BLOCKSIZE_4K
+                       depends TARGET_ROOTFS_EXT4FS
+                       help
+                         Allows you to change the block size of the root filesystem
+
+                       config TARGET_EXT4_BLOCKSIZE_4K
+                               bool "4k"
+
+                       config TARGET_EXT4_BLOCKSIZE_2K
+                               bool "2k"
+
+                       config TARGET_EXT4_BLOCKSIZE_1K
+                               bool "1k"
+               endchoice
+
+               config TARGET_EXT4_BLOCKSIZE
+                       int
+                       default 4096 if TARGET_EXT4_BLOCKSIZE_4K
+                       default 2048 if TARGET_EXT4_BLOCKSIZE_2K
+                       default 1024 if TARGET_EXT4_BLOCKSIZE_1K
+                       depends TARGET_ROOTFS_EXT4FS
+
        config TARGET_ROOTFS_ISO
                bool "iso"
                default n
        config TARGET_ROOTFS_ISO
                bool "iso"
                default n
index 53919052e9f0bcf777bb140746df51c2e4cf3655..e9cb0cc8f02729fbd689ddcc72da77cbce4ba243 100644 (file)
@@ -184,11 +184,11 @@ ifneq ($(CONFIG_TARGET_ROOTFS_TARGZ),)
 endif
 
 ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),)
 endif
 
 ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),)
-  E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024)))
+  E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024/$(CONFIG_TARGET_EXT4_BLOCKSIZE))))
 
   define Image/mkfs/ext4
 # generate an ext2 fs
 
   define Image/mkfs/ext4
 # generate an ext2 fs
-       $(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 -m $(CONFIG_TARGET_ROOTFS_RESERVED_PCT) $(MKFS_DEVTABLE_OPT)
+       $(STAGING_DIR_HOST)/bin/genext2fs -U -B $(CONFIG_TARGET_EXT4_BLOCKSIZE) -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 -m $(CONFIG_TARGET_ROOTFS_RESERVED_PCT) $(MKFS_DEVTABLE_OPT)
 # convert it to ext4
        $(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up
 # convert it to ext4
        $(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
 # fix it up