autoflash.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. base_fw_name="gluon-ffpb-0.4~beta2-"
  3. ping -n -c 1 -W 1 192.168.0.1 > /dev/null
  4. if [ $? -ne 0 ]; then
  5. echo "ROUTER OFFLINE? cannot ping 192.168.0.1 :("
  6. return 1
  7. fi
  8. model=$(curl --basic -su admin:admin http://192.168.0.1/ | grep -oE "WR[0-9]+N")
  9. echo "found model: $model"
  10. hwver_page="http://192.168.0.1/userRpm/SoftwareUpgradeRpm.htm"
  11. hwver=$(curl --basic -su admin:admin -e http://192.168.0.1/userRpm/MenuRpm.htm $hwver_page | grep -oE "$model v[0-9]+")
  12. echo "hw version: $hwver"
  13. uploadurl="http://192.168.0.1/incoming/Firmware.htm"
  14. image=""
  15. if [ "$hwver" = "WR841N v9" ]; then
  16. image="${base_fw_name}tp-link-tl-wr841n-nd-v9.bin"
  17. elif [ "$hwver" = "WR841N v8" ]; then
  18. image="${base_fw_name}tp-link-tl-wr841n-nd-v8.bin"
  19. else
  20. echo "UNKNOWN MODEL ($hwver), SORRY :("
  21. return 2
  22. fi
  23. # prepend images/ subdirectory to filename
  24. image="images/$image"
  25. echo -en "flashing image: $image ... "
  26. curl --basic -su admin:admin -e $hwver_page -F Filename=@$image $uploadurl > /dev/null
  27. curl --basic -su admin:admin -e $uploadurl http://192.168.0.1/userRpm/FirmwareUpdateTemp.htm > /dev/null
  28. echo "done :)"
  29. echo -en "waiting for router to come up again "
  30. while ! ping -n -c 1 -W 3 192.168.1.1 > /dev/null; do
  31. echo -en "."
  32. done
  33. echo " \o/"
  34. echo