Browse Source

ar71xx: remove hard-coded folder name from Mikrotik RB upgrade

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 <[email protected]>
Adrian Schmutzler 5 years ago
parent
commit
281785d74f
1 changed files with 6 additions and 1 deletions
  1. 6 1
      target/linux/ar71xx/base-files/lib/upgrade/platform.sh

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

@@ -742,8 +742,13 @@ platform_do_upgrade_mikrotik_rb() {
 	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" -
 
 	nand_do_upgrade "$1"
 }