I recently retired an old wireless router that seemed to be flaking out from time to time. Since it still worked, I thought I'd check to see if one of the linux based router distributions would work with my old wireless router, an Asus WL-500G.
My search led me to dd-wrt. Dd-wrt is a linux based router firmware that was originally founded way back in 2004 by Sebastian Gottschall. From what I can gather, Sebastian originally wrote the first version of dd-wrt as a modification of Linksys firmware for supporting Radius authentication. Somewhere along the way, Sebastian teamed up with a company called NewMedia-NET GmbH and development continued to expand the number of routers on which the dd-wrt firmware would work.
The latest version, 2.4.x is still available for free from dd-wrt's site. And development seems to be going strong.
Since I felt like tinkering with dd-wrt firmware, and the website stated that my particular wireless router was supported, I decided to soldier on and see how difficult it would be.
The result? Not difficult at all, and moreover, my venerable Asus wl-500G came out with more functionality and a better looking management interface than it ever had during its original incarnation.
I won't bore you with a lengthy how-to, since the dd-wrt site already has plenty of helpful documentation and what appears to be a thriving community of users and developers. Instead, I'll merely give you my overall impression as well as some tips and pointers I found useful.
Perhaps the most useful resource by far is the so-called "Peacock thread" which can be found in the dd-wrt forums at http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486. This thread really is worth reading all the way through, as it covers most of the pitfalls you may encounter during installation of dd-wrt.
Another useful resource is the Router-database, where you can check to see if your (wireless) router is supported and, if so, by which versions of dd-wrt.
Which brings me to what is perhaps the single most daunting obstacle to successfully installing dd-wrt: The sheer volume of different versions and builds of the software that are available. This is only natural, given that there are a large number of disparate pieces of hardware that dd-wrt has to run on. In addition, there are a number of different versions of dd-wrt that can be installed, all of which have slightly different features. There is a micro version, a standard version, a VPN version, a VoIP version and even a NOAIK version (which is smaller due to NOT supporting a specific routing feature peculiar to the Xbox).
My own experience was really very straightforward and the only problems I encountered were strictly down to me not completely RTFM. My Asus had to be flashed with an initial dd-wrt firmware file. This had to be accomplished using ASUS's own Recovery utility (yes, you could also use tftp, but to save on a lot of swearing, I recommend using the Asus tool), which is uploaded to the router after which one of the dd-wrt distributions can then be uploaded to the router. Really, that's all there is to it. In my case, I mistakenly put on a standard dd-wrt image and not one of the "VINT" images. Unfortunately, my router is so old (version 1) that the wireless hardware inside cannot handle the newer dd-wrt versions. For these very old pieces of hardware, dd-wrt puts out a version labelled "VINT" (for vintage) which contains older wifi drivers that can operate the radio in older models, like my Asus.
This meant that I went through a few different distributions before finally realizing I had to use a "VINT" version. Indeed, everything was working beautifully with all of the versions except the actual wireless functionality. Once I installed the VINT, wireless too worked like a charm. So my one big tip is make sure you check if you need a "VINT" distribution or are able to use the "regular" distributions. You can do this by entering the command "nvram get wl0_corerev" on your router with dd-wrt installed. If the answer is 4 or less, then you need to use the "VINT" distributions.
And my switching distro's showed me something else: Once you have gone through the initial steps of actually getting DD-WRT installed on your router, it is trivial to switch versions of the dd-wrt software. This is accomplished through dd-wrt's own web-based management interface and is as easy as selecting a version to upload, uploading it, and then rebooting the router.
All in all, I think this is a fantastic thing to tinker with. Not only that but dd-wrt enables you to breathe new life in hardware you may have lying around unused in some dusty cabinet somewhere. The web interface is polished, comprehensive and clean and the sheer number of configurable options is really breathtaking. Everything from wan to lan to access control to additional services are configurable and at your disposal.
Tux lives.