Turn your $25 Asus WL-520GU router into a $250 router, for free!

Posted in VoIP on September 29, 2009

0


We are not just kidding.

Thanks to some very fine folks who have worked very hard on replacement firmware for Linux-based routers, the above statement is a reality.  We used to use a Cisco RV042 router which we purchased for over $200, and we haven't even had it powered up since we completed this project.


The project is installing Tomato firmware on the Asus WL-520GU router.  True, there are many routers that use Linux-based firmware, and there are several different firmware distributions to choose from.  So why did we choose this combination?

Tomato firmware arguably has the best reputation for QoS routing.  We plan to use this router with VoIP and we want to give VoIP traffic a higher priority than regular internet traffic.  With QoS routing, we can do this.  The distribution of Tomato we selected for this project also supports USB storage devices.  This brings us to our reason for using the Asus WL-520GU which is that it has a USB port.  It's also a very inexpensive router which we've seen on sale for as low as $25.

Level of difficulty: Moderate to Advanced


In order to complete this project, you should be comfortable with basic networking concepts such as how to configure a router, DHCP vs. a static IP, public IPs vs. internal IPs, how to use Telnet/SSH, and so on.

Before we start, you may want to attach the WL-520GU to another router connected to the Internet.  Some modems, such as our Motorola cable modem, don't particularly like issuing IP addresses and you will need to reboot the WL-520GU a few times during this process.  In order to do this, you will need to be sure both routers use different IP ranges.  This step is optional, but prevents interruption of internet for other computers in your household and may eliminate the need to reboot your cable/DSL modem multiple times.

Install DD-WRT


Now for the first step, which is obtaining DD-WRT.  No, that's not a typo; you should install DD-WRT before installing Tomato.  There is a good reason for this but we cannot remember what it is, and since this is a "How To" and not "Why", suffice to say "you need to install DD-WRT first."

First, download the latest stable version of DD-WRT.  Visit http://www.dd-wrt.com/, click the Downloads tab, navigate to the stable folder, navigate to the latest version, then the Consumer folder, then the Asus folder, then the WL520GU folder, and finally to the file dd-wrt.vXX_mini_asus.trx(Whew!) We have heard rumors that you should not save this file in any directory that has a space in it.  We haven't tested this, but recommend you do this to be on the safe side.

Now, you need to flash the DD-WRT firmware to the router.  We would recommend setting your computer up with a static IP.  We discovered that while flashing, the router did not always issue an IP address.  As with flashing any firmware, be sure to do this over a wired connection and not a wireless one.  You may also need to disable any software firewalls.  After setting the static IP, test to be sure that you can access the router's setup page over a wired connection.

To flash firmware, you should use Asus' Firmware Restoration Utility.  Note: do not use the latest version from Asus' website as it probably won't work.  The best version to use is the one on the CD that came with the router.  If you have lost it, be sure download the right version of the Firmware Restoration Utility for your specific router.  Load the Firmware Restoration Utility and browse to find the trx file you just downloaded.  Don't upload it yet!

Unplug the power from the router and consider the two buttons on the back.  Using a small screwdriver or a ballpoint pen, press the reset button.  Hold down the reset button and plug the router back in.  When the Power LED begins to flash, release the reset button, and upload the firmware.

If all goes well, DD-WRT will be installed.  To be sure everything worked, navigate to the setup page and log in.  One set of instructions we were following told us to log in with blank username and password admin.  Another told us username admin and blank password.  Actually, we had to log in with admin/admin.

Install Tomato


Next, take a look at this forum thread.  This is the thread that talks about a modification of Tomato with USB support.  Navigate to the download link.  Note that there are a few flavours available.  We chose the ext flavour because we needed tools to partition and format the USB drive.  If you have a Linux box that you can use instead, you can download the smaller Standard build, or if you do not require Samba, you can download the even smaller Lite build.  Download the file, unrar it, and rename the resulting *.trx file to *.bin.

The password after we flash Tomato will be different and it is necessary to find out what it will be.  In order to do this, telnet into the router.  Use the username root and whatever password you used to access the setup page.  Type nvram get http_passwd and copy the password that it returns.

Now, return to the DD-WRT setup page.  Navigate to Administration and then to Firmware Upgrade.  Browse to the Tomato firmware you just downloaded and upgrade.  Attempt to log in to the Tomato setup page.  When we did it, the username was root, and the password was what we found in the previous step.

Congratulations!  You have just installed Tomato on your router!  As with any new router install, before you continue, be sure to do the following:

1) Change the password on the router to something difficult to guess.

2) Secure the wireless connection, or disable it if you don't plan to use it.

3) You may want to disable wireless access to the Tomato setup page.

4) You may want to properly configure such settings as Time Zone.

Next, if you plan to, or even may possibly one day use your router for VoIP, there are a few more settings you should consider.  Some of the default Tomato settings conflict with the default settings of Sipura / Linksys / Cisco adapters.  These are the UDP Timeout settings and if they are left at their defaults, VoIP devices will sometimes fail to register.  These may be found on the Conntrack/Netfilter page in the Tomato config.  Set "unreplied timeout" to 10 seconds and "assured timeout" to 325 seconds.  On VoIP devices, the NAT Keep Alive Intvl should be greater than the unreplied timeout and less than the assured timeout.  By default this is 15 which works well.
 

Write a comment