Added new viwib script
This commit is contained in:
parent
e8a9467784
commit
dbc4110530
1 changed files with 85 additions and 0 deletions
85
viwib-1-firmware-upgrade.sh
Executable file
85
viwib-1-firmware-upgrade.sh
Executable file
|
@ -0,0 +1,85 @@
|
|||
#!/bin/sh
|
||||
# 2020-06-13, Nico Schottelius
|
||||
# See https://ungleich.ch/u/products/viirb-ipv6-box/
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "$0 interface [address]"
|
||||
echo " interface to add the config ip address to"
|
||||
echo " address: connect to this address, ignore the interface"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
dev=$1; shift
|
||||
|
||||
# $# = 2
|
||||
# shift -> remove the first argument
|
||||
# $# = 1
|
||||
|
||||
if [ $# -ge 1 ]; then
|
||||
viwib_ip=$1; shift
|
||||
dev=""
|
||||
else
|
||||
viwib_ip=192.168.8.1
|
||||
fi
|
||||
|
||||
# openwrt
|
||||
version=19.07.4
|
||||
filename=openwrt-${version}-ramips-mt76x8-gl-mt300n-v2-squashfs-sysupgrade.bin
|
||||
|
||||
# IP address for setting it up initially
|
||||
|
||||
if [ "$dev" ]; then
|
||||
sudo ip addr del 192.168.8.2/24 dev "$dev" 2>/dev/null || true
|
||||
sudo ip addr add 192.168.8.2/24 dev "$dev"
|
||||
fi
|
||||
|
||||
# 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"
|
||||
|
||||
# Don't re-download if we already have it
|
||||
wget -c http://downloads.openwrt.org/releases/${version}/targets/ramips/mt76x8/${filename}
|
||||
|
||||
if echo $viwib_ip | grep -q :; then
|
||||
scp_ip="[$viwib_ip]"
|
||||
else
|
||||
scp_ip="$viwib_ip"
|
||||
fi
|
||||
|
||||
scp ${filename} root@${scp_ip}:/tmp
|
||||
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"
|
||||
sleep 15
|
||||
|
||||
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}"
|
Loading…
Reference in a new issue