Switch from DD-WRT to OpenWrt in under 30 minutes

TP-link-wdr3600.jpg

DD-WRT is a really nice way to free your router. It has a polished web interface, gives you far greater control than most proprietary firmware, and is supported on a large number of devices. I would still recommend it for people who want to take a step up to some more advanced networking, and want a sleek web GUI front-end to do so.

Having said that, I just switched to OpenWrt, and love it!

This post explains why I switched, and how to do it.

Why OpenWrt?

So what is OpenWrt and why did I even try it if DD-WRT is so good? OpenWrt, like DD-WRT, is a free (libre) GNU/Linux distribution for routers. Both DD-WRT and OpenWrt have free software licences, and even share some of the same code. The major difference between the two is the approach to building a working system:

  • DD-WRT comes with as many features as possible installed by default. It is a complete “cathedral”, and hopes to be everything you would ever want or need.
  • OpenWrt is more like a bazaar: by default it comes with commonly required modules, and you can add any extras you want through an easy package manager. By choosing the bits that best suit your usage case, you can build your own cathedral!

Just to reassure you that it doesn’t require tons of effort: when I first booted OpenWrt it had everything I needed to get connected to my modem, use wifi, a nice web interface etc. The kind of things you may like to add “from the bazaar” are printer/scanner servers, adblockers, and other extras.

Easy Package Management

While it’s possible to add extra features to DD-WRT by using an external USB flash drive mounted on /opt (packages installed here are sometimes called “optware”), some packages expect to be installed in root and will kick up a fuss. It’s also an absolute PITA to set up.

In contrast, OpenWrt is built around easily adding modules. You should have a small amount of memory free for packages to begin with; even if you don’t, moving your entire installation to a USB stick is really easy, and gives you oodles of space to install all kinds of interesting packages.

Friendly Forum

DD-WRT has a forum, but in my experience it isn’t all that friendly for new users. The OpenWrt forum is a great place to get friendly answers and useful information.

Better Wiki

Much of the DD-WRT wiki is out of date, bloated and confusing for new users. Just reading and understanding all the recommended articles before installing for the first time takes a couple of hours. If you are not using Broadcom based hardware (my router has an Atheros chip), then much of this stuff is not relevant.

In contrast, OpenWrt has very good documentation that is up to date. Installation instructions are simple and to the point.

The Switcheroo

Here’s how to switch from DD-WRT to OpenWrt, the easy GUI way. It involves reverting to your manufacturer firmware, and then flashing OpenWrt from there. Be aware that there are a couple of other methods that would enable you to switch straight from DD-WRT to OpenWrt, but they require familiarity with the command line and I’m not going to cover them here.

Step 1: Download everything you need

This is kind of obvious, but important. You won’t have internet access during the process, and you don’t want the hassle of setting up the manufacturer firmware in-between DD-WRT and OpenWrt just to download OpenWrt.

  • Download the web revert file that will get you back to your manufacturer firmware from DD-WRT, from this thread on the DD-WRT forum (Note: you must be a member of the forum and logged in to see the files).
  • Download the correct version of OpenWrt by looking up your device on this table of hardware, and follow the links until you get a page like this. Download the recommended release (you want the factory version, not the sysupgrade.bin).
  • Optional: download the wiki pages for your device for offline viewing, just in case you need to check them during the process.

Step 2: Revert from DD-WRT to your factory firmware

Connect your computer to the router with an ethernet cable. Log in to your DD-WRT admin page (http://192.168.1.1) and then upload the webrevert file you downloaded earlier. Wait for your router to flash the firmware and reboot itself.

Note that your admin page may change to http://192.168.0.1 or another address, so refreshing the web admin page after an upgrade may give you an error! Don’t panic!

Step 3: Flash OpenWrt

Now, find the firmware upgrade page on the web interface for your factory firmware, and flash the OpenWrt factory.bin file that you downloaded earlier.

When you reboot, visit the web GUI (LuCI) at http://192.168.1.1. The first time you visit this page you’ll be asked to set the root password. Once you have done this you can enable wireless (it is disabled by default so that only someone with physical access can set the root password). Now, set the connection settings for your modem, and customise any settings you had before, e.g. port forwarding.

Anddd… you’re done! It’s that simple.

Type: 

Comments

Well I managed to flash the 703 with the correct revert package but after reboot
I just cant get thru to flash the openwrt package,

192.168.1.1 just doesnt work on a browser or on telnet or ssh
network unreachable.

Interestingly we get a good SSID Broadcast.

Looks like just 'another brick in the wall'

Any help please?

Hi,

Assuming you mean the TL-WR703 router then this page on the openwrt wiki suggests that 192.168.1.1 is the correct IP address.

How are you connected to it at the moment? You could try using a wired connection, it's possible that it won't let you log in for the first time wirelessly because it wants to restrict the ability to set the password etc. to people with physical access to the router.

Sam

Concerning default router IP...It seems that some Openwrt FW do not use 192.168.1.1 as default but the same as the stock FW. Fortunatly the DHCP server is available on Lan side of the router. So in order to access the Luci webui, just check out what kind of IP your computer received, espcecialy the Gateway...This is the IP of your router... Just call it within your web browser then you will access the webui

Hey! I don't really know what went wrong.. I did what I was supposed to do and the installation went fine. But after it completed it froze, I waited at least maybe 15 minutes so I had to manually reboot it. It boots just fine and I am online through cable but I can't reach the router on 192.168.1.1 and it is the correct ip. I can connect to the failsafe mode but then what? Any ideas? :/

Hi,

Just to be clear, which stage are you at? You successfully flashed the revert file to get you back to the stock firmware, and you had the problem when flashing OpenWrt from stock?

What exactly do you mean you are online through cable? Do you mean you are connecting to the router with an Ethernet cable? "Online" suggests internet access.

It's best to make sure it has definitely bricked before you try fiddling with failsafe etc. Can you connect with telnet or SSH with an Ethernet cable connected?

Sam

Yes I successfully reverted to stock and got stuck when openwrt was completed.

I am connected with a ethernet cable and I have Internet access but I can't reach the router through browser.

I can connect with both telnet and ssh but don't know where to go from there..

Is there a way to reflash the openwrt from telnet or ssh or maybe bootable USB stick?

Or any other way?

Doesn't sound like it's "bricked", perhaps there's just a problem with the admin gui? Could be that it's not installed properly. Try connecting with SSH and then do:

opkg update
opkg install luci

Or something similar. I'm not at home right now so I can't check the commands, sorry!

Sam

Okey well I tried it and rebooted both router and laptop but it didn't help..

If I have Internet access it can't be that bad, right? :)

Thing is, I'm surprised you have internet access, I had to put in my ISP's connection settings in the admin GUI before I could connect! Doesn't make sense to me.

Well I don't really have to do that with my fiber connection :)
But it's working fine now after I reflashed in failsafe mode via telnet :D
Thanks for an awesome site btw!

root@OpenWrt:/# cd /tmp
root@OpenWrt:/tmp# wget http://downloads.openwrt.org/attitude_adjustment/12.09/a
r71xx/generic/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin
Connecting to downloads.openwrt.org (78.24.191.177:80)
openwrt-ar71xx-gener 100% |*******************************| 7936k 0:00:00 ETA
root@OpenWrt:/tmp# mtd write openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware
Unlocking firmware ...

Writing from openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin to firmware ...
root@OpenWrt:/tmp# reboot

Brilliant! I'll have to remember that one, I didn't know about failsafe until you mentioned it.

Thanks for commenting and letting me know how you fixed the problem!

Sam

It should be noted that if you have trouble connecting after you downgrade from dd-wrt to the official firmware that you may need to reset to defaults by pressing and holding the reset button on the back of your router for 10 seconds. I tried this with a TP-LINK 1043ND that had had its IP changed from the default, and it needed the hard reset.

That's a fair point, and a very cool site! Is performance a big factor for you? Personally, i'd rather have greater firmware choice than a bit of extra speed. Mine's a TP-Link WDR3600 and it's very capable of doing what I need it to!

Thanks for commenting!

Sam

Yes I do care about performance a lot. The main thing is that if I am paying for 80Mbits then that's what I want to get. I saw a 30% performance increase when I changed my ISP's "free" wifi router for a very good wifi router. Even the internet connection, shouldn't have been limited by the router, saw a 10% speed increase. Ping times also went down. A lot of people also use their wifi router as they main "switch" which means that a low grade router will struggle to switch data at proper gigabit speeds as that requires a decent CPU.

Fair enough! I'm not saying I don't care about performance, just that for me it isn't a massive issue, and my router (which appears quite low down in the performance table you linked) is good enough for my needs. I live in a flat so I'm normally quite close to the router, which means I get pretty good speeds even on wifi. With a wired connection, I was getting 76Mb/s when I tested it so I don't think my the router's specs are holding me back.

The main reason I ditched my ISP's router was that I didnt' trust its proprietary firmware and wanted something I could look "under the bonnet" of... the performance increase was just a nice bonus. I wonder why ISPs even give out such terrible routers with high speed internet packages? It seems self-defeating.

And I would like to know if you have any ideas why that is. I installed DD-WRT on my new TL-WR1043ND V2, but the DD-WRT version for this router has problems and VPN isn't functional, so I'm trying to switch to OpenWRT. (I installed OpenWRT to this router first then switched to DD-WRT because I'm dumb and lazy, but I've changed and now I want it back)
My problem: Web flashing DD-WRT to my router's webrevert doesn't work. It claims to work, that flashing is successful, but when the page reloads it is still DD-WRT. So that's still the step I'm on, I can't get back to the stock firmware. Are you familiar with this problem, or do you have an idea what's wrong? I don't think it's a full ROM problem since that's 8MB and usually that'll just return a page cannot be displayed error. Maybe a telnet or whatever flash instead can get through, I don't have telnet knowledge though.

TP-Link WR1043ND V2 router, unstable DD-WRT firmware version for this router, and intent to upgrade to openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-factory.bin

Hmm, that's odd. Did you mean this or was it a typo:

Web flashing DD-WRT to my router's webrevert doesn't work.

You should be flashing the web revert file, not the DD-WRT firmware!

Sam

Hey, I know this is quite old but if you're still having that problem, try a 30/30/30. What this is:
Hold the reset button for 30 seconds while the router is plugged into power, then unplug power while still holding the reset button fom 30 seconds, then while still holding the reset, plug the power back in and hold the reset another 30 seconds. So in total you're holding the reset for 90 seconds. This procedure should clear all RAM storages in the device. Hope this helped.

ps. good post, considering switching because the newer dd-wrt builds are pushing down the performance to much for my liking.

Thanks a lot Sam for your great effort and your clean advice in this article, the thing that brought me here was my search for a method to achieve one goal which is a pop up or auto open website when when anyone connect to router, my search lead me to know about captive portal then dd-wrt and after it openwrt, when I tried to pick one to start with I found my self in here reading your helpful article, but I'm still wondering about achieving my goal from using openwrt, Its not a simple redirect what I want because there's no simple redirect for https websites, and I host the webpage I want to open on a local server its not a hotspot page, what do you suggest for me in this case if you have knowledge about it Sam and thanks in advance.

I don't know of any way to redirect HTTPS traffic (this would essentially be a MITM attack if you managed it). Recently on Slashdot there was an article about one router manufacturer injecting adverts into HTTP pages using JavaScript, and the general consensus was "this is just one more reason to use HTTPS", since it prevents that from happening.

I hope you find a way to do what you wanted!

Sam

Thank you for your quick respond Sam, as you may know there's a way with hotspot on mikrotik routers with a free certificate or so to redirect the https requests, the browser only tells its not safe and giving the surfer an option if he wants to proceed, I do not want that method because I don't need the hotspot thing for my clients, and the squid proxy in mikrotik can redirect port 80 to whatever, a notice for expired users for example, so I may use the openwrt for another cool things and have to continue digging the net for a method to my purpose like what apple devices do when it connects to a router have no internet access and open a pseudo browser of a page the router send to it, many thanks bro for all your efforts in your website, I already got a lot benefit and will do from it.

Dhiaa

Hi,

Thanks for your article.

I've decided I disagree about the cathedral vs. bazaar nature of OpenWRT vs. dd-wrt. I tend to think of OpenWRT as an open, not closed, cathedral and dd-wrt as a bazaar, based on their forum/bulletin boards and development models.

dd-wrt, which I've used extensively, is a rough-and-tumble community. Its boards can be n00b unfriendly, not tolerating those seen as fools well. Its website tends to be stale and its wiki and documentation often contain outdated information. Not all (not many?) pages have up-to-date info to supersede the outdated. OTOH, OpenWRT does seem a more friendly, welcoming and, frankly, helpful community. Their wiki and web pages are generally in good shape, getting updated more-or-less regularly.

When it comes to development model, dd-wrt may be more difficult to patch or have patches accepted, and such a pattern is typically attributed to "the cathedral." However, dd-wrt is a rolling "beta" release which is far more in keeping with the free-wheeling bazaar. You download your firmware and you takes your chances! OpenWRT's release model is more cathedral-like -- though open -- with roughly annual major official versions.

Just my 2 cents. And thanks again :)

Clemmitt

So rather than upgrade, this is more like a downgrade I still don't understand why I would want to replace dd-wrt for openwrt. I actually prefer the cathedral approach when applied to routers. A router isn't a fridge, you are actually suppose to have immense super powers at your finger tips to begin with. Otherwise there is no point in toying around with firmware. Think about this, why do mega corporations spend billions on commercial routers and firewalls? Because they have advanced features to boot otherwise you risk your security on a pipe dream. I took an intro to CCNA once, what I walked away with is that the stuff they sell consumers is literally crap compared to what corporations use. For one thing corporate routers don't even have an interface, you must utilize the command line in order to instruct how the router should behave. All these Linksys, Netgear, D-Link consumer products are a fat ass joke. However the fact of the matter is the consumer domain doesn't require the kind of magical stuff you would have in corporate hardware, there's like a thousand things this hardware does that fall outside of what home users would actually need. Now open firmware is nice it gives you some more needed freedom but it isn't a replacement for a thousand dollar router it's just better than crap that comes as default on the consumer routers. Mostly it's just about adding some needed features.

I followed all of these instructions. It installed but I can't access the 192.168.1.1 or I can't get internet access to work via ssh. I really am worried that I messed up my router and upset because DDwrt was working great. I thought this would honestly be easy but by following the instructions. I have messed up everything!! Really upset now! someone please help me.. I have a tp link 1043nd v2

Add new comment