From 536e98effda4d9fe856befd7f5ac8123ea6e86fd Mon Sep 17 00:00:00 2001 From: Hamish Moffatt Date: Tue, 12 Feb 2008 05:39:32 +0000 Subject: Add support for summarising JFFS2 images. With support in the kernel this improves mount time significantly. --- target/jffs2/Config.in | 7 +++++++ target/jffs2/jffs2root.mk | 12 ++++++++++++ 2 files changed, 19 insertions(+) (limited to 'target/jffs2') 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)) -- cgit v1.2.3