Linksys WRT54G Firmware: OpenWRT, DDWRT, Tomato

Note:  it is inherently risky to install firmware on your router.  It is possible to make your router unfixable.  So please try this at your own risk.  Learn from what happened to me.

Summary:  I bought a WRT54G router with DDWRT installed, which has since made a one-way trip to a landfill.  I was able to find another WRT54G V2 at a local pawnshop and I put Tomato on it.  Most of this article has to do with my use of that first router.

I played with the original WRT54G with DDWRT for a maximum of 15 minutes, then flashed Tomato to the drive, then imposed access controls.  Everything was fine.  It was faster than the WRT54G Tomato router I have at home.  Then I flashed to OpenWRT because I wanted to turn on Asterisk.  Then I discovered OpenWRT doesn’t do access control as well as Tomato.  Then I tried to flash back to Tomato and…. guess what… OpenWRT does not allow you to use the GUI to flash other firmware.  Making the most of the situation, despite my panic, I played with OpenWRT for a while, trying to install first dansguardian, then uninstalling dansguardian and trying to install Asterisk completely unsuccessfully—router was unable to see repositories of download sites.  At this point I realized that even if I was able to install Asterisk I would have to administer it using the command line, not a gui, and overall the setup would be prone to break even if I got it working.  My previous experience with Linux command line is that I have learned some BASH script but troubleshooting from the command line is like driving a car by issuing instructions in a foreign language to a blindfolded driver who is volatile and unpredictable.  Therefore I decided at this point that Asterisk on the WRT54G was not a good idea due to the router’s limited capacity—Asterisk should be installed on a piece of more serious hardware, or should be installed by someone who is more of an expert than I am. I tried using telnet and the command line to install Tomato, and bricked my router (it became unresponsive to SSH and Telnet and unavailable via the router webpage).  I tried using tftp to install Tomato.  Apparently I did that wrong, and I more deeply bricked my router; I became unable to ping my router, and the power light was flashing (indicating a more serious bricking problem).  I cracked open the router and tried to bridge pins 15 and 16 on the flash chip (according to instructions I found online) but guess what… I bridged pins on the wrong chip and accidentally bent pins on the wrong chip so they stayed in contact.  Unfortunately after this the secret wisp of smoke that had previously magically made my router do its electronic work escaped and the router became garbage fodder—a $35 experiment gone wrong.  And now with some conviction I advise you not to try to use OpenWRT.

The lesson that I learned from this exercise is… do not install OpenWRT.  Or if you do, and you brick your router, (1) spend an hour or so reading about updating your flash firmware before you issue any commands to your router, seeing a couple of alternative methods and choosing the best one before you act; (2) use a small (not big and heavy) screwdriver to do the hardware debrick method, and make sure you are on the correct chip before you make any contact with metal parts while the router is on.  Preferably use a huge worktable magnifying glass and a good light source to see what you are doing on the router board as you are debricking it.  One tip I can give you is that instead of counting by sight, you can run the screwdriver along the pins next to the silicone, and as it passes over each ridge you can count one… two… three… up to fifteen.  When you pass fifteen you are now making contact between the fifteenth and sixteenth pins.  So now, if you are following the debricking instructions and have the ping –t command running—now is the time that you would plug in your router according to the online hardware debricking instructions (this should enable a response to your pings).  **I do not accept any responsibility if you are trying to debrick your router according to the online instructions and thereby let your own wisp of smoke escape—that is your responsibility NOT MINE**

Tomato, OpenWRT, and DDWRT

None of these software packages is perfect.  Tomato is strong for access control and internet monitoring.  OpenWRT is strong for added features (especially Asterisk).  DDWRT as far as I can tell is a very interesting software package but not as good as Tomato for access control, and not as good as OpenWRT for additional software.  However it is good for making your router a multi-wan router.  This is a useful application if for example you want to have two potential internet sources just in case—for business this might be a good idea. 

Considering how affordable these routers are compared with the dedicated components you can buy, it would be reasonable to have a collection of WRT54G routers, running with different firmware and for different purposes.

Overall I would recommend Tomato as the best of these for access control and general versatile use, DDWRT for multi-wan setup, and OpenWRT for Asterisk (if you are working with a WRT54G router).  Tomato is also good and easy to configure as a wifi bridge or client.  You can for example use a pair of these Tomato routers to inexpensively create a secure 54Mbs wifi bridge between two buildings or two spots in your house, if you don’t want to wire your house with ethernet cable.  The implications of that bridging capacity alone are really mind-boggling.

You will probably need some BASH scripting experience to use OpenWRT (although I guess it’s called ASH and is more limited than BASH), but not necessarily with Tomato.


I’ve been using Tomato for a couple of years.  (here’s a good guide to the Tomato menu) It provides detailed information about your usage of the internet.  It is probably the best software for access control—you can easily block all internet access at certain times of day without trying to write iptables instructions.  You can block keywords—if you block about 10 obviously knowable bad words you’ll immediately have blocked a LOT of the bad stuff on the internet.  Also it’s user-friendly and easy to work with.  Maybe that’s just from my familiarity with it, but based on what I’ve seen it’s just the best.  DDWRT was not as easy to block bad stuff with as Tomato, although I believe it was easier to use than OpenWRT.  (Not to complain about any of this software, it’s just I have a preference for Tomato).

You can also do more complicated things with Tomato, including iptables scripts.  However I have found that unnecessary.

Tomato is nice for benchmarking your internet use because it shows you nice and precise almost-real-time graphs of your internet use.

See some screenshots of Tomato:



I tried desperately to install Asterisk VOIP control software on the Tomato Linksys WRT54G, but that did not work.  Some instructions advise that you can install Asterisk to a Tomato router (,, but those instructions are for routers with USB ports (which the WRT54G does not have).  I believe that the file system in Tomato is less developed than the one in OpenWRT, which is why OpenWRT is able to install an additional component like Asterisk.  To make a long story short I tried to activate the JFFS2 file system in Tomato and then tried to install Asterisk to JFFS2—but it was only one megabyte and that was not enough space to hold Asterisk.




OpenWRT has more of a Linux culture than Tomato.  The instructions to download and install the software exist but take some doing to figure out.  Unlike Tomato which is laid out in a way that shows that the developers put some thought into your navigation of their website.  OpenWRT is more of the wild untamed Linux world, where “anything is possible” but you sometimes have to spin your wheels to move from step one to step two.  Once you get moving I guess the world is your oyster.

I didn’t see any good directions to install OpenWRT, so I am going to lay it out for you.  To install OpenWRT:

1) Select your device and find the correct firmware based on your device:

2) Download an image, the correct one for your device by these means: 

You have to know which package you are looking for before you visit this area:

3) Flash the firmware to your router using the “firmware upgrade”


OpenWRT is good because it can have Asterisk installed on it. (

OpenWRT is more like a full-on Linux distro because it is designed with additional packages that can be incorporated.  In theory you can incorporate dansguardian which is an excellent (if touchy) internet access control software. (  I personally had trouble with it in the five minutes I devoted to it, and anyway the reason I’m here doing this is for Asterisk, so…

One strange thing about OpenWRT is that once you install it it is difficult to uninstall it and reflash back to Tomato.  I know this because after I flashed it and realized it had extremely limited internet controls on it I immediately tried to reflash back to Tomato but the software wouldn’t let me! Probably there is a way that I haven’t found.  (See Gary’s comment below)

Tomato is a control panel, OpenWRT is a maze of controls—not necessarily all the controls you want.  But it does Asterisk, so…

Update:  OpenWRT is dangerous.  Once you install it it’s difficult to get rid of, unlike the other softwares which are not designed to entrap you.



DDWRT I am sure is good but I don’t know how you do access control or Asterisk on it.

A major advantage with DDWRT is that you can make your router a dual wan router.  You can buy cheap dual wan routers on ebay for about $80.  Or you can make your hacked router (which you can get for $54 brand new at Newegg) do it using DDWRT.  Here is a google search on that issue.  Tomato is not really set up for that yet.  It is possible to do it with OpenWRT but based on my experience with OpenWRT, and also based on the number of people complaining online that they have a bug in their multi-wan configuration through OpenWRT I would think it’s easier to accomplish multi-wan with DDWRT.

I was going to switch to OpenWRT but I need access control so I am sticking to Tomato for now.  Later if I invest in more of these WRT54Gs I will likely continue to experiment with both DDWRT and OpenWRT.

I tried to install Asterisk with OpenWRT and ran into a lot of problems.  I decided at the time it wasn’t worth it—the router became slow and apparently was unable to see the repositories it needed to download the necessary files? 

The Linksys router is cheap, but my feeling at the time was that if you really want Asterisk it’s worth upgrading to something more powerful to run it on.


Here’s another article saying Tomato is better than the others.