February 19, 2019

Tomato Firmware Turns Your Cheap Wireless Router Into a Powerhouse

Turn Your Cheap Wireless Router Into a Powerhouse

  • October 6, 2008
  • By Aaron Weiss

In the annals of computer software with bizarre and seemingly random names, "Tomato" is probably one of the less weird examples as these things go. But whether you say tomay-toe or tomah-toe, this one is neither a fruit nor a vegetable--it is a firmware for wireless routers, including the popular WRT54G family.

Tomato is meant to be flashed onto your compatible wireless router to replace the stock firmware loaded by the vendor. Why do this? Stock firmware usually provides only basic configuration, administration, and management features, and is not always updated often. Alternative firmware like Tomato can effectively "unlock" advanced functionality from your router, giving it the network management capabilities of much more expensive enterprise gear. Using a firmware, such as Tomato, you can increase your router's output power (to potentially improve wireless coverage), create rules to discriminate different kinds of network traffic, and monitor bandwidth.

If you've dabbled with wireless router hacking before, you are probably thinking, hey, Tomato sounds a lot like DD-WRT�the most famous replacement firmware (and which we have covered extensively). In fact, it is a lot like DD-WRT, at least in purpose and function. But, just as some people prefer the Mac over the PC, Tomato has a different flavor than DD-WRT, and that is a taste you might like.

Hardware requirements

Like DD-WRT, the Tomato firmware can be installed on a variety of wireless routers. Tomato supports the Linksys WRT54G family, which also includes the WRT54GS, WRT54GL, and WRTSL54GS. Note that Tomato will not work with WRT54G routers later than version 4, since these do not run Linux. The WRT54GL model is always a safe bet�the "L" stands for Linux!

Besides Linksys routers, Tomato supports many popular Broadcom-based routers from Buffalo and Asus. Check the compatibility list before making a purchase or attempting to flash Tomato on an incompatible router (which could result in a dead router).

Picking the Tomato

Unlike DD-WRT, which is available in numerous versions for different routers and with different feature sets, there is only one primary version of Tomato. There is also one alternate version compiled specifically for the Buffalo WHR-G125 router.

The latest Tomato release is distributed as a 7z file, an open source compression format that you may need to download a supported utility to open.

Inside the archive you will find several .bin files. Each of these is the compiled firmware for the router model specified in the file name. You'll want to identify the .bin file that matches your model router.

You will also find a readme.htm file. I know, I know�readme files are like the yellow traffic lights of computing: permission to ignore. If you want to do this Tomato thing right�and by "right" I mean, not turn your router into a doorstop�you want to read this file.

But don't be scared. Flashing Tomato to most routers is no more difficult than flashing DD-WRT, if you've ever been down that road, and in some cases even easier. There are caveats, though, depending on whether you are flashing to a Linksys, Buffalo, or other brand router; whether you are flashing from stock firmware or DD-WRT; and other considerations.


Flashing firmware to a stock Linksys router.


As a general rule, you'll want to note these basic steps to flashing your wireless router to Tomato:

1. Reset your router to factory defaults. Whether your router is currently running stock firmware or an alternative like DD-WRT, set it back to defaults either through the administration menu (on Linksys, Administration/Factory Defaults), or pressing and holding the recessed reset button on the back for 30 seconds.

2. Connect to your router with a wired connection, via one of its LAN ports. Never flash your router's firmware over a wireless link. Doom awaits!

3. Disable any firewall or wireless adapters on your PC, so that they don't interfere with your wired connection to the router.

4. Be sure to use a modern browser like Firefox, IE6+, Opera 9, or Safari. The Tomato firmware uses lots of fancy modern Javascript, which your browser needs to support.

5. Log in to your router's administration page. For Linksys routers this is usually � other models may vary. Click through to the administration page, which usually has an area for upgrading your firmware. The exact menu names vary by model�for Linksys firmware, it is usually Administration/Firmware Upgrade.

6. Click to choose a firmware upgrade file, and navigate to the correct .bin file for your router model from the Tomato archive.

7. During the upgrade process, leave your computer and the router to mate in peace. You don't want to do anything that might interrupt the flashing and potentially damage your router, so just leave it alone for a couple of minutes. When flashing is complete, the router will reboot and you will need to reconnect your browser to it. Tomato's default address is

When the router reboots with Tomato installed, the default login will be root/admin. Note to users upgrading from DD-WRT V23+, you won't be able to log in to Tomato using these credentials until you perform another hardware reset on the router by pressing the reset button. (All this and more is covered in the handy readme file you were encouraged to read earlier.) Users with Buffalo-brand routers must consult the readme file, because there may be extra steps needed, particularly if you are flashing from Buffalo stock firmware.

Most Popular LinuxPlanet Stories