Oh The Huge Manatee

A blog about technology, open source, and the web... from someone who works with all three.

DD-WRT, Versioning, and the Linksys WRT54G Wireless Router

I have had all sorts of trouble with the wireless situation in my apartment.  The layout of the place is such that the kitchen sits in between the two major rooms (living room and bedroom), and I swear those kitchen walls must be made of lead.  No wireless signal seems to get through.  I have phone jacks for ADSL in the living room and bedroom, nothing in between.

So I hooked up my Orange Livebox (with wifi) in one room, and my Linksys WRT54G (v.4) in the other, to act as a repeated wifi network.  I was already using the badass DD-WRT firmware so I could use the Linksys router as a wifi adapter for my wired desktop (in serious terms, it was acting as a network bridge to a wired LAN, to which my desktop was connected).  This effectively made my Linksys router into a repeater bridge, which is a pretty awesome piece of functionality for an 8 year old, $45 router.  

Except it didn’t work properly.  I would get dropped packets, slowdown over long periods of uptime, and even skype wasn’t reliable over the connection.  It got to the point where I would make sure I was sitting beside the “good” router to make Skype calls (an important part of my day job).  

So I turned off the linksys for awhile, and tried working with just the Orange Livebox as my wifi router.  I still had the same problems - it turned out that the bad router was NOT the hacked one!  So I tried it the other way around: I disabled wifi on my Livebox, and set up the Linksys as a simple wireless router.

This was definitely better - it turned out that just the Linksys, when placed correctly, CAN get a decent wireless signal to the entire apartment.  (In a few days I’m going to try modding the antennas to be more directional to see if that helps).  But I still got connection drops!  

At least now it was a more regular pattern.  Skype would be fine, but I would get about 1 second dropouts in audio every 30 seconds or so.  Looking at my Skype “advanced call quality” window, I could see that Jitter was high, so I identified that as a possible culprit.  I also noted that the connection quality was listed as “Local: Good; Remote: Bad.”

Here is where I get on my soapbox.  I CAN’T STAND “simplified,” “user-friendly” summaries that don’t offer more information.  Remote: Bad.  OK, I know there’s a problem with the remote network.  But I was connected through two layers of firewall, through two layers of private IP - my wireless network, on the 10.10.10.x subnet, and my Orangebox LAN, on the 192.168.1.x subnet.  Were both those subnets considered “Local”?  Was it possible that the remote connection at fault was between Linksys and Livebox?  Or is Remote: Bad because I’m conferencing with colleagues across the US, Canada, Cambodia, Australia, Slovakia, and Paris?  I’m happy that Skype wants to simplify my troubleshooting, but “Remote: Bad” has to give more detail to be useful.

Determined to fix the problem, I tried a ping test to my router.  I found about a 2% packet loss, happening in chunks every 30 seconds or so.  

So I checked out the dd-wrt website.  My router firmware was current, according to the page for my model in the Router Database linked from their front page.  In this case, the database recommends firmware revision 13064, 10/10/09.  So I started to browse the forums.  Right off the bat, I was guided to a couple of sticky posts at the top: the peacock thread and the firmware recommendation thread.  They both indicated:
“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.”

“The Database may recommend bad builds and you should look [in this forum post] for recommended builds that have proven to be stable from actual user testing.”
In other words: the router database is full of known bad information, use the recommendations in the forums instead.  Sometimes “recommended” builds even BRICK routers!  In my case, the recommended firmware was known to cause connection issues, including dropped packets and disconnects.

Maybe I’m being old-fashioned, but I think this is a really bad way to run an open source project website.  It’s great to have a convenient, easy-to-use router database linked on the front page.  Firmware decisions are difficult for most people, so this is a fantastic tool… if it’s properly maintained.   If it isn’t, it’s just a very attractive, easy-to-use tool to tear your hair out.

Imagine if Ubuntu’s apt repositories recommended packages that were known-incompatible with your hardware.  Ubuntu would correct the system IMMEDIATELY, or bring it offline until they could.  This was a major concern when distros started working with centralized package repositories, and open source organizations put a lot of effort into keeping these “recommended software” databases functional for 99% of users with every update.  Hell, Redhat’s CentOS is so conservative about updates, some common packages are YEARS behind!

The lesson here, is that a software recommendation database has to recommend WORKING software to be useful.  And the DD-WRT firmware database is not.  This makes it worse than useless - it makes it misleading, and potentially damaging to your hardware.

I’m not a complete dick though - I understand.  It’s clear the DD-WRT team put a lot of effort into their recommendation database.  With a few updates to the back end to simplify the process of keeping it up to date, maybe their volunteers would have an easier time of it.  As I said, it’s a fantastic tool.  There’s no need to abandon it…. just a few more tweaks or another round of updates and it could be perfect!

But while they organize these tweaks or updates, the DD-WRT team should put up a prominent disclaimer.  It’s not complicated to add a line to the front page, right below the firmware recommendation link.  Just one line that says “This information may not be current.  Please check the forum before selecting your firmware!”  If you put the line on the recommendation page template, you can go even further and actually link to the forum page for the user’s model.  There are seven chipset families supported by DD-WRT - that’s only seven URL possibilities to deal with.  Give the users a chance to find the correct information before they brick their routers or give up on open source firmware entirely.

Apparently the DD-WRT wiki has more up to date information per router model.  You could just as easily link there instead of the router database.  Or connect the two, so the router database shows you the wiki page for your model along with the summary information.  There are lots of technical solutions we could implement here, but the bottom line is, WARN YOUR USERS if the information in your software recommendation database is out of date, apocryphal, or inaccurate.

Oh, and for my Linksys WRT54G v.4?  The appropriate firmware to use is linked from the (sticky) Broadcom recommendations forum post: Brainslayer build 14929 .  This is only a best firmware for my specific model, though - if you have another Broadcom-based router, or even another WRT54G model, read that forum post.  It will help you pick the right firmware for your router, unlike the router recommendation database and this blog post.

Yet another evening lost to cursing at computers.