Itus Network Shield, not officially supported, Octeon3 SoC, built from master
r13676-9858a8c582
. I connect via USB console roll-over cable.
Working through the sysupgrade
system, when i attempt to use it, it gets to the point it needs to switch to the ramdisk
and then just dumps...
root@Shield:/tmp# sysupgrade -v openwrt-octeon-itus-itusrouter-ext4-sysupgrade.tar.gz
Image metadata not found
sysupgrade-itus/
sysupgrade-itus/CONTROL
sysupgrade-itus/kernel
sysupgrade-itus/root
Saving config files...
etc/config/dhcp
etc/config/dhcp-opkg
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/network
etc/config/rpcd
etc/config/system
etc/config/ucitrack
etc/config/uhttpd
etc/config/uhttpd-opkg
etc/dropbear/dropbear_rsa_host_key
etc/group
etc/hosts
etc/inittab
etc/luci-uploads/.placeholder
etc/opkg/keys/0b26f36ae0f4106d
etc/opkg/keys/1035ac73cc4e59e3
etc/opkg/keys/5151f69420c3f508
etc/opkg/keys/72a57f2191b211e0
etc/opkg/keys/792d9d9b39f180dc
etc/opkg/keys/9ef4694208102c43
etc/opkg/keys/b2d571e0880ff617
etc/opkg/keys/b5043e70f9a75cde
etc/opkg/keys/c10b9afab19ee428
etc/opkg/keys/caafb567d784e639
etc/opkg/keys/dace9d4df16896bf
etc/opkg/keys/dd6de0d06bbd3d85
etc/opkg/keys/f94b9dd6febac963
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/shinit
etc/sysctl.conf
etc/uhttpd.crt
etc/uhttpd.key
etc/uhttpd.key
etc/uhttpd.crt
Commencing upgrade. Closing all shell sessions.
*** NMI Watchdog interrupt on Core 0x00 ***
$0 0x0000000000000000 at 0x0000000014109ce1
v0 0xffffffff81990000 v1 0x00000000001cdf04
a0 0x00000000001cdf02 a1 0xffffffff8181cd78
a2 0x0000000014109ce0 a3 0xffffffffffff00fe
a4 0x116d7caf85800000 a5 0x0000000000000000
a6 0x000000000d20fe00 a7 0x0000000000000000
t0 0x0000000000000000 t1 0x0000000000009c00
t2 0xffffffff81265458 t3 0x0000000000000000
s0 0xffffffff8180d118 s1 0x0000000000000001
s2 0xffffffff81810000 s3 0xffffffff8177c720
s4 0xffffffff81820000 s5 0x0000000000000001
s6 0x000000004f001160 s7 0xffffffff81691f00
t8 0x0000000000000000 t9 0xffffffff81697308
k0 0x0000000000000000 k1 0xffffffff81990000
gp 0xffffffff817f8000 sp 0xffffffff817fbda0
s8 0x0000000001100000 ra 0xffffffff8116d5b0
err_epc 0xffffffff8111b3c0 epc 0xffffffff8111b3c0
status 0x0000000014589ce5 cause 0x0000000000800000
sum0 0x0080000000000000 en0 0x00a0000500008000
*** Chip soft reset soon ***
*** NMI Watchdog interrupt on Core 0x01 ***
$0 0x0000000000000000 at 0x0000000014109ce1
v0 0x0000000000000000 v1 0x000000002c45bcdb
a0 0x000000fff7b545a0 a1 0x0000000121b5d77b
a2 0x0000000000008000 a3 0x0000000121b64040
a4 0x000000fff7b547a0 a5 0x0000000000000000
a6 0x0000000000000000 a7 0x0000000000000000
t0 0x0000000000000000 t1 0xffffffff84080018
t2 0xffffffff81265528 t3 0x0000000000000000
s0 0x0000000000000001 s1 0x000000012002e454
s2 0x000000012002e304 s3 0x0000000000000000
s4 0x000000012002c494 s5 0x0000000000000000
s6 0x000000fffbcbb5f0 s7 0x000000012002f040
t8 0x0000000000000002 t9 0x000000012002c50c
k0 0x0000000000000008 k1 0xffffffff81990008
gp 0x0000000120097020 sp 0x000000fffbcbb520
s8 0x0000000000000018 ra 0x000000012002f328
err_epc 0x000000012002c540 epc 0x000000012002e384
status 0x0000000004589cf5 cause 0x0000000000800000
sum0 0x0080000000000000 en0 0x0000000100000000
*** Chip soft reset soon ***
OCTEON eMMC stage 1 bootloader
This is my altered /lib/upgrade/platform.sh
root@Shield:/# cat /lib/upgrade/platform.sh
#
# Copyright (C) 2014 OpenWrt.org
#
platform_get_rootfs() {
local rootfsdev
if read cmdline < /proc/cmdline; then
case "$cmdline" in
*block2mtd=*)
rootfsdev="${cmdline##*block2mtd=}"
rootfsdev="${rootfsdev%%,*}"
;;
*root=*)
rootfsdev="${cmdline##*root=}"
rootfsdev="${rootfsdev%% *}"
;;
esac
echo "${rootfsdev}"
fi
}
platform_copy_config() {
case "$(board_name)" in
erlite)
mount -t vfat /dev/sda1 /mnt
cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
umount /mnt
;;
itus*)
mount -t vfat /dev/mmcblk1p1 /mnt
cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
umount /mnt
;;
esac
}
platform_do_flash() {
local tar_file=$1
local board=$2
local kernel=$3
local rootfs=$4
mkdir -p /boot
mount -t vfat /dev/$kernel /boot
[ -f /boot/vmlinux.64 -a ! -L /boot/vmlinux.64 ] && {
mv /boot/vmlinux.64 /boot/vmlinux.64.previous
mv /boot/vmlinux.64.md5 /boot/vmlinux.64.md5.previous
echo "flashing kernel to /dev/$kernel"
md5sum /boot/vmlinux.64 | cut -f1 -d " " > /boot/vmlinux.64.md5
echo "flashing rootfs to ${rootfs}"
}
case "$board" in
er | erlite)
tar xf $tar_file sysupgrade-$board/kernel -O > /boot/vmlinux.64
tar xf $tar_file sysupgrade-$board/root -O | dd of="${rootfs}" bs=4096
;;
itus*)
tar xvzf $tar_file -C /tmp
echo "Moving kernel image..."
cp -v /tmp/sysupgrade-itus${kernel}/kernel /boot/Itus${kernel}Image
echo "Flashing rootfs..."
dd if=/tmp/sysupgrade-itus${kernel}/root of=/dev/${rootfs} bs=512
;;
esac
sync
umount /boot
}
platform_do_upgrade() {
local tar_file="$1"
local board=$(board_name)
local rootfs="$(platform_get_rootfs)"
local kernel=
[ -b "${rootfs}" ] || return 1
case "$board" in
er)
kernel=mmcblk0p1
;;
erlite)
kernel=sda1
;;
itusrouter)
kernel=router
;;
itusbridge)
kernel=bridge
;;
*)
return 1
esac
platform_do_flash $tar_file $board $kernel $rootfs
return 0
}
platform_check_image() {
local board=$(board_name)
case "$board" in
er | erlite)
local tar_file="$1"
local kernel_length=$(tar xf $tar_file sysupgrade-$board/kernel -O | wc -c 2> /dev/null)
local rootfs_length=$(tar xf $tar_file sysupgrade-$board/root -O | wc -c 2> /dev/null)
[ "$kernel_length" = 0 -o "$rootfs_length" = 0 ] && {
echo "The upgrade image is corrupt."
return 1
}
return 0
;;
itus*)
local tar_file="$1"
# Remove any existing, just in case...
tar xvfz $tar_file -C /tmp
if [ ! -f /tmp/sysupgrade-itus${kernel}/kernel ] || [ ! -f /tmp/sysupgrade-itus${kernel}/root ]
then
echo "The upgrade image is corrupt."
return 1
fi
return 0
;;
esac
echo "Sysupgrade is not yet supported on $board."
return 1
}
Is there anything I can do to figure out WHY this is happening?
Appreciate any help!