Recovering ASUS router firmware without Windows

Shark at the National AquariumIf you own an ASUS router and you brick it while trying to upgrade the firmware or some other action, you'll probably find documentation saying you need to run a Windows-only firmware restoration program to undo this damage.

While this is apparently the only officially supported method for restoring firmware (the alternative being to ship the router to ASUS for repair, a 10+ day process), I found with some exploring that the Windows program is likely just a glorified tftp client, and that you can restore firmware using some more standard, non-Windows tools.

I'm listing below the steps I had to use today after trying to upgrade my RT-AC66U device from firmware version 3.0.0.4.266 to 3.0.0.4.270.  (The release notes for the latter indicate a fix for a "live update related bug" which is what I suspect I encountered when I first tried to do the upgrade via the web GUI.)

I'm a Mac user, but these steps should work for other non-Windows operating systems such as Linux. It hopefully goes without saying that you should follow these steps at your own risk, and I make no claims or warranty about the outcome; you could end up worse off than you are now.  You could set your router on fire. You could end up killing another version of yourself living in an alternate universe.  Be careful.

1. Make sure your router is indeed in need of an emergency recovery firmware restore.  On the ASUS unit I have, this is indicated by a slowly flashing power light and a clear lack of Internet connectivity.  Make sure the other usual methods - power off, hold down the reset button, hold down the reset button as you power on, etc. - don't fix things.

2. Find a way to get a known good ASUS firmware image file onto your system.  This is probably a file that ends in ".trx" such as "RT-AC66U_3.0.0.4_270.trx".

3. Unplug all other network devices from the unit, and connect your Mac or other system to the ASUS unit with an Ethernet cable plugged in to port #1 on the router.

4. Setup your network configuration so that you have a static IP address on the 192.168.1.0/24 network block.  I used 192.168.1.10 with a netmask of 255.255.255.0 and a gateway of 192.168.1.0.

5. Open a Terminal window and make sure you can ping 192.168.1.1., the probably IP address of the ASUS router.  If you can't ping the router, the rest of these steps probably won't work.

6. CD into the directory where the firmware image ending in .trx exists (see step #2 above).

7. Run these commands from the terminal prompt, using the correct firmware image filename in the "put" command:

$ tftp
tftp> connect
(to) 192.168.1.1
tftp> binary
tftp> put RT-AC66U_3.0.0.4_266.trx
Sent 22765568 bytes in 76.5 seconds
tftp> quit

8. Give the router about 5 minutes to process the firmware image you've just sent it.  I had to then manually turn the unit off and back on to get it to reboot into a working state.  Once it came back up, I could again ping it and I could again access the admin GUI via the web.

If that doesn't work, it wouldn't hurt to repeat the steps again and give it another try.  If that still doesn't work, you'll probably want to call ASUS for an RMA case (that's 812-282-2787 in the US and Canada).

I would have hoped that a company manufacturing devices for the modern age would not hobble their customers` ability to self-troubleshoot by limiting the recovery process to only users running Windows.  Even if the above method is unsupported, they could at least publish it in some form so that they don't use up their time and their customers` time with unnecessary interactions with Windows users, or worse, mailing units in for repair that could instead be repaired where they sit.

I hope these steps are helpful to someone else.  Let me know if you find other techniques that might help in similar situations. (If this post really got you out of a jam and you're feeling super thankful, consider donating Bitcoins.)

Published by

Chris Hardie

Chris Hardie is an Internet tech geek, problem solver, community-builder and amicable cynic.

52 thoughts on “Recovering ASUS router firmware without Windows”

  1. Thanks very much for this short tutorial. Unfortunatley in then end I could not even ping the router, so I had to get an RMA and send it back. They still make the best routers but need to improve on how firmware gets updated.

  2. Appreciated since I know I'll hit this and it helps explain the random trx files sitting in the Downloads directory that I can now delete. Cheers.

  3. If you can't ping the router, then you could try using ARP to give you an IP address associated with the MAC of the device.
    http://www.intel.com/support/netport/pro/sb/cs-015307.htm
    Might not work with something like a router that already has an IP address.
    Or else use wireshark to listen for any traffic at all over the wire to glean the IP address range. If you don't know it already.
    If neither work, and you can't RMA, then there's always the possibility of using a BusPirate to write to the eeprom that the device is likely using. That depends on you getting access to a good firmware image somehow. Whether it's processing a downloaded file or copying from a known good device.
    http://dangerousprototypes.com/2012/12/27/unbricking-a-laptop-with-the-bus-pirate/

  4. I had the same issue, and these instructions worked brilliantly, with one caveat: Even in rescue mode, my router used the same IP it had before it bricked, so I had to use that instead of 192.168.1.1.

  5. You might need to type:

    tftp> timeout XXX

    Where XXX is the number of seconds before the upload times out. My default setting was 30, which wasn't long enough. 120 should be sufficient.

    1. I also had to set my timeout to 120. Actual time was 90 seconds. Also, if people can't ping their router, make sure it's not being blocked by a firewall; this was a stumbling block for me.

  6. Thanks very, very much!
    After spending too many time around my wife's WpC with no success, I've finaly managed to fix my Asus RT-N11 router with my Fedora 18!

    My router was blinking fast the power led, and didn't appear to respond to reset!
    It happened that it had it's IP was on 192.168.123.254!

    1- Configured my ethernet to 192.168.123.222 with 255.255.255.0
    2- Managed to ping the router in 192.168.123.254
    3- Performed the command you did
    4- Waited for about 5 minutes
    5- Restarted the router
    6- Performed a reset
    7- Et voila! Access the web GUI in 192.168.1.1 with DHCP!!!

  7. Nice usefull comments on this site. Did not help me though. After the cable company did some upgrades, my router became unresponsive. No IP-address and power light slowly flashing.

    Connected it with a dedicated cat5e cable to the computer and listened to it using wireshark to see what the router was doing.

    This turned out that is was doing nothing. Normally you can pickout an ipaddress this way but no luck. The only thing coming from the router was spanning tree requests. ???

    Connected the internet port of the router to an other ac66u router's normal routing port. The lights started flashing and it came up with an ipaddress 192.168.2.1.

    Connected with a browser to the router and set it up again.

    Something strange though. I re-setted this device in all the ways I could find on the internet, also the 30-30-30 method. It did not work. When finally I could get in to the router, everything was still there. User, passwd and wireless information ... strange.

  8. In one word : THANKS
    thanks to you for that great tuto. I was able to recover my new ASUS router after a failed firmware update maded in wireless connection with my macbookpro under Mavericks !!!
    Thank you for your work: It saved me !

  9. First...thank you. VERY very much.

    Second, if the router subnet was changed (I changed mine from the default .1.1 to .0.1)...that's the same subnet you'll use for the procedure.

  10. Thank you SO MUCH for this! This also worked flawlessly to flash the Shibby mod of TomatoUSB to my RT-N12/D1. Seeing as how all this is, is a tftp connection it seems rather silly that ASUS doesn't have a tool ready for all platforms.

    For more info on TomatoUSB and Shibby's mod check out tomato.groov.pl. I really much prefer Tomato to ASUS's stock firmware.

  11. Thank for the info but when i do ipconfig am getting a public ip which is 169.254.208.1xx 255.255.0.0 which i don't understand why dhcp isn't assigning private ups to the router. am curious if i have missed anything.

  12. Chris,
    This was a perfect solution and worked exactly as advertised! My ASUS RT-AC66R froze after a short power interruption and nothing i could do could get it restarted. Luckily I came across your posting just before I was going to ship it back.
    Thanks for not ignoring we Mac users!
    Don

  13. This article is exactly what I've been looking for, however when I type the commands into terminal. Nothing seems to happen?
    Do you type them one at a time? Do you get a response after typing each one?
    When I type the first line, I get

    -bash: $: command not found

    when I type
    tftp> connect
    I get a cursor but no other response?

    Any help appreciated

    1. Simon,
      You don't have the tftp program. You should get that first.
      The tftp> part is the prompt from when you have that program open. At that prompt you type connect, rather than typing in "tftp> connect" to the bash prompt.

    2. Hi,

      I have the same problem but do not understand your reply James. Maybe because of my English or little clue about Terminal. How can I get tfpt program that runs in Terminal? 😮

      Thanks a lot.

      I may have bigger problem that my router has different ip since ping gaves me only timeout.

  14. Thanks for the tutorial my friend! However, whenever I try to connect with my Asus WL500W I do get a connection via TFTP, but it drops after ~30s/1m. This in turn makes it quite hard to PUT the datafile, if I can hardly get it to binary mode. Let alone the possibility it might brick my router if the file doesn't get through.

    Using Debian 7.2 wheezy running Linux kernel 3.2.0.4-amd64. Connected with my router through cat5e. No wifi, ofc.
    After pulling power and replugging it, it boots in normal mode, without problems.

    Goal: replace DD-WRT for Oleg's FW.
    Any help is appreciated.

    Kromme.

  15. I love you !

    The router was bricked after a bad DD-WRT upgrade.
    With your help I could manage to reinstall the original ASUS Firmware.

    Thank you so much !

  16. Great post and thanks! I'm able to get to get a response when I ping the router, but then when I go in to TFTP the file, I kept getting timeouts. So, I set the timeout to "6000" just to give it plenty of time, but no luck. It just sits there. It's been close to 10 minutes now and I'm not getting the "sent...." response.

    Any ideas?

  17. Just a spot of thanks for this. My router broke mid-update and was not responding to anything. Couldnt ping it @ 192.168.1.1 but thought I'd give your TFTP instructions anyway and the router came back with all its settings intact. Worked for both stock and also the alternative firmware I use.
    Thanks a lot for posting !

  18. Wow! It worked for me thanks! But with one modification. It failed first so I've installed Wireshark. And checked that it doing ARP requests for 192.168.1.11. So I've changed my IP from 192.168.1.10 to 192.168.1.11 and it worked. Thanks again!

  19. Chris,
    You are a genius. I had spent many hours over a three day period trying to bring my Asus router back from the dead. I could not accomplish this with the Asus router utility and Windows computers. I had given the router up for lost. But I followed your instructions and the router is back to life. I bricked it in the first place trying to upgrade the tomato firmware on it. I don't know if I have the courage to try again.

    You really made my day!
    John

  20. Using your instructions I have successfully restored my "dead" Asus RT-N to its newest version of Asus firmware. I would like to flash the router to Tomato firmware. Could I just follow the same tftp instructions and substitute a tomato firmware compatible with my router into the tftp instructions and accomplish the flash that way? I've seen some tutorials that basically seem to do that in a Windows environment. I am running Mac OS X.
    Thanks.

  21. I'm glad I found this posting (and a couple of the comments). With the information in here and a weekends fussing I was finally able to get my (I thought totally bricked) ASUS RT-N56U router back to life. And, I learned a few more tricks.

    Thanks!

  22. Had a mishap with my upgrade yesterday and ofc I don't own a windows pc anymore...

    Tried your howto and everything seemed to work fine....but... when i rebooted the router it went back to recovery mode with the power light slowly flashing...

    Still being able to ping the router i ran the process again, but still the same. When I try to reach the web interface it just gives me a sign which says (roughly translated)
    "Settings have been updated, the website will update. Changes has been made on IP-adress or port. You will now be disconnected from RT-N66U. To access the settings of RT-N66U, reconnect the wifi and use the updated IP-adress or port."

    Any idea about the updated ip-adress or port...? tried several different ip-adresses but none work except 192.168.1.1 and gives me the message above.

    Thanks for a good howto anyway!

    1. Fredrik
      I initially received the same webpage message as you. I followed the instructions again and, this time, waited a good 15 minutes before I rebooted. This seemed to do the trick as the router rebooted normally and I could access the router GUI. Give it a shot and best of luck!

  23. Thank you!

    I was having trouble getting my connection between OS X and Win7 though parallels to play nice. I wish I had found this before wasting time downloading and install their utility.

    1. By the way... This tftp method works great to install the TomatoUSB firmware.

      I had to reset the NVRAM (power off, hold WPS button, power on, wait 30 seconds, release WPS button) and let the router reboot a couple of times.

      After that 5GHz was disabled. I needed to go into Tomato's Web Interface, reset NVRAM from there, and then reboot again (without changing any settings).

      Now it is all good.

  24. Thank you! You just saved me $200! I can't thank you enough for sharing this information for us Mac only users. I tried everything and nothing worked until I found your post. I very much appreciate your help.

  25. Hey there, awesome guide! Can you please help with the network config part in Ubuntu? I drop eth0, then restart it with: (my router is .29.1)

    ifconfig eth0 192.168.29.10 netmask 255.255.255.0 up
    route add default gw 192.168.29.0

    Then when I run the tftp commands it just times out on put, even with 8 minute timeout. I can ping 192.168.29.1 and get a response, though. Thanks!

  26. Worked like a dream on my RT-N66U after Asus's automatic update via the web browser borked the box. (OSX 10.10.4)

    Had to force it into recovery mode with a 5 second reset push, but after that your tftp insight was straightforward to execute.

    And my settings remained intact too, which I wasn't expecting. It rebooted from net 1 into my regular LAN subnet and all was well.

    Thanks!

  27. Your post saved my night. Accidentally flashed my rt-ac68u to dd-wrt instead of latest Asus flash by grabbing wrong file. renaming to trx to bin didn't work, ASUS recovery tool did nothing. I ended up installing TFTP in Windows (features and such under programs) and using that tool to upload the trx following your instructions. Worked like a charm. (forgot my lan adapter at the office for my macbook)

  28. Just saved me £80, thank you so much! I would just like to add, if you find the router is returning to recovery mode every time, wait at least 20 minutes after completing the push command before restarting the router. Before you turn the router back on, hold the wps button then turn it on and keep the wps button held in for 30 seconds.

  29. Thanks!
    I tried resetting the router maaaany times and noticed my cable connection was active just a minute or so, when pinging the router, before losing the connection to the router.
    Once the ping was OK I started a tftp software I found (http://tftpd32.jounin.net/tftpd32_download.html) which worked like a charm (I couldn't get the installed tftp work in terminal mode).
    Spent 4-5 hours on this and your instruction made it work in the end!

  30. I don't know when this became available, but Asus now has a firmware restoration app available on the Mac App Store:

    https://itunes.apple.com/us/app/asus-firmware-restoration/id1020519014?mt=12

    I tried following the instructions from this post, and it didn't work for me. However, the Asus Firmware Restoration app worked fine, and I used it to upgrade my router to asuswrt-merlin (the built-in firmware upgrade interface also failed when I tried to go to asuswrt-merlin).

  31. after i spooned my asus a couple of months ago, i found this page and some advice on the SBN forums.. the problem was caused by the tomato router firmware i tried uploading didn't work and it didnt reboot or come back correctly and the reset didnt work because i think the tomato web updater messed up

    Being a unix geek, i used the tftp commands because you can see clearly what's going on..

    1. I did an NVRAM clear first by using the WPS button and power on, this worked. (fast blinking power light)

    powered off

    2. I did a reset button and power on, and firmware upload, slow flashing power light.

    you have to power on the router.. do a ping from your machine to 192.168.1.1 - wait until you get a reply. then

    3. did the tftp, completed on asus firmware.
    psyfer:Downloads danilo$ tftp
    tftp> connect 192.168.1.1
    tftp> binary
    tftp> put RT-AC68U_3.0.0.4_380_3831-g93dfe8c.trx
    Sent 40280064 bytes in 34.9 seconds
    tftp>

    then wait... wait 5 minutes + - then reboot.

    it worked a treat.

  32. Many thanks for your post Chris. I tried to update an rtn53 with the latest trx file from the asus site using the router's web based firmware update panel on linux/firefox and bricked it. Your procedure worked for me to recover.

Leave a Reply

Your email address will not be published. Required fields are marked *