May 112011
 

In spite of my own previous promise to self that I’ll respect my time and spend money when it saves time, I’ve just had a lot of fun and wasted my weekend away while trying to upgrade a friend’s old Linksys WRT54G v6 router to DD-WRT open source firmware and convert it to a repeater, then trying to de-brick or unbrick it when it didn’t succeed. Well, this was again a waste of time (same thing happened once before with my v8 router), so I renew the promise to self – I will not try to put DD-WRT “Micro” firmware on WRT54G v 5 and above. I will rather buy an older version of this router, or buy a fully functional, higher end unit. As I say frequently, I’m not rich enough to buy cheap things (in this case it was a present, but I lost a lot of time with it).

History

A few years ago before 802.11n routers came into picture, Linksys WRT54G wireless router was THE router to get and I used to recommend it to home users before I discovered how newer versions of this router were altered for the worse coincidentally or not after Cisco bought Linksys. It first was an unbreakable little unit with good performance, plenty of flash memory and RAM with a room to grow and great consumer reports. It was based on Linux and once Linksys released its code, open source enthusiasts started doing their mods and coming up with new versions of firmware with more advanced features. It was so good that not only I had one but I also kept recommending it left and right to my friends and coworkers, installed it at some places and almost never had any problems with it.

Things Sometimes Change for the Worse

With version 5 and above the OS was altered, the chips were changed and the amount of RAM and flash memory onboard was halved, which just rendered the router unusable for any decent version of open source firmware. Enthusiasts responded and created “micro” versions of firmware so these units can in theory still be modified, but my experience with two of them was identical – following instructions step by step only took me to bricking them and then had me spend even more time on trying to undo the damage and revert to factory firmware, first time even buying the JTAG cable and trying to mess with the router’s “guts” with no success.

I’ve done all the required and recommended reading and followed the instructions provided at DD-WRT website

Here are the notes to self I was taking in the process.

DD-WRT Firmware on WRT54G v6

1. Recorded MAC addresses on the router
00:18:xx:xx:xx:07 (Local Network and bottom label)
00:18:xx:xx:xx:08 (Router)
00:18:xx:xx:xx:09 (Wireless)

2. Started with 30-30-30 reset (hold reset button continuously with connected power, unplug for 30, then plug and hold for 30 more seconds)

3. The router gets into a “Management Mode”. That’s where it needs to be (I should see this page if I connect to it by opening 192.168.1.1)

4. I Was missing VxImgToolGUI from the downloads so I downloaded the files from the GV5Flash.zip link and started VxImgToolGUI.exe – avast asked whether I wanted to run it in sandbox and I answered to run in normal mode.

5. Recorded the MAC and saved the file as My54gImage.bin

6. Restarted the router (30 sec unplug)

7. Go to administration, select Firmware upgrade, browse to and upload vxworks_prep_03.bin

8. (step 15 in the Wiki) Wait 5 full minutes (300 seconds).

9. After full five Earth minutes (LOL), power cycled the router. Got the Management Mode – yeah! (as it should)

10. Uploaded the My54gImage.bin and after getting “Upgrade Success” waited for another 5 full minutes

11. After 5 minutes start the downloaded tftp.exe:
Server: 192.168.1.1
no password
File – select 12548 Newd_Micro.bin
99 retries
Power cycle the router after setting the above and count to 2, then Hit “Upgrade”

12. Got Success message (“Firmware was upgraded successfully!), then waited another FIVE minutes.

13. Waited for another 5 minutes

14. Couldn’t get to the interface at 192.168.1.1. Set the IP address to 192.168.1.7 as recommended in the Wiki, but that didn’t help either, reset to DHCP again (if the router is operational it should work) and then recycled few more times until I got the management DD-WRT page

15. Did the Hard reset (30-30-30 as described at the beginning),but my pc is having troubles getting an IP.
Tried with another pc without success, however once got it to reboot and managed to connect via wireless,
Then upgraded firmware to dd-wrt.v24_micro_olsrd_generic.bin
ethernet led was flashing every one second before and after, then did the 30-30-30 reset again.

16. Numerous resets brought little to no success, it would sometimes, only sometimes ping back for a short time. It seems like the reset button doesn’t really do anything.

17. Tried to shorten the pins 15 and 16, but did it backwards – counted top from left to right, needed right to left according to another website (go figure).

18. Did it on proper pins, with no result, and same behavior as before.

19. Close to trashing the router I decided to try two more things, one to use the pointy tip of my soldering iron (cold) to better short out the pins, second to try to do the wire to the antenna as some suggest,

20. After the cold soldering iron tip didn’t do much I started looking for the wire, and just when I found one and started attaching it, the pings started showing. Most surprisingly, the OS on the system was still encrypted with the first dd-wrt password and wireless key, then I flashed the firmware to …. NEW wirelessly!

21. After that didn’t dare to touch the power or reset, but re-flashed the firmware again over the wire/switch, as I was able to do once in 100 resets or so before, but it wouldn’t hold and the reset button did nothing. So now I was also scared to do a reset, so I just configured the repeater as I planned originally without touching anything else. But after I was done and everything worked as planned, I just had to unplug it to move it. Of course, just as I was afraid of, that sent it back, riding the eternal prairies. After this I tried the other methods of shortening the pins and got no change in behavior. It’s a brick, a paper holder, and it seems it will remain that way, unless someone with more patience and a JTAG cable wants to try reviving it.

If you’re in Chicago and you want to mess with it I’m giving the bricked router away so fill out the contact form from the link above and I’ll give it to the first person who wants to come and pick it up, but I think your chances of salvaging it are remote.

Lessons Learned

This may be important: I saw that unplugging the router by pulling the power plug from its back and then plugging it back in was almost always resulting in sparks, so I recommend unplugging the brick from the wall instead.

Other than that, if you ever get a WRT54G version 5 or above, my friendly advice is to rush to replace it with an earlier version if possible, or just use it with its factory firmware. Don’t try DD-WRT on it, just don’t. It’s not worth your time, unless you have tons of it and love doing these things.

  4 Responses to “Avoid Linksys WRT54G v5 and above”

  1. I bought a Linksys WRT54G V5 at a yard sale for $3.00 and *EXACTLY* followed the instructions given at:

    http://dd-wrt.com/wiki/index.php/Linksys_WRT54G_v5.0_%26_5.1_%26_6.0

    Everything worked as described on the first try and DD-WRT is running on the WRT54G V5 router. I agree with the author that the earlier versions of the WRT54G had a larger memory but the micro version of DD-WRT on the V5 is better than the stock firmware which came with the WRT54G.I’d recommend using the micro version of DD-WRT anyway. If you omit a step in the process and brick-it than get another one; WRT54Gs are free or almost free these days.Besides, flashing these routers offers a true lesson in following instructions, pause on each word to fully comprehend their meaning.  The first time I flashed one of these, quickly reading through their instructions thinking to myself, “I know what they want, I know what they want and doing it.”.  The product of that effort was a “brick”, just like yours; LOL.

    • Having followed instructions thoroughly and entirely (writing down my experience with each step for my reference in the process, which is how this post came to life), I bricked two of these in a row (within a year and a half), so my success with flashing WRT54G v5 and v6 with DD-WRTis 0%. Yours is at least 50% (I see that you’ve bricked one) so our average is at 25% or so, which I still consider an extremely risky endeavor, regardless of the reason for failure. In addition, due to the lower amount of RAM and different CPU these (version 5 and above) tend to get flaky and require a reboot more often than with factory firmware according to what I’ve read, so my advice to an average user or someone who values his time as much as his money is still to stay away from flashing any WRT54G version 5 and higher with DD-WRT.

      Having said that, I must also say that flashing home routers and mobile phones with custom firmware is my standard behavior. I have many times successfully flashed my Netgear WNDR3700 router with DD-WRT beta firmware and reverted to factory firmware without any glitches like this, what just confirms how handicapped later models of WRT54G are. Nevertheless, if I found a WRT54G for $3 like you did I’d probably go against my recommendation and try it again the third time just for the heck of it (and because I want to configure one as a repeater).

      Thanks for the comment.

  2. This article is a little old, but I still want to thank you. You may have just saved my evening (and then some) as I was about to try what you attempted, and your play-by-play was sufficiently discouraging! I’d *much* rather have my slug router than a blue & black paper-weight. So thanks. 😀

  3. Worked out just fine for me on my first atempt, just followed all the steps very carefully. Was a little extra tricky as did it on OS X. Very scary trip though as it was a friends router! Now to see if it’s stable enough or useful at all with it´s limited specs…

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)