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
 
+               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
index 53919052e9f0bcf777bb140746df51c2e4cf3655..e9cb0cc8f02729fbd689ddcc72da77cbce4ba243 100644 (file)
@@ -184,11 +184,11 @@ ifneq ($(CONFIG_TARGET_ROOTFS_TARGZ),)
 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
-       $(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