ar71xx: remove hard-coded folder name from Mikrotik RB upgrade
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 26 Feb 2020 17:24:55 +0000 (18:24 +0100)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Tue, 12 May 2020 15:48:02 +0000 (17:48 +0200)
So far, specifying "BOARD_NAME := routerboard" is required by the
upgrade code of Mikrotik NAND devices, as "sysupgrade-routerboard"
is hardcoded in platform_do_upgrade_mikrotik_rb().

This patch replaces the latter with a grep for the name like it
is already done in nand_upgrade_tar() in /lib/upgrade/nand.sh.

This should enable upgrades from ar71xx to ath79 without setting
BOARD_NAME for the latter.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(backported from commit 281785d74fcc70153c0741be36ee1f9d05e74f6f)

target/linux/ar71xx/base-files/lib/upgrade/platform.sh

index e2bd946..e33b74a 100755 (executable)
@@ -773,8 +773,13 @@ platform_nand_pre_upgrade() {
                local fw_mtd=$(find_mtd_part kernel)
                fw_mtd="${fw_mtd/block/}"
                [ -n "$fw_mtd" ] || return
+
+               local board_dir=$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')
+               board_dir=${board_dir%/}
+               [ -n "$board_dir" ] || return
+
                mtd erase kernel
-               tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" -
+               tar xf "$1" ${board_dir}/kernel -O | nandwrite -o "$fw_mtd" -
                ;;
        wi2a-ac200i)
                case "$(fw_printenv -n dualPartition)" in