Recovering a RT-ACRH13

Hi I botched my OpenWrt install by not correctly wiping JFFS. So now I'm stuck with a boot looping router. I soldered the pins for the serial and now I have a serial connection.

I pressed the reset button to try and get TFTP working, but I can't make it connect properly. Here is the output.

Please choose the operation: 
   1: Load System code to SDRAM via TFTP.
   2: Load System code then write to Flash via TFTP.
   3: Boot System code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.
 0 
   3: Boot System code via Flash (default).
reset buootn pressed!

   3: Boot System code via Flash (default).

RT-AC58U bootloader version: 1.0.0.5
MAC Address: 04:D4:C4:63:F9:90
reset buootn pressed!
 
## Enter Rescue Mode ##
MAC0 addr:0:3:7f:ba:db:ad
PHY ID1: 0x4d
PHY ID2: 0xd0b1
ipq40xx_ess_sw_init done
eth0
preferred nic: eth0
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :100 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
switch prereq:0
tftpd start

Our IP address is:(192.168.1.1)
Wait for TFTP request...
tftpd open
Got ARP REQUEST, return our IP
D D D D D D D D D D D D D D D D D D D D D D Got ARP REQUEST, return our IP
D D D D D D D D D D D D D D D D D D D D D D D D D D D D D

Here is the ip configuration of my computer:

8: enp0s20f0u13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:e0:4c:5e:ff:f7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute enp0s20f0u13
       valid_lft forever preferred_lft forever
    inet6 fe80::e6ff:f906:e196:f055/64 scope lin

I have tried using curl:
curl -T RT-AC58U.trx tftp://192.168.1.1 and tftp using put and binary modes. and atftp, all to no avail. I feel like I am missing something here, but I just can't figure out what it could be.
EDIT2: What I mean by tftp not working is that nothing will be transferred. It will not make the connection.

EDIT: I am using Linux btw

I don't know your particular device, but assume it works rather similar as the map-ac2200 (lyra). In that case the push-button tftp recovery would not be reliable, as it can't re-initialize the ubi correctly.

If you can interrupt the bootloader, you can tftpboot an initramfs image via serial console and boot it from RAM - and then just sysupgrade a fixed OpenWrt sysupgrade image. Check the map-ac2200 device page for details.

Thanks for your reply. I tried out what you said, but I am getting stuck here:

You choosed 1


   1: Load System code to SDRAM via TFTP.
 Please Input new ones /or Ctrl-C to discard
	Input device IP (192.168.1.1) ==:   
	Input server IP (192.168.1.70) ==:192.168.1.2
	Input Linux Kernel filename (RT-AC58U.trx) ==:openwrt-19.07.4-ipq40xx-generic-asus_rt-ac58u-initramfs-fit-uImage(1).itb  
MAC0 addr:0:3:7f:ba:db:ad
PHY ID1: 0x4d
PHY ID2: 0xd0b1
ipq40xx_ess_sw_init done
eth0
preferred nic: eth0
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :100 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
switch prereq:0
Using eth0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'openwrt-19.07.4-ipq40xx-generic-asus_rt-ac58u-initramfs-fit-uImage\(1\(1).itb'.
Load address: 0x84000000
Loading: Got ARP REPLY, set eth addr (00:e0:4c:5e:ff:f7)

TFTP server died; starting again

I am unclear whether my computer needs to be 192.168.1.70 or the router is the one listening on that IP.

router: 192.168.1.1
computer: 192.168.1.70 (your tftp-server needs to provide the initramfs image from this address)

(both can be set differently)

I would recommmend to simplify the image filename, shorter (8+3) and no brackets.

1 Like

Thanks for the clarification.
I set my computer's ip to 192.168.1.70 and ran the TFTP server.
I tried using curl and tftp.

~/Documents/asus_router_stuff >>> curl -T openwrt-initframfs.itb tftp://192.168.1.1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 4786k    0     0    0     0      0      0 --:--:--  0:00:52 --:--:--     0^C
~/Documents/asus_router_stuff >>> tftp 192.168.1.70                       [130]
tftp> binary
tftp> put openwrt-initframfs.itb
Transfer timed out.

I'm not sure what is going on.

The router had this reply:

  1: Load System code to SDRAM via TFTP.
 Please Input new ones /or Ctrl-C to discard
	Input device IP (192.168.1.1) ==:192.168.1.1
	Input server IP (192.168.1.70) ==:192.168.1.70
	Input Linux Kernel filename (RT-AC58U.trx) ==:openwrt-initframfs.itb
MAC0 addr:0:3:7f:ba:db:ad
PHY ID1: 0x4d
PHY ID2: 0xd0b1
ipq40xx_ess_sw_init done
eth0
preferred nic: eth0
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :100 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
switch prereq:0
Using eth0 device
TFTP from server 192.168.1.70; our IP address is 192.168.1.1
Filename 'openwrt-initframfs.itb'.
Load address: 0x84000000
Loading: Got ARP REPLY, set eth addr (00:e0:4c:5e:ff:f7)

TFTP server died; starting again
preferred nic: eth0
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :100 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
Got ARP REQUEST, return our IP
switch prereq:0
Using eth0 device
TFTP from server 192.168.1.70; our IP address is 192.168.1.1
Filename 'openwrt-initframfs.itb'.
Load address: 0x84000000
Loading: Got ARP REPLY, set eth addr (00:e0:4c:5e:ff:f7)

TFTP server died; starting again
preferred nic: eth0
eth0 PHY0 Down Speed :10 Half duplex
eth0 PHY1 Down Speed :10 Half duplex
eth0 PHY2 Down Speed :10 Half duplex
eth0 PHY3 up Speed :100 Full duplex
eth0 PHY4 Down Speed :10 Half duplex
switch prereq:0
Using eth0 device
TFTP from server 192.168.1.70; our IP address is 192.168.1.1
Filename 'openwrt-initframfs.itb'.
Load address: 0x84000000
Loading: Got ARP REPLY, set eth addr (00:e0:4c:5e:ff:f7)

Maybe put an unmanaged switch between your computer and the router, to avoid the link-down/ link-retraining.

I just tried another computer (Windows) and it seems to be working now. I also have to have initramfs in the file name, otherwise it will not boot properly.

I just got into the web interface, so I'm going to try and fix it now. Thank you.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.