diff options
| author | Hamish Moffatt <hamish@cloud.net.au> | 2008-02-12 05:39:32 +0000 | 
|---|---|---|
| committer | Hamish Moffatt <hamish@cloud.net.au> | 2008-02-12 05:39:32 +0000 | 
| commit | 536e98effda4d9fe856befd7f5ac8123ea6e86fd (patch) | |
| tree | a687185dc86d693ac570953026e68f0a0d06a126 | |
| parent | 03d65319620f61c7757b2b051a3a9d21cba91aab (diff) | |
| download | buildroot-novena-536e98effda4d9fe856befd7f5ac8123ea6e86fd.tar.gz buildroot-novena-536e98effda4d9fe856befd7f5ac8123ea6e86fd.zip | |
Add support for summarising JFFS2 images. With support in the kernel this improves mount time significantly.
| -rw-r--r-- | package/mtd/20050122/mtd.mk | 11 | ||||
| -rw-r--r-- | package/mtd/20061007/mtd.mk | 11 | ||||
| -rw-r--r-- | package/mtd/mtd-utils/mtd.mk | 13 | ||||
| -rw-r--r-- | target/jffs2/Config.in | 7 | ||||
| -rw-r--r-- | target/jffs2/jffs2root.mk | 12 | 
5 files changed, 45 insertions, 9 deletions
| diff --git a/package/mtd/20050122/mtd.mk b/package/mtd/20050122/mtd.mk index 72832fa59..443b5c459 100644 --- a/package/mtd/20050122/mtd.mk +++ b/package/mtd/20050122/mtd.mk @@ -25,11 +25,12 @@ endif  #############################################################  # -# Build mkfs.jffs2 for use on the local host system if +# Build mkfs.jffs2 and sumtool for use on the local host system if  # needed by target/jffs2root.  #  #############################################################  MKFS_JFFS2 := $(MTD_HOST_DIR)/util/mkfs.jffs2 +SUMTOOL := $(MTD_HOST_DIR)/util/sumtool  ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)  $(DL_DIR)/$(MTD_SOURCE): @@ -55,11 +56,15 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)  	touch $@  endif -$(MTD_HOST_DIR)/util/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked +$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked  	CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \  		LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util mkfs.jffs2 -mtd-host: $(MKFS_JFFS2) +$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked +	CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \ +		LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util sumtool + +mtd-host: $(MKFS_JFFS2) $(SUMTOOL)  mtd-host-source: $(DL_DIR)/$(MTD_SOURCE) diff --git a/package/mtd/20061007/mtd.mk b/package/mtd/20061007/mtd.mk index bda366dde..fdd7bb0c7 100644 --- a/package/mtd/20061007/mtd.mk +++ b/package/mtd/20061007/mtd.mk @@ -12,11 +12,12 @@ MTD_DATE:=20061007  #############################################################  # -# Build mkfs.jffs2 for use on the local host system if +# Build mkfs.jffs2 and sumtool for use on the local host system if  # needed by target/jffs2root.  #  #############################################################  MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2 +SUMTOOL := $(MTD_HOST_DIR)/sumtool  $(DL_DIR)/$(MTD_SOURCE):  	$(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE) @@ -29,11 +30,15 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)  		package/mtd/$(MTD_DATE) \*.patch  	touch $@ -$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked +$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked  	CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \  		$(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) mkfs.jffs2 -mtd-host: $(MKFS_JFFS2) +$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked +	CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \ +		$(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) sumtool + +mtd-host: $(MKFS_JFFS2) $(SUMTOOL)  mtd-host-source: $(DL_DIR)/$(MTD_SOURCE) diff --git a/package/mtd/mtd-utils/mtd.mk b/package/mtd/mtd-utils/mtd.mk index 2274de923..86acc93bd 100644 --- a/package/mtd/mtd-utils/mtd.mk +++ b/package/mtd/mtd-utils/mtd.mk @@ -13,11 +13,12 @@ MTD_NAME:=mtd-utils-$(MTD_VERSION)  #############################################################  # -# Build mkfs.jffs2 for use on the local host system if +# Build mkfs.jffs2 and sumtool for use on the local host system if  # needed by target/jffs2root.  #  #############################################################  MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2 +SUMTOOL := $(MTD_HOST_DIR)/sumtool  $(DL_DIR)/$(MTD_SOURCE):  	$(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE) @@ -33,13 +34,19 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)  	touch $@ -$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked +$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked  	CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \  		$(MAKE) LINUXDIR=$(LINUX_DIR) \  		BUILDDIR=$(MTD_HOST_DIR) \  		-C $(MTD_HOST_DIR) mkfs.jffs2 -mtd-host: $(MKFS_JFFS2) +$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked +	CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \ +		$(MAKE) LINUXDIR=$(LINUX_DIR) \ +		BUILDDIR=$(MTD_HOST_DIR) \ +		-C $(MTD_HOST_DIR) sumtool + +mtd-host: $(MKFS_JFFS2) $(SUMTOOL)  mtd-host-source: $(DL_DIR)/$(MTD_SOURCE) 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)) | 
