Reviving a Linksys WRT54G v1.1

posted in: flash | 0

I thought it was gone. Forever. My Linksys WRT54G v1.1. But let me start from the beginning: I read that the OpenWRT White Russian release 0.9 got final. I was using the original Linksys Firmware before so I thought I’d give it a try by flashing the end user version of OpenWrt, x-wrt, via Web-Update.

The update worked like a charm, but it looked to me as if x-wrt doesn’t come with a firewall (accessing the external IP address from my private network gave me the adminstration web GUI… – an iptables configuration problem, which I figured out much later), so I kind of paniced (yeah…) and tried dd-wrt.

I installed dd-wrt via x-wrt’s Web update and everything went smooth. Until I rebooted. I could no longer access it, even ping ended up with “Destination host unreachable”. Now, boot_wait is bliss. I turned it on a while back. Fortunately.

So I tried to flash the original Linksys firmware via TFTP. But the transfer stopped after some time without completing – after some tries I gave up and found an explanation on openwrt’s web page:

There is a physical limit of approximately 3,141,632 bytes that CFE/PMON will accept during the boot_wait stage.

Great. But wait, the image of x-wrt is smaller than that. I tried to flash this one via TFTP and that did the trick. It’s admin page was accessible and I was able to flash images via Web-upload. I was happy. My device was ok again, I figured out x-wrt does have a firewall 😉 and it was working, which you should never change 😉

After a day or so however I found out that x-wrt runs pretty unstable. Port forwardings blocked, the NAT was slow, etc. so I gave dd-wrt another try. It booted, no ping again. But I saw that the device was actually running ok. The LEDs looked fine. Booting seemed to have finished.

Now here comes the trick: dd-wrt (and the original Linksys firmware as well) comes with resetbuttond enabled. And if you press the reset button for approx. 30 seconds, it resets all settings back to the “factory defaults”. I tried it, after some 20ies seconds the four ethernet port LEDs lighted up like a fireworks and the device rebooted – with clean settings – and there it was: dd-wrt’s web admin page!

So basically, here are some tips if you regularly update firmwares:

  • Always have boot_wait enabled
  • Always have a firmware image available that’s smaller than 3 MB
  • Whenever your device’s NVRAM settings got messed up, flash the original firmware or dd-wrt and reset the settings to their factory defaults via the reset button
  • Give x-wrt some more days to get stable