aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2014-06-02 12:44:04 +0000
committerJohn Crispin <blogic@openwrt.org>2014-06-02 12:44:04 +0000
commit6c2dc179527dc3f1bf1fb7600f00d9a62fc38809 (patch)
tree413c1a9b8b4454634f6f9b42362f8b150bf7d979
parentb611a556d94b7d61087d2df4bd32509c3bc4ca9b (diff)
downloadmaster-187ad058-6c2dc179527dc3f1bf1fb7600f00d9a62fc38809.tar.gz
master-187ad058-6c2dc179527dc3f1bf1fb7600f00d9a62fc38809.tar.bz2
master-187ad058-6c2dc179527dc3f1bf1fb7600f00d9a62fc38809.zip
image: ext4: allow to choose a block size for the rootfs
Signed-off-by: Michael Heimpold <mhei@heimpold.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40924 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--config/Config-images.in24
-rw-r--r--include/image.mk4
2 files changed, 26 insertions, 2 deletions
diff --git a/config/Config-images.in b/config/Config-images.in
index 49569006e9..368f14768d 100644
--- a/config/Config-images.in
+++ b/config/Config-images.in
@@ -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
diff --git a/include/image.mk b/include/image.mk
index 53919052e9..e9cb0cc8f0 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -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