ar71xx: fix model string detection on NETGEAR WNDR3700/3800/WNDRMAC
authorJohn Crispin <john@openwrt.org>
Sun, 29 Mar 2015 12:58:01 +0000 (12:58 +0000)
committerJohn Crispin <john@openwrt.org>
Sun, 29 Mar 2015 12:58:01 +0000 (12:58 +0000)
commitda5afe52bc3c3f7a9ee262baf7c62b24803821df
tree6c76cfc5a5c8d8c4f9c69652aa5e4e52a05bb2ac
parentdbd7a9ff518d5fea1db8fe99200f544836fccbe2
ar71xx: fix model string detection on NETGEAR WNDR3700/3800/WNDRMAC

There were a few issues with the existing code to detect the model string:
* Always using the string starting with byte 56 would cut off the W of WNDR when
  the ID starts with 29763654+16+64 instead of 29763654+16+128
* The string contained garbage after the zero byte instead of cutting it off
  after the zero (which wasn't always visible using busybox tools, but could
  confuse other scripts)

Tested on a WNDR3700v1 and a WNDR3700v2 using the new 29763654+16+64 ID in the
ART. Furthermore, tested against ART dumps of a WNDR3700v2 using the old
$'\xff...' value and a WNDR3800.

The [ -z "$model" ] check was dropped as there is no way to actually hit this
unless no ART partition is found at all.

The awk command was carefully crafted to work both with gawk and the (horribly
broken) busybox awk.

Fixes #18992.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 45140
target/linux/ar71xx/base-files/lib/ar71xx.sh