diff options
Diffstat (limited to 'target/linux/ipq40xx/base-files/lib/upgrade/platform.sh')
-rw-r--r-- | target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index 4096e127ea..0e29302465 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -29,6 +29,21 @@ EOF return 0; } +zyxel_do_upgrade() { + local tar_file="$1" + + local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') + board_dir=${board_dir%/} + + tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel + + if [ "$SAVE_CONFIG" -eq 1 ]; then + tar Oxf $tar_file ${board_dir}/root | mtd -j "$CONF_TAR" write - rootfs + else + tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs + fi +} + platform_do_upgrade() { case "$(board_name)" in 8dev,jalapeno) @@ -48,6 +63,9 @@ platform_do_upgrade() { CI_KERNPART="part.safe" nand_do_upgrade "$1" ;; + zyxel,nbg6617) + zyxel_do_upgrade "$1" + ;; *) default_do_upgrade "$ARGV" ;; |