One of the key differences between DD-WRT and OpenWrt is the presentation of options to the end-user. DD-WRT provides multiple monolithic builds, not only for different hardware configurations but also with different usage profiles and different feature sets. (OpenVPN, for instance, is only available in a few builds of DD-WRT.)
OpenWrt too is delivered in different builds based on the architecture of the device for which it's being used, but that's where the similarities end. In contrast to DD-WRT, the actual contents of the OpenWrt build -- the supported features, the available drivers -- are configurable from within OpenWrt itself. Changing or upgrading those features doesn't require replacing the entire system image.
Finding a suitable router and build
The first step to take if you want to make use of DD-WRT or OpenWrt is to find a router that supports them. In the abstract, this isn't terribly difficult. The DD-WRT site contains a list of supported devices that's updated regularly, and OpenWrt keeps an equally detailed Table of Hardware. There, you can browse by hardware platform rather than manufacturer --for example, if you want to obtain a generic x86 build of OpenWrt and use that on your own hardware. In either case, you can see if routers from a particular manufacturer are supported and go with that.
My manufacturer of choice is Buffalo, and my current DD-WRT router is the WHR-HP-G300N, most recently given a DD-WRT update by Buffalo itself back in May 2011. Belkin, D-Link, Netgear, and Linksys also have DD-WRT routers in their lineup, as do a slew of smaller manufacturers, including Accton, Gateworks, and Rosewill. The Atheros routers made by Qualcomm also use a derivative of OpenWrt.
The next step is to pick a specific model of router. With OpenWrt, again, one can either browse by router model or by chip set. Beyond that, most of choices involve the specific hardware features you want supported, but not all routers that can run OpenWrt can support the full gamut of the firmware's functions. Hardware VLANs, for instance: Many routers support it, but some don't. If you plan on using hardware VLANs to perform accelerated tagging or similar functions, you'll need a router that supports it natively. (Software VLANs are always possible, though.)
DD-WRT routers fall into roughly two camps, based on the chip sets they use:
- Routers built with the Broadcom chip set can use a slightly wider variety of DD-WRT builds (more on this below).
- Routers with the Atheros and Ralink chip sets use builds that are made specifically for the router model. For example, my Buffalo router is built on Atheros and needs a build made specifically for it by Buffalo. However, with a little work you can replace Buffalo's official build with an unbranded DD-WRT build.
Broadcom routers use two different flavors of DD-WRT depending on their make:
- The "normal" build, also referred to in DD-WRT's documentation as NEWD. This is the one to use for recently manufactured routers.
- The VINT build, which uses an older wireless driver designed for earlier revisions of the Broadcom chip set -- specifically, the 4710 and 4712 CPUs.
I mentioned before how DD-WRT comes in a number of different "sizes," with various features included or omitted. The smaller builds allow routers with less flash memory to use DD-WRT, albeit at a loss of functionality. The "micro" build, for instance, is designed to fit in a 2MB flash space and thus omits IPv6, OpenVPN, and the firewall. The "standard" build, which includes the vast majority of features, requires 4MB. The "mega" build, which includes everything plus the kitchen sink, requires 8MB.
If you're in doubt about which build to flash, check the supported device list in DD-WRT's wiki. Each entry in the list contains instructions on how to flash and which firmware build to use.