From: INAGAKI Hiroshi Date: Mon, 8 Apr 2024 11:24:47 +0000 (+0900) Subject: base-files: add dtb support to emmc_upgrade_tar() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9743c5190cea4589a117b2fbccd67a761069ec4;p=thirdparty%2Fopenwrt.git base-files: add dtb support to emmc_upgrade_tar() Add dtb support for emmc_upgrade_tar() to update dtb separately. Signed-off-by: INAGAKI Hiroshi Link: https://github.com/openwrt/openwrt/pull/16904 Signed-off-by: Hauke Mehrtens --- diff --git a/package/base-files/files/lib/upgrade/emmc.sh b/package/base-files/files/lib/upgrade/emmc.sh index 42450582b58..fc40f3c3048 100644 --- a/package/base-files/files/lib/upgrade/emmc.sh +++ b/package/base-files/files/lib/upgrade/emmc.sh @@ -8,8 +8,10 @@ emmc_upgrade_tar() { [ "$CI_KERNPART" -a -z "$EMMC_KERN_DEV" ] && export EMMC_KERN_DEV="$(find_mmc_part $CI_KERNPART $CI_ROOTDEV)" [ "$CI_ROOTPART" -a -z "$EMMC_ROOT_DEV" ] && export EMMC_ROOT_DEV="$(find_mmc_part $CI_ROOTPART $CI_ROOTDEV)" [ "$CI_DATAPART" -a -z "$EMMC_DATA_DEV" ] && export EMMC_DATA_DEV="$(find_mmc_part $CI_DATAPART $CI_ROOTDEV)" + [ "$CI_DTBPART" -a -z "$EMMC_DTB_DEV" ] && export EMMC_DTB_DEV="$(find_mmc_part $CI_DTBPART $CI_ROOTDEV)" local has_kernel local has_rootfs + local has_dtb local gz local board_dir [ "$(identify_magic_long $(get_magic_long "$tar_file" cat))" = "gzip" ] && \ @@ -19,6 +21,7 @@ emmc_upgrade_tar() { tar t${gz}f "$tar_file" ${board_dir}/kernel 1>/dev/null 2>/dev/null && has_kernel=1 tar t${gz}f "$tar_file" ${board_dir}/root 1>/dev/null 2>/dev/null && has_rootfs=1 + tar t${gz}f "$tar_file" ${board_dir}/dtb 1>/dev/null 2>/dev/null && has_dtb=1 [ "$has_rootfs" = 1 -a "$EMMC_ROOT_DEV" ] && { # Invalidate kernel image while rootfs is being written @@ -32,6 +35,8 @@ emmc_upgrade_tar() { EMMC_ROOTFS_BLOCKS=$(((EMMC_ROOTFS_BLOCKS + 127) & ~127)) sync } + [ "$has_dtb" = 1 -a "$EMMC_DTB_DEV" ] && + export EMMC_DTB_BLOCKS=$(($(tar x${gz}f "$tar_file" ${board_dir}/dtb -O | dd of="$EMMC_DTB_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1))) [ "$has_kernel" = 1 -a "$EMMC_KERN_DEV" ] && export EMMC_KERNEL_BLOCKS=$(($(tar x${gz}f "$tar_file" ${board_dir}/kernel -O | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))