It’s a question asked in the DD-WRT forums all the time. It’s a question often asked in the comments of my DD-WRT posts. And it’s a question to which no “official” answer from the primary maintainers of DD-WRT exists… and therefore it will probably keep getting asked. However, based on my experiences, I’ll take my best stab at explaining the differences between the various popular builds of DD-WRT, particularly those released by BrainSlayer, Eko, Fractal, and Kong — and finish with an explanation of why you really should ignore the Router Database on the DD-WRT website. I welcome updated and corrected information in the comments, and I’ll incorporate it into the post.
First, let’s start with BrainSlayer. His real name is Sebastian Gottschall, and he’s the founder and primary maintainer of the DD-WRT project. As such, BrainSlayer gets the final say regarding what bits are included in the “official” stable release versions. However, the last stable release, known as Version 24 Service Pack 1 (or more commonly seen as v24 SP1) came out way back in July 2008. Since then, the WiFi technology landscape has changed massively, there’s been flurry of development activity in the third-party open source router firmware space, and literally hundreds of new router models have come on the market. That means that BrainSlayer’s goal of creating and packaging “one firmware to
rule
support them all” is a major challenge.
BrainSlayer actively contributes to the DD-WRT source code, and tracks all source code development with the Trac SVN system (you can view the timeline of that development here). Every new code changeset that gets committed to the system is automatically assigned a changeset number (for an example, click here to see what changeset 22212 looks like). Because it’s an open source project, anyone is welcome to download any version of the DD-WRT source code from the SVN and compile their own binary firmware file.
Which brings us to the difference between “source code” and “build.” Most open source projects have a central repository where the source code is managed, and developers make changes to that source code based on feature requests and bug reports from users. Source code is generally hardware “agnostic” — meaning it’s not targeted specifically to one particular hardware platform. Take the open source browser Firefox as a well-known example. Even though the Windows, Mac, and Linux versions of Firefox all share the same central source code, you can’t run the Windows version of Firefox on Mac or Linux, or the Mac version on Windows or Linux, or the Linux version on Windows or Mac. That’s because source code needs to be compiled (or built) for a specific hardware platform before it can be used on that platform. DD-WRT is no different. Even though they may share the same source code, a DD-WRT firmware file that was compiled specifically for a Linksys router won’t run on a Netgear or Belkin router (and in fact, might break it).
When BrainSlayer himself builds a set of binaries (based on one of the changesets in the source code), that’s called a BrainSlayer build. BrainSlayer builds do not happen often, and are only available on the DD-WRT website. Final “stable” builds (like the one from July 2008) are always BrainSlayer builds. “Official” development releases (listed on the front page of the DD-WRT website) are also BrainSlayer builds. BrainSlayer’s development builds tend to focus on supporting only the most recent router hardware. As such, most of the BrainSlayer “development” releases are generally not compatible with router hardware that may be only 1-2 years old. And the “stable” releases are so old (again, 2008!) that you’re missing out on a massive amount of features by running them… which is why other contributors’ builds are popular among open source firmware users.
If you examine the SVN timeline, you’ll see that BrainSlayer isn’t the only person committing changesets to the project. On the DD-WRT About Page, he lists a number of other contributors to the project, including Ales Majdic — better known in DD-WRT circles as Eko. Eko also contributes bug fixes and new features to the DD-WRT source code, but is best known for creating builds (also called “rolling”) that incorporate older drivers for some of the older hardware (referred to as “VINT” for “vintage”). Eko also tends to remove some newer packages from the source that won’t compile properly for older router hardware. Eko’s builds can generally be found on the DD-WRT website.
Another popular builder is Kong. Like Eko, Kong rolls his builds based on the central DD-WRT source code, and then makes tweaks to allow it to compile on certain types of hardware. Kong’s builds tend to focus on getting as many features and drivers working on various router hardware, even if that means patching some of the drivers with versions that are even newer than the ones used in the official source. Kong’s builds are considered pretty “bleeding edge,” but still have a large following for early adopters, as they provide a good balance between cramming as many features as possible into the firmware while still focusing on stability. Kong’s builds can be found here.
Fractal builds (which are the ones I generally prefer) are also based on the central DD-WRT source code, but are focused on compatibility with Broadcom-based hardware, such as the widely popular Cisco/Linksys WiFi routers. In addition, Fractal also focuses on rolling a large number of “trailed” builds, which are built specifically for one model of router, which allows them to be flashed directly from the stock firmware. Fractal’s builds can be found here.
So, which build is right for you? That’s not an easy answer to provide, because what’s “right” is different for everyone. If you’re a Linksys or Broadcom user, you’re probably going to be happiest with a Fractal or Kong build. If you insist on an “official” build, even if that means you’re missing out on features, then go for a BrainSlayer “stable” build. The best general advice I can give you when choosing the right build for you is the start with the DD-WRT wiki entry for your specific router model. It will (usually) contain up-to-date information regarding where you should at least start. Where you shouldn’t go, however, is the “official” DD-WRT router database. It’s ridiculously outdated (which is a problem known to the DD-WRT developers), and probably won’t be improved until the next official stable release comes out (again, the last one was 2008). Users of routers with Broadcom internals are strongly encouraged to read what is referred to as the Peacock Thread before proceeding with any DD-WRT install. That tread includes the following:
DON’T USE THE ROUTER DATABASE! The router database has recommended some less stable builds, including SP1 and 13064 (10/10/09) build. I suggest using the builds that are recommended here or in Redhawk’s announcement above, rather than the ones in the router database. SP1 is full of bugs, and while 13064 is not nearly as bad, some are reporting connection issues fairly regularly. Sometimes the router database also has had the wrong build type. The router database is being worked on improve the recommendations but it still contains errors and bad builds. Do not skip over reading the install wiki for your router just because you got the files from the router database. You need to KNOW what to do with those files. The wiki usually has the right builds for particular routers. READ THE WIKI!
If you use a Linksys E4200 v1 router, I maintain a separate blog post that always includes my recommended build for that router (since that’s the one I use in a number of different locations). As long as I use that router and DD-WRT, that post will stay updated with the build I think works best.
To sum up, the bottom line is that all the builds, whether BrainSlayer, Eko, Fractal, or Kong, share the same central code from the official DD-WRT source. Those builders will pick a changeset number and create a build (whose build number matches the changeset on which it’s based), and then compile the source for the specific hardware models in which they specialize… in some cases removing some stuff for compatibility or adding some stuff for the early adopters. Development versions of open source firmware (which all of these builds are) are different than what are considered “stable” or “release” versions. And one of the differences is that it requires a bit of work to inform oneself as to what will work best for you. If you’re not willing to put in that work, you’re better off just keeping the stock firmware that came with your router. But if you’re willing to read the DD-WRT wiki, browser through and participate in the forums, and seek out blog posts like this one, you’ll be rewarded with the ability to squeeze the maximum performance out of your router hardware.
I welcome your comments and feedback below. I also welcome corrections, especially from any of the individuals mentioned in this post (I always prefer to get official information direct from the source). Please be aware that I don’t offer DD-WRT support, and I can’t answer questions such as “I have XYZ router – what build should I be running?) Your best source of specific information about DD-WRT is always the DD-WRT forums.
Related posts:
My Cisco Linksys E4200 DD-WRT Settings for Max Speed
Building Postfix 2.10 on RHEL5 / CentOS 5 from Source
Bricked WRT54G with Blinking Power Light. Hard reset? TFTP? Nope – New Power Adapter.