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 18:29:37 +0000 (20:29 +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>
include/image-commands.mk

index 395e31f9947cc9e81bd2e01361162ca0c7bb794c..4d3f025b123f44cfd48d5b6cf081ae7633577277 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