IMG_PREFIX:=openwrt-$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
ifneq ($(CONFIG_BIG_ENDIAN),)
- JFFS2OPTS := --pad --big-endian --squash -v
+ JFFS2OPTS := --pad --big-endian --squash-uids -v
else
- JFFS2OPTS := --pad --little-endian --squash -v
+ JFFS2OPTS := --pad --little-endian --squash-uids -v
endif
ifeq ($(CONFIG_JFFS2_RTIME),y)
SQUASHFSCOMP := lzma $(LZMA_XZ_OPTIONS)
endif
ifeq ($(CONFIG_SQUASHFS_XZ),y)
- SQUASHFSCOMP := xz $(LZMA_XZ_OPTIONS)
+ ifneq ($(filter arm x86 powerpc sparc,$(LINUX_KARCH)),)
+ BCJ_FILTER:=-Xbcj $(LINUX_KARCH)
+ endif
+ SQUASHFSCOMP := xz $(LZMA_XZ_OPTIONS) $(BCJ_FILTER)
endif
JFFS2_BLOCKSIZE ?= 64k 128k
else
- ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2),)
- define Image/mkfs/jffs2/sub
+ define Image/mkfs/jffs2/sub
# FIXME: removing this line will cause strange behaviour in the foreach loop below
- $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(JFFS2OPTS) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(1) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
- $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(1))
- $(call Image/Build,jffs2-$(1))
- endef
+ $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
+ $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(2))
+ $(call Image/Build,jffs2-$(2))
+ endef
+
+ ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2),)
define Image/mkfs/jffs2
- $(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/sub,$(SZ)))
+ $(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/sub,$(SZ),$(SZ),$(JFFS2OPS)))
+ endef
+ endif
+
+ ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2_NAND),)
+ define Image/mkfs/jffs2_nand
+ $(foreach SZ,$(NAND_BLOCKSIZE), $(call Image/mkfs/jffs2/sub, \
+ $(word 2,$(subst :, ,$(SZ))),nand-$(subst :,-,$(SZ)), \
+ $(JFFS2OPTS) --no-cleanmarkers --pagesize=$(word 1,$(subst :, ,$(SZ)))) \
+ )
endef
endif
define Image/mkfs/ubifs
$(CP) ./ubinize.cfg $(KDIR)
$(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) -o $(KDIR)/root.ubifs -d $(TARGET_DIR)
+ $(call Image/Build,ubifs)
(cd $(KDIR); \
$(STAGING_DIR_HOST)/bin/ubinize $(UBINIZE_OPTS) -o $(KDIR)/root.ubi ubinize.cfg)
$(call Image/Build,ubi)
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
+ $(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)
# convert it to ext4
$(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4
# fix it up
- $(FIND) $(TARGET_DIR) -type f -perm +0100 -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
- $(FIND) $(TARGET_DIR) -type d -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
$(INSTALL_DIR) $(TARGET_DIR)/tmp
- chmod 0777 $(TARGET_DIR)/tmp
+ chmod 1777 $(TARGET_DIR)/tmp
endef
define Image/mkfs/prepare
$(call Image/mkfs/ext4)
$(call Image/mkfs/iso)
$(call Image/mkfs/jffs2)
+ $(call Image/mkfs/jffs2_nand)
$(call Image/mkfs/squashfs)
$(call Image/mkfs/ubifs)
$(call Image/Checksum)
$(call Image/mkfs/ext4)
$(call Image/mkfs/iso)
$(call Image/mkfs/jffs2)
+ $(call Image/mkfs/jffs2_nand)
$(call Image/mkfs/squashfs)
$(call Image/mkfs/ubifs)
$(call Image/Checksum)