summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorHamish Moffatt <hamish@cloud.net.au>2008-02-12 05:39:32 +0000
committerHamish Moffatt <hamish@cloud.net.au>2008-02-12 05:39:32 +0000
commit536e98effda4d9fe856befd7f5ac8123ea6e86fd (patch)
treea687185dc86d693ac570953026e68f0a0d06a126 /target
parent03d65319620f61c7757b2b051a3a9d21cba91aab (diff)
Add support for summarising JFFS2 images. With support in the kernel this improves mount time significantly.
Diffstat (limited to 'target')
-rw-r--r--target/jffs2/Config.in7
-rw-r--r--target/jffs2/jffs2root.mk12
2 files changed, 19 insertions, 0 deletions
diff --git a/target/jffs2/Config.in b/target/jffs2/Config.in
index 45fa646e9..e4d463cf0 100644
--- a/target/jffs2/Config.in
+++ b/target/jffs2/Config.in
@@ -114,6 +114,13 @@ config BR2_TARGET_ROOTFS_JFFS2_SQUASH
bool "Make all files be owned by root"
depends on BR2_TARGET_ROOTFS_JFFS2
+config BR2_TARGET_ROOTFS_JFFS2_SUMMARY
+ bool "Produce a summarized JFFS2 image"
+ depends on BR2_TARGET_ROOTFS_JFFS2
+ help
+ A summarised image can be mounted faster if support is
+ enabled in the kernel (CONFIG_JFFS2_SUMMARY)
+
config BR2_TARGET_ROOTFS_JFFS2_OUTPUT
string "Output File"
depends on BR2_TARGET_ROOTFS_JFFS2
diff --git a/target/jffs2/jffs2root.mk b/target/jffs2/jffs2root.mk
index 6937b8f9d..404c678aa 100644
--- a/target/jffs2/jffs2root.mk
+++ b/target/jffs2/jffs2root.mk
@@ -5,6 +5,7 @@
#############################################################
JFFS2_OPTS := -e $(strip $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE))
+SUMTOOL_OPTS := $(JFFS2_OPTS)
ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PAD)),y)
ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0)
@@ -12,6 +13,7 @@ JFFS2_OPTS += --pad=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE))
else
JFFS2_OPTS += -p
endif
+SUMTOOLS_OPTS += -p
endif
ifeq ($(BR2_TARGET_ROOTFS_JFFS2_SQUASH),y)
@@ -20,16 +22,19 @@ endif
ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE),y)
JFFS2_OPTS += -l
+SUMTOOLS_OPTS += -l
endif
ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE),y)
JFFS2_OPTS += -b
+SUMTOOL_OPTS += -b
endif
ifneq ($(BR2_TARGET_ROOTFS_JFFS2_DEFAULT_PAGESIZE),y)
JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE)
ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y)
JFFS2_OPTS += -n
+SUMTOOL_OPTS += -n
endif
endif
@@ -70,8 +75,15 @@ ifneq ($(TARGET_DEVICE_TABLE),)
>> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
endif
# Use fakeroot so mkfs.jffs2 believes the previous fakery
+ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
+ echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET).nosummary && " \
+ "$(SUMTOOL) $(SUMTOOL_OPTS) -i $(JFFS2_TARGET).nosummary -o $(JFFS2_TARGET) && " \
+ "rm $(JFFS2_TARGET).nosummary" \
+ >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
+else
echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \
>> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
+endif
chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
$(STAGING_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
-@rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))