DD-WRT on the Asus RT-N66U – with 64K CFE
UPDATE March 11 2014: I recently updated to the latest K3.x build (23598). I can confirm the following:
- It is not necessary to upgrade your CFE if you intend to use a K3.x build.
- USB & MMC support is now working.
- It is possible to install Optware following these instructions: Optware The Right Way – Take 2
- Enabling QoS results in reboots every few minutes, or more regularly if under load.
- Apart form QoS issue above, it seems stable.
UPDATE Jun 10 2013: It would seem that Asus have released a new hardware variant of this model (B2) which is not compatible with this guide. Before you do anything you must check that you have an original hardware version. You have been warned.
UPDATE Nov 20 2013: Since writing this guide, the DD-WRT builds available have improved significantly and as such, the process of flashing them is probably a lot simpler. I am still running build 20363 which I originally flashed, when I have time I will try the new builds. When I have done so I will update this guide accordingly, however until that time you should probably not use the guide below and instead refer to the DD-WRT forums (linked below).
For those who don’t know, DD-WRT is an open source, community maintained router firmware which can turn a consumer router into something any sysadmin would be proud of. I personally love it for the hundreds of features, easy to use UI and active community. From the first time I used it, DD-WRT compatibility has been a prerequisite for any new router purchase.
Check out the features here: What is DD-WRT?
From experience, flashing DD-WRT on a router can be challenging and has been known to result in an expensive paperweight or two so the golden rule is read all the forum threads you can find. This is particularly true if you are dealing with a newish device, since the kinks are probably being worked out and so it is important to have all the latest info before you start.
I have to give full credit to the DD-WRT community for making this possible, so all I want to do here is provide a write up of my experience to try and pull all the information together. Special thanks to Fractal for providing the 64K CFE compatible build.
N.B. This guide includes upgrading your CFE to 64K and at the time of writing means that you cannot install a standard DD-WRT firmware, Fractal has been kind enough to compile a 64K CFE compatible version which you must use.
- Fire up the new router, hook it up to your PC with an ethernet cable and point your browser to 192.168.1.1. I aborted the Asus setup wizard it tried to take me through and just jumped straight into configuring manually.
- Install the latest version of the Merlin flavour of the Asus stock firmware. You need to do this because it supports SSH, which makes life easier and allows you to display the version of the CFE, which tells you whether or not you need to manually update the CFE.
You can simply download the latest .trx file from Merlin and flash it using the router’s web GUI.
IMPORTANT NOTE: It is essential to upgrade to the latest Merlin firmware before upgrading your CFE. If you don’t, you will end up with a brick.
- Let the router flash the Merlin firmware and wait until it has rebooted and settled down.
Upgrading the CFE:
UPDATE: There have been reports recently that flashing recent versions of the stock (and so also Merlin’s) firmware result in CFE version 126.96.36.199. However, equally others have not found this to be the case. My suspicion is that ASUS has loaded units manufactured more recently with the 188.8.131.52 CFE. You must flash the latest Merlin build and verify that the CFE is at version 184.108.40.206 or higher using the GUI. If it is, you can skip this section – if not, you’ll have to update it yourself.
- Using your browser of choice (IE sucks by the way), load up 192.168.1.1 again and click on ‘Tools’ on the left-hand menu. This will take you to a page where you can see the current CFE version. This will be 220.127.116.11 currently. We will be upgrading to 18.104.22.168.
- Under ‘Administration’ enable SSH and also Telnet (just in case).
- Follow these instructions to perform the update.
- Because you used the Merlin firmware earlier, you can easily use SSH to connect to the router to do this. If you are not familiar with SSH, you should probably not be attempting this.
- I hadn’t plugged my router into the internet yet, so I used SCP to transfer the cfe_n66u-22.214.171.124-4.tgz file to the router instead of downloading it directly using wget as the guide suggests, but either is fine.
- Here’s the output from my upgrade:
ASUSWRT RT-N66U_126.96.36.199 Sun Dec 16 01:33:41 UTC 2012admin@RT-N66U:/tmp/home/root# ls -alh drwx------ 3 admin root 80 Dec 31 12:10 . drwxr-xr-x 3 admin root 60 Dec 31 1969 .. drwx------ 2 admin root 60 Dec 31 12:04 .ssh -rw-r--r-- 1 admin root 156.5K Dec 31 12:10 cfe_n66u-188.8.131.52-4.tgz admin@RT-N66U:/tmp/home/root# tar -zxvf ./cfe_n66u-184.108.40.206-4.tgz nvsimple-mipsel diff cfe_n66u-220.127.116.11.empty.bin cfe_update.sh admin@RT-N66U:/tmp/home/root# ls -alh drwx------ 3 admin root 160 Dec 31 12:11 . drwxr-xr-x 3 admin root 60 Dec 31 1969 .. drwx------ 2 admin root 60 Dec 31 12:04 .ssh -rw-r--r-- 1 admin root 156.5K Dec 31 12:10 cfe_n66u-18.104.22.168-4.tgz -rw-rw-rw- 1 1000 1000 130.3K Oct 2 2012 cfe_n66u-22.214.171.124.empty.bin -rwxrwxr-x 1 1000 1000 1.8K Dec 3 2012 cfe_update.sh -rwxrwxr-x 1 1000 1000 90.5K Dec 3 2012 diff -rwxrwxr-x 1 1000 1000 8.8K Dec 3 2012 nvsimple-mipsel admin@RT-N66U:/tmp/home/root# ./cfe_update.sh /dev/mtd0ro [1/4] Dumping default NVRAM settings from original CFE… nvram header found: start0x400 end0x1374 len3956 crc0x03 ver0x01 [2/4] Preparing new CFE… nvram header created: start0x400 end0x137c len3964 crc0xed ver0x01 [4/5] Checking differences between NVRAM from old and new CFE's --- nvram_orig.txt2010-12-31 12:11:30.359770287 -1200 +++ nvram_updated.txt2010-12-31 12:11:30.419770287 -1200 @@ -1 +1 @@ -bl_version=126.96.36.199 +bl_version=188.8.131.52 @@ -16,0 +17 @@ +odmpid=ASUS If you see only two differences: one is for 'bl_version' variable change and second is a new 'odmpid=ASUS' variable then all goes well! [5/5] Flashing new CFE… Do you want to flash a new CFE bootloader that? [y,n]y...flashing… Update completed. Old CFE is stored to cfe.old file, a new one - to cfe.new It's strongly recommended to store them, just in case. Please note, your personal MAC addresses in there, do not distribute them.
- Really do back up your old CFE file, the script creates a backup for you, all you need to do is SCP it off and save it somewhere safe. You’ll probably never need it again, but if you do, you’ll really need it.
- You can do this using SCP. On a Linux or OSX machine you can use the terminal:
scp email@example.com:/tmp/home/root/cfe.old .
- You can do this using SCP. On a Linux or OSX machine you can use the terminal:
- Check that the new CFE version is reflected in the web GUI under ‘Tools’. I didn’t seem to have to reboot for the change to be reflected.
- Re-boot the router. I just hit the power button.
- Flash Fractal’s special 64k CFE compatible firmware. I downloaded version 20363 from here, however there is a new version 21402 available here. You can just flash this through the web GUI as usual.
- Let the router flash the DD-WRT firmware and wait until it has rebooted and settled down for at least 5 – 10 minutes. Mine seemed to finish very quickly, but the advice of the forums is to give it some time.
- Perform a 30-30-30 reset to clear the NVRAM and round everything off.
- N.B. This router model uses the WPS button instead of the usual reset button. (Like the RT-N16).
- All done 🙂
At the time of writing I have just finished this and so can’t comment on stability just yet, but it seems solid enough and I have had no trouble configuring it. In 20 minutes I had swapped out my old router and the RT-N66U is now managing my whole home network. Seems good so far.
UPDATE: I have been running this build for several months now and I can confirm that it is solid as a rock.
This post was written to collect all the information at the time of writing together. Obviously it may get out-dated. As such it is essential to read the following for the latest updates before you attempt this yourself: