mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
8b4bc7abe0
stage2 passes image path to platform_do_upgrade() as an argument so it can be simply accessed using $1 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
108 lines
2.1 KiB
Bash
108 lines
2.1 KiB
Bash
PART_NAME=firmware
|
|
REQUIRE_IMAGE_METADATA=1
|
|
|
|
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
|
|
|
platform_check_image() {
|
|
case "$(board_name)" in
|
|
asus,rt-ac58u)
|
|
CI_UBIPART="UBI_DEV"
|
|
local ubidev=$(nand_find_ubi $CI_UBIPART)
|
|
local asus_root=$(nand_find_volume $ubidev jffs2)
|
|
|
|
[ -n "$asus_root" ] || return 0
|
|
|
|
cat << EOF
|
|
jffs2 partition is still present.
|
|
There's probably no space left
|
|
to install the filesystem.
|
|
|
|
You need to delete the jffs2 partition first:
|
|
# ubirmvol /dev/ubi0 --name=jffs2
|
|
|
|
Once this is done. Retry.
|
|
EOF
|
|
return 1
|
|
;;
|
|
esac
|
|
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 |\
|
|
alfa-network,ap120c-ac |\
|
|
avm,fritzbox-7530 |\
|
|
avm,fritzrepeater-3000 |\
|
|
qxwlan,e2600ac-c2)
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
asus,map-ac2200)
|
|
CI_KERNPART="linux"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
asus,rt-ac58u)
|
|
CI_UBIPART="UBI_DEV"
|
|
CI_KERNPART="linux"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
linksys,ea6350v3 |\
|
|
linksys,ea8300)
|
|
platform_do_upgrade_linksys "$1"
|
|
;;
|
|
meraki,mr33)
|
|
CI_KERNPART="part.safe"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
openmesh,a42 |\
|
|
openmesh,a62)
|
|
PART_NAME="inactive"
|
|
platform_do_upgrade_openmesh "$1"
|
|
;;
|
|
zyxel,nbg6617)
|
|
zyxel_do_upgrade "$1"
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_nand_pre_upgrade() {
|
|
case "$(board_name)" in
|
|
alfa-network,ap120c-ac)
|
|
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
|
|
if [ "$part" = "rootfs1" ]; then
|
|
fw_setenv active 2 || exit 1
|
|
CI_UBIPART="rootfs2"
|
|
else
|
|
fw_setenv active 1 || exit 1
|
|
CI_UBIPART="rootfs1"
|
|
fi
|
|
;;
|
|
asus,rt-ac58u)
|
|
CI_UBIPART="UBI_DEV"
|
|
CI_KERNPART="linux"
|
|
;;
|
|
meraki,mr33)
|
|
CI_KERNPART="part.safe"
|
|
;;
|
|
esac
|
|
}
|