2020-12-11 15:05:29 +00:00
|
|
|
#!/bin/sh
|
|
|
|
# 2020-06-13, Nico Schottelius
|
|
|
|
# See https://ungleich.ch/u/products/viirb-ipv6-box/
|
|
|
|
|
2021-01-05 13:05:16 +00:00
|
|
|
if [ $# -ne 1 ]; then
|
|
|
|
echo "$0 address"
|
2021-11-16 13:17:08 +00:00
|
|
|
echo " address: connect to this address (default: 192.168.8.1)"
|
2020-12-11 15:05:29 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
set -x
|
|
|
|
|
2021-01-05 13:05:16 +00:00
|
|
|
viwib_ip=$1; shift
|
2020-12-11 15:05:29 +00:00
|
|
|
|
|
|
|
# openwrt
|
2023-02-04 12:24:10 +00:00
|
|
|
version=22.03.3
|
2023-02-04 12:31:36 +00:00
|
|
|
filename=openwrt-${version}-ath79-nand-glinet_gl-ar300m-nor-squashfs-sysupgrade.bin
|
|
|
|
url=https://downloads.openwrt.org/releases/${version}/targets/ath79/nand
|
2020-12-11 15:05:29 +00:00
|
|
|
|
|
|
|
# don't care about other/old known_host entries
|
|
|
|
ssh-keygen -R ${viwib_ip}
|
|
|
|
|
|
|
|
while ! ping -c1 ${viwib_ip}; do
|
|
|
|
echo "Cannot ping $viwib_ip yet - waiting"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
|
|
|
|
cat ~/.ssh/id_rsa.pub | ssh root@${viwib_ip} "cat > /etc/dropbear/authorized_keys"
|
|
|
|
|
2023-02-04 12:31:36 +00:00
|
|
|
|
2020-12-11 15:05:29 +00:00
|
|
|
# Don't re-download if we already have it
|
2023-02-04 12:31:36 +00:00
|
|
|
wget -c ${url}/${filename}
|
2020-12-11 15:05:29 +00:00
|
|
|
|
|
|
|
if echo $viwib_ip | grep -q :; then
|
|
|
|
scp_ip="[$viwib_ip]"
|
|
|
|
else
|
|
|
|
scp_ip="$viwib_ip"
|
|
|
|
fi
|
|
|
|
|
2023-02-04 12:29:06 +00:00
|
|
|
scp -O ${filename} root@${scp_ip}:/tmp
|
2020-12-11 15:05:29 +00:00
|
|
|
ssh root@${viwib_ip} "sysupgrade -n /tmp/*.bin"
|
|
|
|
|
|
|
|
# It still pings for some time - wait for the reboot to happen
|
|
|
|
echo "Waiting for viwib to really disappear"
|
2023-02-04 12:34:09 +00:00
|
|
|
sleep 30
|
2020-12-11 15:05:29 +00:00
|
|
|
|
|
|
|
wait=0
|
|
|
|
found=""
|
|
|
|
|
|
|
|
while [ $wait -lt 180 ]; do
|
|
|
|
ping -c1 ${viwib_ip} >/dev/null
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
found=yes
|
|
|
|
# wait for ssh to come up
|
|
|
|
sleep 10
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
|
|
|
|
sleep 1
|
|
|
|
wait=$((wait+1))
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ ! "$found" ]; then
|
|
|
|
echo "Did not find updated viwib - debug / restart it"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "viwib successfully updated to ${version}"
|