]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ramips: Cleanup Genexis EX400 upgrade script 17806/head
authorMauri Sandberg <maukka@ext.kapsi.fi>
Thu, 30 Jan 2025 16:08:25 +0000 (18:08 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 15 Mar 2025 09:18:50 +0000 (10:18 +0100)
The code can be made more efficient by not extracting the sysupgrade.tar but
rather just querying for the filesize within the archive. Resorting to
manual update of UBI volume is extra work too, setting CI_KERNPART=rootfs_0
is enough.

Suggested-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/17806
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ramips/mt7621/base-files/lib/upgrade/inteno.sh

index 677000f6b1aef7223e98aeb9ec000281af0722ed..ecaa1a808c5da8133249aaeeb6be19693f8e6114 100644 (file)
 . /lib/upgrade/nand.sh
 
 inteno_do_upgrade () {
-       local tar_file=$1
-       local cmd=cat
-       # WARNING: This fails if tar contains more than one 'sysupgrade-*' directory.
-       local board_dir="$(tar tf "$tar_file" | grep -m 1 '^sysupgrade-.*/$')"
-       board_dir="${board_dir%/}"
-       tar -xaf "$tar_file"
-
        # get the size of the new bootfs
-       local _bootfs_size=$(wc -c < "$board_dir/kernel")
+       local _bootfs_size=$(tar -tvf $1 | grep kernel | awk '{print $3}')
        [ -n "$_bootfs_size" -a "$_bootfs_size" -gt "0" ] || nand_do_upgrade_failed
 
        # remove existing rootfses and recreate rootfs_0
@@ -35,15 +28,11 @@ inteno_do_upgrade () {
        ubirmvol /dev/ubi0 --name=rootfs_data > /dev/null 2>&1
        ubimkvol /dev/ubi0 --type=static --size=${_bootfs_size} --name=rootfs_0
 
-       # update the rootfs_0 contents
-       local _kern_ubivol=$( nand_find_volume "ubi0" "rootfs_0" )
-       ubiupdatevol "/dev/$_kern_ubivol" "$board_dir/kernel"
-
        fw_setenv root_vol rootfs_0
        fw_setenv boot_cnt_primary 0
        fw_setenv boot_cnt_alt 0
 
        # proceed to upgrade the default way
-       CI_KERNPART=none
+       CI_KERNPART=rootfs_0
        nand_do_upgrade "$1"
 }