openwrtv4/target/linux/au1000/base-files/lib/upgrade/platform.sh
John Crispin f933a741a9 target/linux/*/base-files/lib/upgrade/platform.sh - wrong check for ARGC
ARGC is a 'C-ism', but not known/valid in shell-syntax - insert the correct
var $# (=number of args) here. under normal conditions this had no impact,
but we should at least correct it. the error was observable like this:

root@box:~ [ -e "/etc/functions.sh" ] && . /etc/functions.sh
root@box:~ [ -e "/lib/functions.sh" ] && . /lib/functions.sh
root@box:~ . /lib/upgrade/platform.sh
root@box:~ . /lib/upgrade/common.sh
root@box:~ platform_check_image /tmp/myfirmware.bin
ash: bad number
root@box:~ echo $?
0

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 40915
2014-06-02 12:43:22 +00:00

36 lines
922 B
Bash

KERNEL_IMG="openwrt-au1000-au1500-vmlinux.bin"
ROOTFS_IMG="openwrt-au1000-au1500-root.fs"
platform_check_image() {
[ "$#" -gt 1 ] && return 1
case "$(get_magic_word "$1")" in
6f70)
( get_image "$1" | tar -tf - $KERNEL_IMG >/dev/null && \
get_image "$1" | tar -tf - $ROOTFS_IMG >/dev/null) || {
echo "Invalid image contents"
return 1
}
return 0;;
*)
echo "Invalid image type"
return 1;;
esac
}
platform_do_upgrade() {
sync
local conf=""
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && conf="-j $CONF_TAR"
get_image "$1" | tar -Oxvf - $KERNEL_IMG | mtd write - "kernel"
get_image "$1" | tar -Oxvf - $ROOTFS_IMG | mtd $conf write - "rootfs"
}
disable_watchdog() {
killall watchdog
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
echo 'Could not disable watchdog'
return 1
}
}
append sysupgrade_pre_upgrade disable_watchdog