Tomato firmware for Linksys WRT54G router

by Alex Kuretz on October 11, 2008 · 28 comments

in Guides

I’ve been using the DD-WRT firmware on my old v1.1 Linksys WRT54G router for a couple of years now. I upgraded to the DD-WRT firmware when I was frustrated with the Linksys firmware locking up the router while using BitTorrent applications due to too many stale TCP connections. This has worked great, but my needs have changed and so I went looking for alternatives.

Having recently switched to Vonage for VOIP service at home, I specifically was interested in using QOS features to prioritize the Vonage calls over everything else, and drop any BitTorrent traffic down to the lowest priority yet still provide it as much bandwidth as possible when my connection is idle. My personal experience and subsequent research had shown that DD-WRT did not have a QOS implementation that was working for me; every time I enabled it and tried to get QOS working, the router would lock up, forcing a hard reset. I was also interested in tracking my bandwidth usage, after hearing the news that Comcast was going to start capping bandwidth. So I decided to try the Tomato firmware.

I’m the type that always reads the README documents with new software, so I thought I had gone about the upgrade from DD-WRT to Tomato correctly and everything would work well. Unfortunately, I had missed a critical step that I was supposed to check a box in the DD-WRT upgrade menu that would force a reset of all stored settings. This left me with a “bricked” router that would not assign IP addresses, route traffic, or even respond to a ping. Fortunately, I’m able to tether with my Windows Mobile phone and access the internet, where a Google search quickly turned up a link to The WRT54G Revival Guide. About half an hour after finding out that Vista does ship with a tftp client, breaking the warranty seal on the case of my router, and shorting out two pins on the flash chip, I was back in business with a correctly functioning router running the Tomato firmware.

I prefer configuring static DHCP address for my PCs and MediaSmart Server rather than static IP addresses so I set those up, configured my secure wireless connection, forwarded a few specific ports, and happily noticed that Windows Home Server had correctly configured the ports it needed via UPnP. I also enabled the bandwidth monitoring feature, created a Guest share on my MediaSmart Server with full read/write access, and configured Tomato to use that as a CIFS storage location for the bandwidth logs. This last bit allows the router to store the bandwidth logs so it can keep historical data of my bandwidth usage even in the event of a power outage or router reboot.

Finally, I got to configuring the QOS settings to prioritize DNS and VOIP traffic the highest, web traffic and Xbox Live high, other services medium, and bulk traffic like BitTorrent the lowest. Here’s a screenshot of my config.

QoS configuration for Tomato

QoS configuration for Tomato

This has been working great so far, calls are clear with no drops no matter what other internet activity is going on, the connection is stable, Remote Access to my MediaSmart Server works, and I’m able to track my bandwidth usage.

Bandwidth usage monitored by Tomato

Bandwidth usage monitored by Tomato

What are the rest of you using, and how is it working out for you?

Article by

I'm Alex Kuretz, and I'm the founder of I was the Lead Test and Integration Engineer at HP for the MediaSmart Server until April 2008 when I moved on to other opportunities outside HP. I've kept active in the Windows Home Server community, creating several add-ins and helping users make the most of their Home Servers.


JohnBick October 12, 2008 at 7:10 pm

Dang it, Alex, I no sooner get happy that I am not fooling around with my configuration every day than you go and bring up a new topic and get me wanting to change things…

I have an old Linksys WRT54G v1.1 with Firmware v3.03.6 which has been working just fine for me for years. Messed with it a lot about a year ago trying to get remote access running on WHS beta — only to (a) never get it working and (b) find it worked perfectly once the final WHS copy was released. I use Vonage VOIP (two lines) without problems, but I do NOT use BitTorrent or XBox (or any other “extender”). I recently added a NetGear GS105 “downstream” from my router and would likely connect any extender there.

But I really like the idea of being able to monitor the traffic volume…

I do hope you have not started me on something here, Alex…

Philip Churchill October 14, 2008 at 6:50 am

Hi Alex,
Exactly the same software that I use on my WRT54GS v1.1. Like yourself I was using DD-WRT but it did not play nicely with Torrent’s or VOIP. Tomato is defiantly the way to go.

Alex Kuretz October 22, 2008 at 11:09 am

John, have you succumbed yet and installed Tomato? :D

Philip, I’d had Tomato recommended for quite a while, and now regret not having made the switch earlier. My VOIP issues have pretty much disappeared (occasional hiccup that I believe is a Vonage problem), and being able to see the bandwidth usage is really cool.

Joshua Adams October 25, 2008 at 1:38 am

I have a question for you guys using this router as i am using it to. I am having an issue were my wifes laptop says it is connected to my router(wireless), says it has repaired the connection and that the connection is good to go as far as windows is concerned, but she is unable to load a webpage. I have messed with just about every internet explorer setting i can think of, and if i make changes then revert it back to all default settings and do a repair it will go online for like 5min then if she tries to go to a different web page it locks up again. I was wondering if anyone has any idea how to fix this?

Lawrence Gwynn November 9, 2008 at 5:09 pm

Make sure to note that Tomato only works with the first couple version of WRT54G and WRT54GS. I can see someone looking at this and not verifying the version of there router and “screw up” their router.

CB February 7, 2009 at 12:30 pm

Great article! I have the WRT54G v4 and just switched to the latest version of Tomato after intermittent problems with losing access to the internet. I found forums where others had similar issues and they attributed it to the latest Linksys firmware. The recommendation was to switch to Tomato. The install went smoothly and port forwarding worked like a charm. However now I’m getting WHS messages that it is not able to verify that the router is accepting web site and remote site connections. I went with the default Tomato config. Is there something I need to enable? Thanks!

Alex Kuretz February 7, 2009 at 8:34 pm

Hi CB, I have the same behavior sometimes, I’ve simply set WHS to ignore that notification as it is only a warning and does not indicate a failure.

John Sims February 19, 2009 at 9:53 am

I’ve been using Tomato 1.23 on my WRT54G v1.1 for a few weeks now. Only problem I have is about 2-3 weeks its seems to just stop working. I have to un/plug it back in for it to start working again. I even restored it back to the latest linksys firmware and reconfigured Tomato all over again. It keeps doing it after being on for 2-3 weeks at a time.. is anyone else having this problem?

Alex Kuretz February 19, 2009 at 10:27 am

Mine has occasionally locked up, but not with any regularity or discernable cause.

John Sims March 3, 2009 at 9:36 am

It locked on me again. =(
This time I had to hit the reset button, otherwise the power light would just blink.
I like Tomato alot and hopefully in upcoming releases this problem will be solve. Until then I’m going back to dd-wrt. Its a pain for me to keep resetting being my router is in my attic.

Alex Kuretz March 9, 2009 at 12:34 pm

I’m sorry to hear that it’s causing problems, John. I’ve not experienced any issues in quite a while…

Paul Heroy August 15, 2009 at 1:56 pm

Just been looking into configuring Tomato with the MSS Remote Access and found this. I’ve been using Tomato with a WRT54GL for several months now and love it. If you’re buying a router the “L” model (for Linux) is what you need nowadays instead of the plain ol WRT54G. A few more $ but very worth it.

igk September 10, 2009 at 9:03 am

Hi, i posted this in the forums, then found this as well…

I just switched to a Linksys WRT 54GS v2 with Tomato v1.25 firmware. I can access my Mediasmart server when my computer is connected to the router via a wired connection. However, when I wirelessly connect to the router, I cannot log on to the WHS. This was not a problem when I was using another router with DD-wrt. I can connect to the router wirelessly and access the internet connection, just not my WHS.

Any suggestions?


Alex Kuretz September 20, 2009 at 8:39 pm

igk, is this with the same computer? Meaning when it’s wireless it can’t connect and when it’s wired it can? I can only suspect possibly different DNS servers for each connection, otherwise I’ve got no clue.

Jackie October 28, 2009 at 1:36 pm

Reading the comments, my head is swimming. I should probably be looking for the baby newbee section. However after 5 days of trying to get my Linksys router to connect to a hotspot open wireless network, I’ll give it a try. Everything I’m reading says use Tomato.

Ok, the router does in fact connect to the hotspot. But once connected, I can’t get on the internet. I have USB Netgear and Airlink wireless adapters which both will connect to the hotspot but with a weak signal that quickly drops off. In other words the adapters connect to the hotspot with a weak signal and I get on the internet. The router connects with a strong signal but I can’t get on the internet.

On of the errors in the TCP/IP is “Network did not assign a network address to your computer”. Is it looking for a DNS from the open hotspot? I tried the DNS that was assigned to Netgear adapter the few minutes everything was working. I put this number in the Preferred DNS. Still no luck.

Now to Tomato. I was reading I could use my router and Tomato to make a repeater or bridge something where the whole router turns into an access point the adapter can use. Here is is the bottom line. I want the router to bring the signal in strong so I can pick it up with my adapter.

Please, any suggestions???


Alex Kuretz October 28, 2009 at 1:46 pm

Hi Jackie,

I’ve not done what you are asking, but I did a quick web search and it appears that Yahoo Answers post contains the info you want. Good luck and let us know how it turns out!

Jackie October 28, 2009 at 2:00 pm

Thanks for your prompt response. I actually saw that Yahoo post a few days ago. It was somewhat general.

“add the firmware, switch to Client Mode and connect”.

I’ll let your group know if I am able to solve.

Alex Kuretz October 28, 2009 at 3:22 pm

Well, it actually appears to pretty much be that simple. :) Once you’ve installed Tomato, just change the Wireless Mode to “Wireless Client” under Basic->Network->Wireless. You’ll obviously need to configure a few things but it seems fairly straight forward.

Please do let us know.

Jackie October 28, 2009 at 3:54 pm

Wow! I hope that’s it. I am wondering about this “Network did not assign a netwok address to the computer”. I read where I was suppose to disable the DHCP. Doesn’t that assign network addresses?

(When the “DHCP” area loads, you’re going to want to click the option to Disable under the “DHCP Server” area. After you set the option to “Disable” click the Apply button.)

Vince December 24, 2009 at 1:11 pm

I have a Linksys WRT54g that I have upgraded to the latest verison of tomato. I was running an earlier version of tomato, and when I started haveing an issue, decided to see if the latest version would fix it. I have no problem with wired internet connectivity, but for some reason, about 1 or 2 times a day, the wireless radio will disable on its own. I have to go into the status overview screen and re-enable it to be able to connect. Anyone have any ideas?

Alex Kuretz December 26, 2009 at 11:49 am

Sorry, I’ve never encountered this issue before.

David January 9, 2010 at 12:48 pm

Has anyone had issues setting up Tomato to have a CIFS mount to a WHS box? (I have a HP MediaSmart LX195) I have a WHS share folder “Logs” subfolder “Router” I’m trying this in Tomato v 1.25:

CIFS Client
UNC \\staticIP#\Logs\Router
Username: WHS User account name with Full access
Password: verified correct password
Domain: ______ (Left blank, I do have the WHS on the same workgroup as all LAN computers)
Execute when mounted: _______ (left blank)

After I fill this in and hit “Save” I get the tomato software stuck in a “Mounting…” loop or something. It just never mounts!

Any ideas?

I’m just trying to get the router to use the WHS share for it’s bandwidth monitoring logs.

Thanks in advance.

David January 9, 2010 at 12:51 pm

Update: After waiting a very very long time (~30min) if I hit Cancel on the tomato software CIFS page I get:
“Error mounting CIFS #1. Still trying… ”

I forgot to mention that I have verified that i can access the WHS share with the same user account and have full permission on the folders.

David January 9, 2010 at 12:55 pm

Second question I haven’t found an answer (I have googled it alot) about the HP MediaSmart LX195. Can you use a USB 2.0 Hub (assume powered Hub) and if so is their a limit or restrictions on what can be downstream (not on the main 4 USB ports)? I’d like to eventually have the APC battery backup be connected and can see me wanting more than 3 external HDs at sometime.

PS – sorry about the 3 posts I couldn’t find an edit post option and I have been working on the CIFS issue for a few days.

Alex Kuretz January 9, 2010 at 2:08 pm

Hi David, I’ve been storing the bandwidth usage logs on my WHS for over a year now. I store them in the “Guest” share and I’ve enabled the Guest user account which requires no password (enabled for that share only). The Tomato CIFS config requires you to enter a password but I just entered some random characters and it authenticates just fine. It did take about 15 seconds to connect.

Regarding USB hubs, they may work but to the best of my knowledge they are not supported. If you’re storage needs are growing to where you have multiple USB hard drives, I’d strongly suggest you consider upgrading to an EX* model as USB storage is just not very reliable.

David January 9, 2010 at 6:10 pm

Alex – Thanks for the response. I got the CIFS to work and I now know what my mistake was. I still don’t get why it’s limited though. The issue was with the UNC path I was setting.

I wanted: \\WHS-staticIP\Logs\Router

WHS has share: \Logs (Set to have all users and Guest full permission)
I made the “Router” subdir already before asking Tomato to mount.

Tomato doesn’t like mounting to the “Router” Subdir. What I wanted never mounts. It mounts quickly to:

As I already mentioned I don’t get limitation. Share folder’s permission should be inherited to subdirs.

Derek May 30, 2010 at 12:06 pm

Hey David just wanted to say thanks for your help in the comments. I had \\IP\Share\Subdir and couldn’t get it mounted. Weird limitation indeed. Thanks again!

dylan July 17, 2011 at 1:41 am

Its running linux on the router, try mounting like linux with //staticIP:/share/subdir

Comments are closed, visit the forums to continue the discussion.

Previous post:

Next post: