diff --git a/target/linux/brcm-2.4/image/Makefile b/target/linux/brcm-2.4/image/Makefile index 6515d134c8..46c660f7f8 100644 --- a/target/linux/brcm-2.4/image/Makefile +++ b/target/linux/brcm-2.4/image/Makefile @@ -19,6 +19,9 @@ define Image/Prepare TARGET="$(KDIR)" \ clean install echo -ne "\\x00" >> $(KDIR)/loader.gz + rm -f $(KDIR)/fs_mark + touch $(KDIR)/fs_mark + $(call prepare_generic_squashfs,$(KDIR)/fs_mark) endef ifneq ($(KERNEL),2.4) @@ -41,22 +44,17 @@ define Image/Build/USR endef define trxalign/jffs2-128k --a 0x20000 +-a 0x20000 -f $(KDIR)/root.$(1) endef define trxalign/jffs2-64k --a 0x10000 +-a 0x10000 -f $(KDIR)/root.$(1) endef define trxalign/squashfs --a 1024 -endef - -define Image/Build/squashfs - $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) +-a 1024 -f $(KDIR)/root.$(1) -a 0x10000 -A $(KDIR)/fs_mark endef define Image/Build - $(call Image/Build/$(1)) - $(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx -f $(KDIR)/loader.gz -f $(KDIR)/vmlinux.lzma $(call trxalign/$(1)) -f $(KDIR)/root.$(1) + $(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx -f $(KDIR)/loader.gz -f $(KDIR)/vmlinux.lzma $(call trxalign/$(1),$(1)) ifneq ($(1),jffs2-128k) $(call Image/Build/CyberTAN,$(1),wrt54g3g,W54F,2.01.1,$(patsubst jffs2-%,jffs2,$(1))) $(call Image/Build/CyberTAN,$(1),wrt54g,W54G,4.60.1,$(patsubst jffs2-%,jffs2,$(1))) diff --git a/tools/firmware-utils/src/trx.c b/tools/firmware-utils/src/trx.c index 787ffa8946..1131238a4e 100644 --- a/tools/firmware-utils/src/trx.c +++ b/tools/firmware-utils/src/trx.c @@ -88,7 +88,7 @@ int main(int argc, char **argv) char *ofn = NULL; char *buf; char *e; - int c, i; + int c, i, append; size_t n; uint32_t cur_len; unsigned long maxlen = TRX_MAX_LEN; @@ -110,11 +110,15 @@ int main(int argc, char **argv) in = NULL; i = 0; - while ((c = getopt(argc, argv, "-:o:m:a:b:f:")) != -1) { + while ((c = getopt(argc, argv, "-:o:m:a:b:f:A:")) != -1) { switch (c) { + case 'A': + append = 1; + /* fall through */ case 'f': case 1: - p->offsets[i++] = STORE32_LE(cur_len); + if (!append) + p->offsets[i++] = STORE32_LE(cur_len); if (!(in = fopen(optarg, "r"))) { fprintf(stderr, "can not open \"%s\" for reading\n", optarg); @@ -134,6 +138,7 @@ int main(int argc, char **argv) n += ROUND - (n & (ROUND-1)); } cur_len += n; + append = 0; break; case 'o':