#!/bin/sh usage="USAGE: TL902AC_tftp_recovery.sh <[start | stop]> " # OS/System specific variables tftp_dir=/private/tftpboot/ ethport=en1 # Device specific variables # TP-Link TL-WR902AC v1 # https://openwrt.org/toh/tp-link/tl-wr902ac_v1 ip_addr=192.168.1.1 subnet=255.255.255.0 tl_wr902ac_filename=openwrt-23.05.2-bcm53xx-generic-asus_rt-ac88u-squashfs.trx tftp_file_path=$tftp_dir$tl_wr902ac_filename # If we are starting the tftp Server if [ $1 = start ] then echo Starting recovery mode... # Check that 2nd argument (recovery image) has been specified (does not validate file) if [ -z $2 ] then echo $usage else echo "Copying file $2 to $tftp_file_path." sudo cp $2 $tftp_file_path echo "Setting ethernet $ethport to $ip_addr $subnet." # Set the ethernet interface to the expected tftp server address sudo ipconfig set $ethport manual $ip_addr $subnet echo "Starting tftp server." # Enable the tftp service sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist fi # If we are stopping the tftp Server elif [ $1 = stop ] then echo Stopping... resuming normal mode # Disable the tftp service sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist echo "Deleting file $tftp_file_path" sudo rm $tftp_file_path echo "Setting ethernet $ethport to DHCP" # Set the ethernet interface to back to DHCP for normal operation sudo ipconfig set $ethport dhcp else echo $usage fi