Running dd-wrt on a Linksys wrt1900ACS

Posted on Apr 1, 2018

I supported the promise of an open hardware platform and may soon be able to start using dd-wrt again.

I've used dd-wrt on many Linksys WRT54G routers over the years at work and at home. These blue routers, first released in 2002, became classics and in large part because Linksys allowed the open source community to develop replacement firmware for them. The additional capabilities and enhanced (or at least more up to date) security that dd-wrt provided over stock Linksys firmware extended the life of these little routers well past the point when leaving them stock would have been dangerous, and kept me using their older 802.11g technology for years even as 11n was getting popular.

When an "homage" model was revealed that looked almost exactly like the original wrt54g and held out the additional promise of being "open source ready" I was all in. This Linksys WRT1900ACS may look a lot like my old Linksys routers (at that time Linksys was a division of Cisco) but in 2013 Linksys had been acquired by Belkin so I was pretty dubious about quality. I haven't had any problems with the unit running the stock firmware, though I do miss a lot of features I was used to in dd-wrt.

Amazon has it (shipping from them) currently for $367. You can read reviews of it there which is always fun. I know I paid quite a bit less for it when I got mine and Linksys has the list price as $200, but its not available for sale there. There were cheaper routers to be had for sure but if past experience is any guide, firmware updates for these kinds of devices would stop appearing right around the time a huge exploit for it would appear. Proprietary firmware made it impossible for anyone besides the manufacturer to fix security issues so if they decided to stop publishing updates... An open source firmware helps ensure that updates would keep coming since generally the people motivated enough to fix problems are those affected by them and when fixing a device is possible, there are always some owners willing to do it and share the wealth. I felt the pledge of open source was enough to make up for possible build quality issues.

The Marvell chip

One thing I noticed right away was the that the Linksys was not based on the more popular Broadcom or Qualcomm's Atheros chips, but with a Marvell chip. The Marvell SoC (System on Chip) found in the wrt1900acs is a dual core running at 1.6GHz which puts it at the higher end of many routers on the market at its date of release.

There were a lot of wireless issues with the initial release and right through 2017 and a lot of people pointed to the closed nature of the Marvell drivers as the root of the problem, and perhaps it did take them some time to actually release the drivers as open source but as of Apr, 2018 here is Marvell's public mac80211 github.

OpenWRT

Although an open platform was touted from the initial release of the wrt1900, the announced partnership was with OpenWRT another open firmware project which I had never personally used. The release, in May of 2015, was later marred somewhat as OpenWRT members disagreed about direction of the project and ended up forking it with many developers leaving to form LEDE. Thankfully, disagreements have since been settled and the project is working together again under the official OpenWRT branding as of Jan, 2018. OpenWRT may be back on track, but support from them for the wrt1900 doesn't seem to have moved along very much as their offical support page still warns (as of Apr, 2018) that the project is stalled.

David Simpson took it for a spin back in 2015 and while his apparent success was heartening, my lack of experience with OpenWRT and desire to not brick my expensive new router was enough of a deterrent.

dd-wrt

Once the source is released, its usually not long before you start seeing new projects forked from that code appearing. A forum post appeared on dd-wrt's forums announcing the release of a new build 28374 for this hardware in Nov, 2015 just 6 months after the official release and the last comment (by htismage) on that initial post makes the bold claim that

I honestly feel like for the first time since buying this router 18 months ago, I've finally unlocked it's full potential."

and lists some of the reasons I've always liked dd-wrt as well: the diagnostics, stability, and improved performance. With the added incentive that it didn't even require a full 30-30-30 reset and was upgraded from within the stock GUI!

Still far too soon for me to jump in.

staying up to date on progress

I've been following the development on the dd-wrt forums for Marvell based routers and what follows are my notes.

There were some initial reports about the wifi being unstable and dropping out.

I learned an interesting thing about resetting to stock:

You don't need to "flash" back to stock. You reset the router and reboot it three times to get back to stock.

* This was written up a bit clearer in a later thread:
* Switch off the router with the power switch on the back.
* Power the router back on, and the power light will light.
* As soon as you see the power light go out, switch off the power switch.
* Repeat this 3 times.
* On the 3rd time the router will boot from the other partition.

a quick write up on how to flash dd-wrt on the Linksys is posted in this thread and there are a couple interesting things there including:

once you have dd-wrt on the device if you wish to upgrade to a newer release, make sure to flash the stock firmware first so the second flash doesn't wipe the recovery image. to do this you can use the method I posted above, but a simpler method is to just use the ubootenv command to query which partition you're currently using with ubootenv get boot_part (in this example it returned "1") and then to switch to the other one with ubootenv set boot_part 2 and simply reboot

more on this from a stickied post for the install and upgrade cliff notes: there are two kinds of dd-wrt firmware:

factory to dd-wrt - used to flash dd-wrt from the stock firmware only

dd-wrt webflash - used to upgrade an existing dd-wrt install.

always upgrade via wire (not over wireless)

dd-wrt maintains an ftp site for beta builds organized by year and model if you're really in tune with day to day issues and you know what you want.

In January, 2016 Linksys started touting dd-wrt "3rd party compatibility" with their complete line in an official press release. dd-wrt is a project founded and mostly maintained by one guy, Sebastian Gottschall, a.k.a. "BrainSlayer" and I'm just wondering if Linksys bothered to send him a thank you note first (a fat check would have been nicer). But, for all the hype at CES there wasn't a real release ready to download. Sure there are the betas - but folks like me typically want to see some stable release which is getting hammered on out there for a while.

I soon learned there was another build available by a developer named Kong. Kong's builds were served up from a private domain and not from the dd-wrt site. Kong's approach to builds was slightly different from how the public "beta" releases were handled. Wireless instability in the dd-wrt betas running on the Linksys was blamed by many on Marvell's drivers which were not released very frequently. Kong actively removed code which he saw as buggy or used older code which seemed to work better with the latest Marvell drivers. dd-wrt had to run on lots of different hardware, Kong was only interested in a few specific types of routers and so presumably was willing to take the extra steps needed to make dd-wrt run better on these. A lot of people were using the Kong builds. The question for me was when the codebases could be merged because I was uncomfortable downloading random guy's firmware even if a lot of people were claiming it ran better than the official betas.

Linksys released new official firmware on Jul 21, 2017 with Ver. 2.0.1.182461 (still current as of Apr, 2018)

In Oct, 2017 beta release 30796 was panned as having very bad transfer rates. At that time folks were told to try using 33555 but the bigger news came on Oct 16, 2017 with the krackattack wpa vulnerability. Beta release 33573addressed it on Oct 22. Posts on the official Linksys community page suggest that Linksys had disclosure of the vulnerability in August but that there was and has been no official release (or statement) since that time about the matter. Many other vendors had released patches by the time of public disclosure in October.

Dec, 2017 I saw this about release 33986

I've been running r33986 on my Linksys WRT1900ACS V2 for about a day with no issue. Wireless speeds are good (~500 Mbit/s, as measured with iperf3) and no issues with my OpenVPN client.

although a couple people mentioned ntp not starting till after another reboot

Current Status

As of Mar 26, 2018 build 35531 is the latest. It looks like we're getting pretty close to a an open firmware even a schlep like me can use. Important to note that there are two versions of the model I have v.1 and v.2 (I have v.2). Folks seem to have different experience with dd-wrt between the two versions. I haven't seen too many complaints from v.2 users with one reporting

r35531 works well on my WRT1900ACS V2. OpenVPN client, policy-based routing works well. Wireless speeds ~500Mb/s. Both 2.4GHz and 5GHz are stable. Been up about a day with no reboots.

However, one user reported on Mar 31 that DLNA is still not fixed in this build. I do currently use DLNA with stock firmware and don't want to break it, but I'm getting very close to taking the leap to dd-wrt anyway given the outstanding security issue and no official release.

dd-wrt certainly does seem fairly functional at this point, and while there are still some things which need to be worked out it looks like it might be ready for even a regular old user like me to give it a try.