I recently attempted to install OpenWRT on my Ubiquiti EdgeRouter X (ER-X), but I’m now stuck in a semi-bricked state.
Here’s what I’ve done and observed:
Flashed OpenWRT according to the official guide.
After reboot, the router no longer responds over the network.
The device does not provide IP addresses via DHCP.
I’ve set a static IP (192.168.1.254) on my PC and connected via Ethernet (tried all ports), but see no TFTP or network activity.
I’ve monitored the connection with Wireshark — no traffic whatsoever from the router.
Using TFTPD64 with fwupdate.bin placed in the correct directory, configured properly, but no TFTP request is ever received.
When holding down the reset button while powering on, the LED starts to blink in a specific pattern, which suggests that recovery mode may be active, but still no TFTP activity happens.
At this point, I suspect the bootloader is intact (since I get the LED behavior), but TFTP recovery isn’t functioning properly.
I’ve ordered a CP2102-based USB-to-TTL serial adapter and plan to try serial recovery soon.
Questions:
Has anyone successfully recovered an ER-X via serial in this situation?
What are the correct UART settings (baud rate etc.) for accessing U-Boot on ER-X?
Can I flash the firmware using TFTP once connected via serial/U-Boot?
Is it normal for U-Boot TFTP recovery to fail silently like this?
Any help would be appreciated — thanks in advance!
TFTP recovery only works with the special signed recovery firmware from Ubiquiti.
You push the firmware to the router it does not pull it. There is only about a 20 second window to make the push after the lights start flashing. The lights flash indefinitely but the service in the bootloader shuts down.
I attempted to flash the latest stable OpenWRT version for the ER-X, which is 23.05.3, using the openwrt-23.05.3-ramips-mt7621-ubnt_edgerouter-x-squashfs-sysupgrade.bin image.
I suspect now that I might have used the wrong image since I did not start from the OEM firmware but from an already OpenWRT-flashed ER-X (which might have been an older version).
Do you think this could explain why the TFTP recovery is not working properly and why I might need to go serial?
Thanks again for confirming that serial recovery should still be possible. I have a CP2102 USB-TTL adapter on the way.
I now realize that I misunderstood the TFTP process.
I actually tried pushing the firmware to the router using TFTPD64 and the 'Put' command, but I got an error message saying something like "file already exists" and the transfer was aborted.
This confused me, as I wasn’t sure if this meant the router already had something loaded or if it was some kind of error due to wrong firmware or process.
Based on your comment, I understand I need to use the Ubiquiti signed recovery image, which is usually named fwupdate.bin.
Could you confirm if this is the correct file for my EdgeRouter X (ER-X)?
And should I use the firmware from:
Ubiquiti's official site (ER-X stock firmware .tar or .bin)?
Or is there a special recovery-specific fwupdate.bin I need to download somewhere?
I flashed OpenWRT 23.05.3 sysupgrade image (openwrt-23.05.3-ramips-mt7621-ubnt_edgerouter-x-squashfs-sysupgrade.bin) previously, and I suspect now that I may have done it wrong (since I used a sysupgrade image, not a factory image).
If possible, could you point me to the exact file and version you recommend I push via TFTP?
Should I attempt to push an official Ubiquiti firmware (fwupdate.bin) first to restore the bootloader and OEM system, and from there try OpenWRT again?
I have renamed it to remove .signed, as I understand the router only accepts .img files over TFTP in recovery mode.
Steps performed:
Set static IP on PC: 192.168.1.10 / 255.255.255.0
Put the router into recovery mode:
Press and hold the reset button.
Connect power while holding the reset.
Release the reset button after 30 seconds.
Confirm the router responds to PING on 192.168.1.20.
Started SolarWinds TFTP Server, confirmed it binds to 192.168.1.10.
Verified TFTP server by running:
tftp -i 192.168.1.10 GET ER-e50.recovery.v2.0.6.5208541.190708.0508.16de5fdde.img
File download succeeded.
Sent the recovery file to the router:
tftp -i 192.168.1.20 PUT ER-e50.recovery.v2.0.6.5208541.190708.0508.16de5fdde.img
Command returned no message or confirmation.
I observed router's port LEDs blink in sequence (1 → 2 → 3 → 4) during transfer.
Waited around 20 minutes.
The router remains in recovery mode, still reachable on 192.168.1.20.
No DHCP server active.
Can't access the router on 192.168.1.1.
Repeated the process multiple times, same result.
My Questions:
Do I need to keep holding the reset button while I send the TFTP PUT command to the router?
Currently, I release the reset button once the router is in recovery mode and responds to ping.
Does the recovery file need to be renamed to a specific filename (like ER-e50.img) for the bootloader to accept it?
Or is it OK to use the exact name downloaded from Ubiquiti's site as long as it ends with .img?
Is it normal that the Windows TFTP client gives no confirmation when using PUT?
I see only the router's port LEDs blinking, but no output or confirmation from the command line.
Should the router reboot automatically after a successful file transfer, or do I need to manually power cycle it?
I want to avoid interrupting it if it's still writing the image.
Is 20-30 minutes enough waiting time after PUT, or should I wait longer?
I still see the router on 192.168.1.20 and it does not move to normal mode or start a DHCP service.
I would appreciate if anyone could help me clarify the correct file name format, button behavior, and expected LED indications or confirmation signs from the router.
The Solarwinds server is not needed here since the router is a server and your PC is the client.
No the button only starts up the recovery mode.
I don't think the name matters. The default with TFTP push is there is no remote name sent. Do not alter the contents of the file. The bootloader does check its signature.
Yes a successful PUT will simply return to the command prompt when complete. If there is an error an error message will be shown.
I don't remember but a manual reboot should not hurt anything even if the flash is incomplete, it would only affect the OS area which is already in an unusable state.
I used Windows TFTP client only, without SolarWinds, since the router acts as the server in recovery mode.
I made sure the file was exactly as downloaded from Ubiquiti's website: ER-e50.recovery.v2.0.6.5208541.190708.0508.16de5fdde.img
(I also confirmed from your answer that .signed is not necessary in the filename when using TFTP PUT).
I started the router in recovery mode by holding the reset button while plugging in power, then releasing it when it started responding to pings on 192.168.1.20.
I sent the file using:
tftp -i 192.168.1.20 PUT ER-e50.recovery.v2.0.6.5208541.190708.0508.16de5fdde.img
The command returned to prompt without errors, and I observed LED activity (port 1 lit first, then 2, 3, and 4).
I waited about 10 minutes and manually power-cycled the router.
Unfortunately, after reboot the router still does not come back to 192.168.1.1, and my PC still gets an APIPA 169.x.x.x IP, which makes me think the router is stuck.
At this point, I'm starting to wonder if the bootloader might be corrupted, since the behavior is very strange even though the TFTP PUT works fine and the router responds in recovery mode.
My questions are:
Could this be a sign that the bootloader is damaged or corrupted?
Is there any way to reflash or repair the bootloader on the EdgeRouter X?
Is there any chance to do this via serial console (TTL) or JTAG? I have a CP2102 USB-TTL adapter, but Windows fails to recognize it, so I was not yet able to connect via serial. Could serial be the next step?
I'm starting to run out of ideas here and have never experienced such a stubborn recovery process on any device before.
Hi, I was having the same issue as what you describe in your previous posts. I notice you used the 2. version of the recovery image. Have you tried to use the 1. version of the recovery firmware? Worked for me after having no success with the 2. version.
In the end I got it working again using these steps.
Connected the edgerouter x to my LAN network so I could see the IP address of the edgerouter designated by my DHCP server once the edgerouter had been reset to tftp recovery mode. I then made this a static IP in my main LAN router DHCP settings.
Using the discovered IP address, ping the edgerouter to check connection.
Then reset the edgerouter to tftp recovery again using the reset button. Before doing this, be ready to execute your tftp command the moment you see the lights on the edgerouter flashing to show tftp mode is active.
Command I used in Windows cmd was:
tftp -i [edgerouterIPaddress] put [link to restoration image file]
Once the upload process had finished, I removed the static IP entry for the edgerouter in my DHCP settings & unplugged the edgerouter.
Connected the edgerouter to my pc via ethernet using the eth0 port & changed my pc IP address to 192.168.1.10 & was then able to access the edgerouter via 192.168.1.1.
I just wanted to take a moment to sincerely thank you — your solution brought my EdgeRouter X back to life!
After trying countless suggestions and scouring forums for days, your guidance stood out as clear, precise, and exactly what I needed. Thanks to your help, everything is now up and running perfectly.
It’s rare to come across someone who not only understands the technical details but is also willing to share their knowledge so generously. Your contribution made a real difference, and I’m incredibly grateful.