The Open Source WRT54G Story
November 08, 2005
Linksys gave wireless home network tweakers a gift in its Linux based router. Here's how you can get started with open source firmware upgrades.
The story of the Linksys Wireless-G Router (model WRT54G) and how you can turn a $60 router into a $600 router is a little bit CSI and a little bit Freaks & Geeks. Its also the story of how the open source movement can produce a win-win scenario for both consumers and commercial vendors. Whats especially exciting is that tricking out this router doesnt require any eBay sleuthing or other hunt for some off-the-wall piece of hardware. Instead, grab it off-the-shelf. The WRT54G is stacked high in every Best Buy and Circuit City across the country and, of course, most online retailers Amazon.com sells it for $55. Its ubiquitous and, some would say, a diamond in the rough. Or a wolf in sheeps clothing.
While routers used to be the domain of networking specialists, theyve gone mainstream along with residential broadband. Commodity routers can be had for as little as well, "free after rebate in some cases, and often not much more. To keep them cheap, consumer-grade vendors like Linksys repackage designs from OEM vendors rather than design the hardware and software in-house.
The tradeoff for these sub-$100 routers can be reliability, particularly in the coding of the firmware the software brain that controls the routers functions. Consumer-grade firmware may be buggy, and may be limited in functionality compared to commercial-grade routers designed for business such as those made by Cisco and SonicWall.
In June 2003 some folks on the Linux Kernel Mailing List sniffed around the WRT54G and found that its firmware was based on Linux components. Because Linux is released under the GNU General Public License, or GPL, the terms of the license obliged Linksys to make available the source code to the WRT54G firmware. As most router firmware is proprietary code, vendors have no such obligation. It remains unclear whether Linksys was aware of the WRT54Gs Linux lineage, and its associated source requirements, at the time they released the router. But ultimately, under outside pressure to deliver on their legal obligation under the GPL, Linksys open sourced the WRT54G firmware in July 2003.
With the code in hand, developers learned exactly how to talk to the hardware inside and how to code any features the hardware could support. It has spawning a handful of open source firmware projects for the WRT54G that extend its capabilities, and reliability, far beyond what is expected from a cheap consumer-grade router.
So the Linksys WRT54G can be loaded with replacement firmware with exciting new features. Which raises the question like what?
Of course, you can expect most replacement firmware to support the same basic functions Linksys provides out of the box for this wireless router. Often these features will be more stable, in cases where Linksys bugs have been fixed by other developers. But thats not what makes open source firmware so exciting.
The real deal is what the WRT54G can do, with the right replacement firmware, that youd only expect to find on a commercial-grade router costing several times as much.
You could use the WRT54G as a repeater or a bridge. Create a wireless distribution system (WDS) or a mesh network. Run a VPN server. Or a VoIP server. Or a managed hotspot with a RADIUS server. Manage bandwidth use per protocol. Control traffic shaping. Support IPv6. Boost antenna power. Remotely access router logs. Operate the router as a miniature low-power PC, running a variety of Linux applications.
Thats just the short list. Some firmware offerings support a wide range of these features while others are more tailored to specific router applications. Some sport friendlier configuration interfaces while some are command-line driven. And because these firmware files descend from Linksys open-source progenitor, they are freely available.
The important caveat, of course, is that Linksys will not support alternative firmware, only their own official version. Should you run into a problem with replacement firmware, or wind up disabling your router (which is rare but possible stay tuned), youll be on your own. If you already own a WRT54G and it performs just the way you need it to, mucking around with replacement firmware might just break something that didnt need fixing.
On the other hand, if adding enterprise features to a $60 router sounds worth the minimal risk, you dont need any special hacker skills to get there. If youve already setup an off-the-shelf router before, replacing the WRT54Gs stock firmware with a feature-laden substitute is well within reach.
Choose Your Firmware
Besides Linksys own official firmware, there are more than a dozen varieties of firmware replacements available for the WRT54G. The most popular are named Alchemy and Talisman, released by a company called Sveasoft, and another named DD-WRT, by a guy named BrainSlayer.
Sveasoft was one of the first developers of a WRT54G firmware based on Linksys open source version. Many branches in the firmware family tree, including DD-WRT, are themselves based on Sveasofts early modification. Buffeted by the success and enthusiasm generated by their firmware offerings, Sveasoft chose to build a business model around their subsequent releases. Because of the GPL roots of the original Linksys firmware, Sveasoft cannot prevent distribution of their own modifications. As a workaround, theyve chosen to implement a membership fee of $20 per year to access the Sveasoft community, wherein support and new releases are made available. Some in the open source community object to the wall Sveasoft has built around its free firmware, and take it upon themselves to release Sveasofts work into the public.
Infighting aside, Sveasofts older Alchemy and newer Talisman firmware are popular and widely available. BrainSlayers DD-WRT is free of the Sveasoft culture war, and is itself an extremely powerful and actively maintained firmware.
Numerous other, often more specialized, firmware is also available for the WRT54G. Service provider Earthlink has released its own firmware which supports the future-proof IPv6 protocol (along with IPv4 backward compatibility). Sputnik, a vendor for large scale WiFi business networks, has even released firmware so WRT54G can be used in managing Sputnik-based hotspot deployments. Other online sources for firmware include LinksysInfo and WRT54G.net. But for most of us, the Sveasoft and DD-WRT firmwares are the most feature-rich and easiest to install and configure.
In the two years since Linksys originally released the WRT54G firmware, whether by design or not, this affordable, common router has become not just a playground for hobbyists, but an open platform for commercial business as well.
Flash Your Firmware
Over the years Linksys has released several hardware revisions of the WRT54G, from 1.0 to 5.0 and several point releases in between. What version WRT54G router you have can be determined from its serial number as per charts widely available on the firmware community sites. The serial number is printed on the outside of the box.
The reason this matters is because some versions of firmware work only with some versions of WRT54G. While the newest firmware releases for the major distributions such as Talisman and DD-WRT are compatible with most WRT54G revision, it is important to double check the particular release notes for a firmware version against the WRT54G version. A mismatch, although unlikely, is one way the router could be bricked rendered unusable.
With all that said and done, lets imagine youve decided to try the latest version of DD-WRT currently v23, which supports all current versions of the WRT54G, and its speed-enhanced sibling, the WRT54GS. At the DD-WRT web site youll find three variations of the firmware: mini, standard, and VOIP. The DD-WRT wiki describes what is and is not included with each; suffice it to say, the standard variety is the most popular choice.
WRT54G firmware come a file with the extension .bin. Regardless of which firmware you choose, be it a Sveasoft release, DD-WRT, or any other, ultimately you are going to have in your possession a .bin file which needs to be uploaded in to the router.
Flashing the new firmware is a painless process. If youve ever managed your router before, you know that it is configured through a Web browser open to the routers LAN address by default, this is 192.168.1.1 unless youve changed it. Linksys routers are protected by a login whose default is a blank username with the password admin.
It takes only a few minutes to flash the router with a new firmware, but you must note these key steps.
- Connect your PC with the .bin file to the router via Ethernet cable. Do not try to flash the firmware through a wireless link, which could be unstable and lead to a brick.
- Reset your routers current firmware to factory defaults. You can do this through the current firmwares configuration pages Administration/Factory Defaults/Yes/Save Settings. As an alternative, you can physically reset the factory defaults by pressing and holding the reset button on the back of the router for 30 seconds.
- Now you can flash the new firmware. Connect to the routers configuration pages with your browser, and navigate to Administration/Firmware Upgrade. Open the browse dialog to select your .bin firmware file.
- Once you start the firmware upgrade do nothing! Whistle. Whittle. Have a pint1. Just dont touch your computer or the router. Leave them alone for this intimate moment. Hacker interruptus will only produce a new baby brick.
- After a minute or so youll see the upgrade progress bar complete. The router will now reset itself, and assuming everything worked, youll see a new page with a button marked Continue.
- Wait at least two more minutes before clicking the Continue button. Sometimes the router presents the continue screen before it has truly cleaned up from its upgrade, and youre better safe than sorry. Drink another pint2.
- Now click Continue. You should be forwarded to the main configuration page for your router. In the case of DD-WRT, it looks much like Linksys own page, except with DD-WRT markings and a whole lot more features to explore.
What if you didnt make it this far? What if something terrible has happened, and the router did not come back to life? This is a rare but possible event. It is very unlikely if youve followed steps one through six. Your router may be bricked, which is somewhat like being dead, except with the possibility of resurrection.
First, try to reset the router to factory defaults by pressing and holding the reset button on its rear for 30 seconds. When and if it relights, try to connect to it with your browser. You may be lucky and have a chance to start the process over again. There are several more tricks you can try to revive a bricked router, also known as recovering from a bad flash. In this case, you want to consult the WRT54G Revival Guide.
1 Something non-alcoholic, of course.
2 Try a refreshing mixture of Orangina and a twist of lime.
Your router has a new brain. From here youll want to explore the configuration pages and follow any guides or documentation available for the firmware youve installed. Unless you already know exactly which configuration pages you want to change, your best bet is to first identify your goals with the router. Do you want to use it to setup a WDS? Or configure it as a wireless client to connect a remote wired LAN to a remote wireless AP? There are myriad possible goals.
Explore the user community for your firmware where there may already be detailed guides for configuring the router for the functionality you want, or experienced voices to help you troubleshoot.