From 2b0cb2074f88b6ab8d6596609d79550c48fb6418 Mon Sep 17 00:00:00 2001 From: blogic Date: Tue, 14 Oct 2014 12:21:41 +0000 Subject: [PATCH] ar71xx: fix seama factory type image generation. Currently JFFS2 end-of-filesystem marker 0xdeadc0de is included the computation of image's MD5 checksum as part of the seama header. But OpenWrt will erase blocks including and after the marker thus invalidating the checksum after the first boot. Signed-off-by: Yousong Zhou git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42915 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ar71xx/image/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index c307abef85..78e2d705ce 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -673,13 +673,15 @@ define Image/Build/Seama -rm -f $(KDIR_TMP)/image-$(2).tmp $(call CatFiles,$(KDIR_TMP)/loader-$(2).bin.lzma,$$$$(($(6) - 64)),$(KDIR)/root.$(1),$(7),$(KDIR_TMP)/image-$(2).tmp) [ -e "$(KDIR_TMP)/image-$(2).tmp" ] && { \ + head -c -4 "$(KDIR_TMP)/image-$(2).tmp" > "$(KDIR_TMP)/image-$(2).no-jffs2mark.tmp"; \ $(STAGING_DIR_HOST)/bin/seama \ - -i $(KDIR_TMP)/image-$(2).tmp \ + -i $(KDIR_TMP)/image-$(2).no-jffs2mark.tmp \ -m "dev=/dev/mtdblock/1" -m "type=firmware"; \ $(STAGING_DIR_HOST)/bin/seama \ -s $(call imgname,$(1),$(2))-factory.bin \ -m "signature=$(5)" \ - -i $(KDIR_TMP)/image-$(2).tmp.seama; \ + -i $(KDIR_TMP)/image-$(2).no-jffs2mark.tmp.seama; \ + tail -c 4 "$(KDIR_TMP)/image-$(2).tmp" >> $(call imgname,$(1),$(2))-factory.bin; \ } cat $(KDIR_TMP)/loader-$(2).bin.lzma > $(KDIR_TMP)/image-$(2)-sysupgrade.tmp $(STAGING_DIR_HOST)/bin/seama \ -- 2.11.0