include/image-commands.mk: shorter version in Netgear factory header
authorHannu Nyman <hannu.nyman@iki.fi>
Sun, 17 Jun 2018 19:59:03 +0000 (22:59 +0300)
committerJohn Crispin <john@phrozen.org>
Mon, 18 Jun 2018 19:21:56 +0000 (21:21 +0200)
Shorten the version string in Netgear factory image header in order
to enable u-boot TFTP recovery flash mode to work again.

Strip 'r7210-14cb05909a' into 'r7210' in the Netgear image header
by removing the hash (anything after "-").

background:
Some Netgear routers have recently been unable to flash Openwrt
factory image with the TFTP recovery flash mode provided by Netgear
u-boot. That is due to over-long Openwrt version string overflowing
into the router type string in u-boot code. Modern git versions
produce 10-digit short hashes for the Openwrt main repo, and that
causes the version string to be too long in the image header,
breaking the image ID verification by the TFTP flash routine.

(Other option could be to force a shorter hash in scripts/getver.sh,
but as the problem only concerns Netgear routers, let's patch just
them.)

More detailed explanations in FS#1583

Tested with WNDR3800

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit dcfe2a461e4b06de6e2b23d29afebbb3c775f647)

include/image-commands.mk

index 82ceacd..1d8cced 100644 (file)
@@ -60,7 +60,7 @@ endef
 
 define Build/netgear-dni
        $(STAGING_DIR_HOST)/bin/mkdniimg \
-               -B $(NETGEAR_BOARD_ID) -v $(VERSION_DIST).$(REVISION) \
+               -B $(NETGEAR_BOARD_ID) -v $(VERSION_DIST).$(firstword $(subst -, ,$(REVISION))) \
                $(if $(NETGEAR_HW_ID),-H $(NETGEAR_HW_ID)) \
                -r "$(1)" \
                -i $@ -o $@.new