mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
641f6b6c26
It's a variable set by procd that should replace hardcoded /tmp/sysupgrade.tgz. This change requires the most recent procd with the commit 0f3c136 ("sysupgrade: set UPGRADE_BACKUP env variable"). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
69 lines
2.0 KiB
Bash
Executable File
69 lines
2.0 KiB
Bash
Executable File
platform_do_upgrade() {
|
|
local board=$(board_name)
|
|
case "$board" in
|
|
"unielec,u7623"*)
|
|
#Keep the persisten random mac address (if it exists)
|
|
mkdir -p /tmp/recovery
|
|
mount -o rw,noatime /dev/mmcblk0p1 /tmp/recovery
|
|
[ -f "/tmp/recovery/mac_addr" ] && \
|
|
mv -f /tmp/recovery/mac_addr /tmp/
|
|
umount /tmp/recovery
|
|
|
|
#1310720 is the offset in bytes from the start of eMMC and to
|
|
#the location of the kernel (2560 512 byte sectors)
|
|
get_image "$1" | dd of=/dev/mmcblk0 bs=1310720 seek=1 conv=fsync
|
|
|
|
mount -o rw,noatime /dev/mmcblk0p1 /tmp/recovery
|
|
[ -f "/tmp/mac_addr" ] && mv -f /tmp/mac_addr /tmp/recovery
|
|
sync
|
|
umount /tmp/recovery
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
PART_NAME=firmware
|
|
|
|
platform_check_image() {
|
|
local board=$(board_name)
|
|
local magic="$(get_magic_long "$1")"
|
|
|
|
[ "$#" -gt 1 ] && return 1
|
|
|
|
case "$board" in
|
|
bananapi,bpi-r2|\
|
|
"unielec,u7623"*)
|
|
[ "$magic" != "27051956" ] && {
|
|
echo "Invalid image type."
|
|
return 1
|
|
}
|
|
return 0
|
|
;;
|
|
|
|
*)
|
|
echo "Sysupgrade is not supported on your board yet."
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
return 0
|
|
}
|
|
|
|
platform_copy_config_emmc() {
|
|
mkdir -p /recovery
|
|
mount -o rw,noatime /dev/mmcblk0p1 /recovery
|
|
cp -af "$UPGRADE_BACKUP" "/recovery/$BACKUP_FILE"
|
|
sync
|
|
umount /recovery
|
|
}
|
|
|
|
platform_copy_config() {
|
|
case "$(board_name)" in
|
|
"unielec,u7623"*)
|
|
platform_copy_config_emmc
|
|
;;
|
|
esac
|
|
}
|