Asus WL-520GU

From DD-WRT Wiki

Revision as of 05:36, 20 November 2009 by Masterman (Talk | contribs)
Jump to: navigation, search


New Wiki Install Material

There is a lot of info in this wiki that is seriously out of date and I found the Asus tool to be a complete pain in the arse to download and install. EDIT: If you already have the disk, (i.e when you buy the router new) use it. See Firmware Restoration Utility for the simple Windows OS users. Below is the preferred flashing instructions if you do not have the disk, or do not use Windows or have problems running the Utility:

  1. Read the Peacock Announcement, found here:
  2. Download this program to flash from Windows: If you need to flash with linux, use this file:
  3. Download this file for initial flashing:
  4. Do a proper HARD reset on the router in accordance with note 1 of the peacock. That will be a 30-30-30 reset, followed by a power cycle.
  5. Do a second 30-30-30 reset, but do not power cycle it at the end. This puts the router into restoration mode. Plug a cable in the LAN port of the router, and the ethernet port of your computer. Make sure antivirus and wireless are off in the computer, and nothing else is connected to the computer or the router.
  6. Set your computer to a static IP address of with a subnet mask of
  7. Start the tftp.exe and follow the instructions in note 11 of the peacock announcement. Set the server to, leave the password blank, set retries to 20, and choose the dd-wrt.v24-12548_NEWD_mini_asus.trx file you downloaded earlier. Hit upgrade, and the file should upgrade immediately.
  8. Wait. Set a timer for FIVE FULL EARTH minutes. If you screw this up you could damage your router. WAIT!
  9. The lan port will remain lit after the upgrade, but no other lights will light. There is no sign that your firmware has flashed, so you HAVE TO TIME IT.
  10. Once the time is up, power cycle the router.
  11. Navigate to and refresh until the router webgui shows up
  12. TYPE in a username and password in the opening page.
  13. Power cycle the router
  14. When you can log back in to the webgui at, do ANOTHER hard reset on the router (30-30-30 followed by a power cycle)
  15. Login to the router and enter a username and password. The router can be used at this point.
  16. Download this file:
  17. Go to the administration/firmware upgrade tab.
  18. Choose "Reset to default configuration", and pick the dd-wrt.v24-12548_NEWD_mini_usb.bin file to upgrade.
  19. Hit "Upgrade" and wait five full earth minutes.
  20. TYPE in a username and password in the opening page.
  21. Power cycle the router
  22. When you can log back in to the webgui at, do ANOTHER hard reset on the router (30-30-30 followed by a power cycle)
  23. Login to the router and enter a username and password.
  24. Configure your router
  25. Set your computer back to auto IP and autoDNS


The WL-520GU WRT is supported as of DD-WRT v.24 RC7. USB (e.g. external storage or printer). As of DD-WRT v24 Final Release you are able to use the web-GUI to enable, setup and configure USB support. You must use builds that are tagged mini-usb or mini-usb-ftp to do this. Due to the lack of the units flash size (4MB) these builds may not offer the same Web GUI features of the standard builds. Some memory hungry features like Xbox-KAID have been removed in order to provide sufficient space for the USB drivers/modules and FTP functions.


  1. Windows Client (TFTP firmware upload techniques when booting the WL-520GU will also work for non-Windows users, but use of the ASUS Firmware Restoration Utility on a Windows client is by far the easiest way to flash the WL-520GU)
  2. ASUS Firmware Restoration Utility
    • Installed as part of the "ASUS WL-520gU wireless router utility program" and is available under "Utilities"
  3. DD-WRT v.24 TNG (not VINT builds) Link: [1]
    • Build suggestions (see File Versions for more information on selecting a version):
      • dd-wrt.v24_mini_asus.trx (For intial flash) REQUIRED
      • dd-wrt.v24_mini_generic.bin (Recommended if you want to manually add USB support, or need additional JFFS storage space)
      • dd-wrt.v24_generic_nokaid.bin (if you want standard features but don't require X-Box Kai Console Gaming)
      • dd-wrt.v24_std_generic.bin
      • mini_usb.bin (Built in USB support)
      • mini_usb_ftp.bin (Built in USB and FTP support)

Note: The mini_asus.trx build is supposed to be designed to be uploaded as a firmware upgrade through the ASUS stock firmware's web interface. The stock ASUS firmware rejected this build in the author's attempt to do this. For Windows use the Firmware Restoration utility provided with your router to do the initial mini-asus.trx flash. For Vista users, Administrative permissions are required. For Windows 7 users, changing the main executables (.exe) file to Windows XP sp2 compatibility mode is required. For 64bit versions of Windows, make sure the installation path is set to Program Files (x86).


  1. Download a compatible version of DD-WRT
  2. Reset the WL-520GU to its defaults (see Resetting Defaults below)
  3. Put the WL-520GU in hardware restoration mode (hold down the reset button while powering on the WL-520GU and wait until the power light steadily blinks green).
  4. Upload the mini-asus.trx DD-WRT firmware with the Asus Firmware Restoration Utility or TFTP.
 Note: See the Firmware Restoration Utility section for tips on using this utility.

Upgrading Firmware

Once DD-WRT has been installed on the WL-520GU, new versions can be installed through web interface (Administration -> Firmware Upgrade). The Asus Firmware Restoration Utility can also be used, but it is no longer necessary when upgrading DD-WRT.

Resetting Defaults

There are several ways the WL-520GU's NVRAM can be reset.

  1. Using the Administration -> Factory Defaults web interface.
  2. Selecting the option to reset to Default Settings when upgrading the firmware through the Administration -> Firmware Upgrade web interface.
  3. Pressing the reset button while booting (see the Reset Button section below for ASUS reset button quirks).
  4. Download this file pack which includes the necessary tools required for the procedure and unrar it. The File pack contains both wl500g-clear-nvram.trx and the wl500g-recover.trx utilities.

If using the #4 procedure, do the following:

  1. Using the Firmware Restoration utility or TFTP, first put the device into restore mode by pressing and holding the black reset button WHILE plugging the power in. The power LED should continuously flash.
  2. Set your network adapter to a static IP of and subnet mask of
  3. Upload wl500g-clear-nvram.trx and wait for the transfer to complete. Unplug the power.
  4. Put the device into restore mode once again by pressing and holding the black reset button WHILE plugging the power in.
  5. Upload wl500g-recover.trx and wait for the transfer to complete, then unplug.
  6. Put the device into restore mode once again by pressing and holding the black reset button WHILE plugging the power in.
  7. Upload the either the stock firmware (which is found on the Asus website) or uploadmini_asus.trx file if you want to continue using DD-WRT. Wait for file transfer completion.
  8. Unplug the power, but this time do NOT press the blackreset button. Just plug the power back into the unit and you're back in business

  • Last resort when the unit won't boot due to a bad setting -- see this forum post.

Reset Button

The ASUS "firmware restoration" mode requires a change to the standard Linksys "hold reset button for 30 seconds" procedure for resetting the WL-520GU to its defaults. The following is how the reset button works on the WL-520GU:

When the WL-520GU is powered on

  • Holding the reset button for 15-20 seconds will cause the WL-520GU to reboot.
  • Upon reboot, a pressed reset button causes the WL-520GU to go into firmware restoration mode. This does NOT reset the defaults (see the section below for more information on the firmware restoration mode).
  • Since there is little to no warning of the exact instant the WL-520GU will reboot when holding the reset button, chances are extremely good that the reset button will still be depressed and cause the WL-520GU to go into firmware restoration mode. Hard booting the WL-520GU will get the WL-520GU back, but settings will NOT be reset.

When the WL-520GU is booting

  • Holding the reset button during the boot sequence will reset the unit to its defaults.
  • Care must be taken to press the reset button right after the power light turns off immediately after powering on the WL-520GU and not before, to avoid going into firmware restoration mode.

Based on the above, it should be fairly self-evident that the following procedure is recommended for using the reset button on the WL-520GU.

  1. Unplug the WL-520GU
  2. Plug in the WL-520GU
  3. The power light will blink
  4. As soon as the power light turns off, press and hold the reset button
  5. Hold the reset button until the power and wireless buttons glow green.
  6. The WL-520GU should now be reset to its defaults

Hardware Notes

This section covers observations made about working with the ASUS WL-520GU hardware. Certain behaviors of this device are different than other WRTs (especially the Linksys).

Firmware Restoration Mode

Many Asus WLs have a special pre-boot state that makes it extremely easy to upload new firmware images, even when the current firmware is corrupt (in fact the WL-520GU automatically drops into this mode when a corrupt firmware is detected during boot). Either applying a new firmware through the Asus Firmware Restoration Utility (see section below) or a hard reboot (removing the power) is required to exit this state (Note that entering this state does not negatively effect the current settings or firmware so it is not especially dangerous to accidentally enter firmware restoration mode -- although it does get in the way of performing a "reset button" based reset of the WL-520GUs settings as noted in the section above).

Asus Firmware Restoration Utility

The Asus Firmware Restoration Utility is available from the Asus support site under "Utilities" (installed as part of the ASUS WL-520GU Utility). This is the preferred utility for uploading new firmware distributions since many firmwares reject a different distribution's firmware if one attempts to use the web interface.

The Asus Recovery Utility can ONLY be used with Windows

  • Under Vista and Win7 this utility must be run as administrator.
  • In case you have multiple network interfaces and are unable to find you router, disable all but the one that is connected to your router.
  • You should also turn off your firewall, in order to allow the Asus Recovery Utility to be able to connect and send data from your PC to the Router.


1. Remove the power connector of the WL series router.

2. While holding the BLACK reset button down, plug the power connector back in.

3. When the power LED flashes, release the reset button. The router is now in recovery mode.

4. You need to manually set the address of your PC's Network LAN card to and subnet mask

5. Use the Asus recovery utility to upload the DD-WRT mini-asus.trx file.

6. After the upgrade, the Utility will ask for a router reboot. Give it about a minute to be on the safe side before removing the power. Once plugged back in, you will be able to access the web interface.

7. DO NOT use Firefox for upgrading builds! Use Internet Explorer!!!!

8. Type into your browser and set your username as root and pick a password.

9. Navigate to Administration->Firmware Upgrade and upload either the recommended build provided on the main page of the site, or another of your choice.

Using TFTP on Windows

Windows TFTP client may be downloaded from here. Then all you need to do is to call following command: tftp.exe -i -v PUT dd-wrt.v24_mini_asus.trx

Using TFTP on Linux

Linux TFTP client may be downloaded using yum or apt-get. Then all you need to do is to call following command: tftp -m binary -c dd-wrt.v24_mini_asus.trx

Installing Frater's no hassle, newbie friendly Optware

This is the latest, greatest and easiest way to enable Optware on your Router. It is recommended that you have a router with USB capable storage (Harddisk, flashdrives etc.), although SD/MMC Mods are working. Also, you wont be needing JFFS2, so DISABLE it.

Services that will be installed:

  • Bash instead of shell in busybox (LFS support)
  • Automounting and unmounting of storage device partitions
  • Network printing
  • Torrent transmission with watchdog
  • Hotmount
  • Pre-configured samba share
  • Reverse proxy featuring pound
  • Service tool
  • Xinetd
  • Pound
  • Asterisk
  • Lighttpd
  • Vlighttpd
  • Countryblock
  • Services running as other users than root
  • Vim with proper terminal support

In my opinion, Everyone with a router that has storage device capabilities should take advantage of this! You will NOT regret it, even if it can be a time consuming process!

Getting Started

If starting from scratch, you will need to first format and partition your harddisk, flashdrive or SD card to an EXT2 or EXT3 Linux filesystem. It is much easier than you think, and can be accomplished via a Linux Live boot-CD. There will be NO changes to your PC whatsoever, and it is very simple to implement.

My personal favorite is Ubuntu as it provides a very user friendly interface and can be understood in a matter of minutes no matter what OS you use (Windows, MAC etc) and not to mention Firefox is already installed. Just download the free for life version of your choice (32 or 64 bit) from the above link, and use a burning software like Nero to burn the Image to a CD. After that, simply pop the disc into your CD/DVD drive and reboot.

If your PC BIOS settings are set like they should be (first drive to boot should be the CD/DVD drive), then sit back and wait for it to load.

It will then prompt you for language selection, and then the query prompt will proceed. Default is "Try Ubuntu without any changes to your computer." Hit enter and let it load.

Once in Ubuntu, connect the drive you wish to format and partition. Once completed, navigate to the browsing menu at the top of the screen and look for applications, then click Terminal

Once in the Terminal window, read the following directions and enter the following commands:

NOTE: All BOLD text in this Wiki will be the commands that you enter.

Type sudo su - as this allows you to become root, or full administrator of the machine.

Using the fdisk command, you will be creating four partitions:

  • sd?1 - the /opt partition, where Optware will reside.
  • sd?2 - the swap partition, where Linux will swap jobs.
  • sd?3 - the /jffs partition
  • sd?4 - the data partition, which you will share via Samba or FTP.

NOTE The ?'s are the drive letters Linux assigns. You will need to determine which one is correct by issuing the command dmesg | more (Keep Hitting enter to continue readout). You will be looking for the disk you want to format. Here is an example of what it should look like:

scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: WD        Model: 1600BEV External  Rev: 1.05
Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi disk sdb at scsi0, channel 0, id 0, lun 0
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)

Another more user friendly way is to use Ubuntu's GParted tool, which is located in System->Administration->Partition Editor. Here you can either use it to identify the drive letter of the disk, or you can Partition it.

It's important to understand everyone's disk drive configuration will be different. If your drive is 40 GB or smaller, use the smaller set of partition sizes below. If your drive is over 40 GB, you can use the larger set of partition sizes.

Disk 40 GB or less

  • /opt 256 megabytes
  • swap 32 megabytes
  • /jffs 128 megabytes
  • data remainder of the disk

Disk greater than 40 GB

  • /opt 512 megabytes
  • swap 64 megabytes
  • /jffs 256 megabytes
  • data remainder of the disk

NOTE For smaller storage devices such as SD/MMC and flash drives, the minimum partition size for /opt should be 256MB

Also the /jffs partition is not necessary if you are only installing this Optware.

Code: (the ? are the drive letters (c,d,e etc.) so make sure you choose the correct one!) The bold texts are the commands

fdisk /dev/sd?
Command (m for help): p 
Disk /dev/sd?: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-621, default 1):<HIT ENTER>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +512M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
Partition number (1-4): 2
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +64M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
Partition number (1-4): 3
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 621
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
Partition number (1-4): 4
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): <HIT ENTER>
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)      
Command (m for help): p
Disk /dev/sd?: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot    Start       End    Blocks   Id  System
/dev/sd?1   *         1       196    395104+  83  Linux
/dev/sd?2           197       262    133056   82  Linux swap
/dev/sd?3           263       458    395136   83  Linux
Command (m for help): w

If you get a message saying that the current table is in use and will be executed on next reboot, then do it! Make SURE though after rebooting that when you open the terminal for the next sequence of commands, do a sudo su - followed by an fdisk /dev/sd? and type p as this will verify the partition table


Connecting the Drive to your Router

1. In the DD-WRT web GUI screen, on the Services USB tab enable the options for:

  • Core USB support
  • USB 2.0 support
  • USB storage support
  • Printer Support (optional)
  • ext2/ext3 File System support

2. From the DD-WRT web GUI screen, click on Apply Settings. This will reboot the router.

3. There are several methods of doing this. Once you have all your partitions set on the external device, add this to your Start-up script in Administration->Commands

Startup script (make sure you install to the/opt partition. Replace the ? after ..lun0/part with the appropriate partition number that /opt is designated. It SHOULD be 1)

sleep 10 && mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part? /opt &
while [ ! -d /opt/etc/init.d ] ; do
 sleep 3
 [ $n -gt 30 ] && break
 let n+=1

Click Save Startup

Shutdown script:


Click Save Shutdown

Give the router a minute or two to process and reboot.

Alternative (easier):

Web Interface Method:

Go to Services->USB. Enable USB Core support, USB 2.0 Support, USB Printer Support, USB Storage Support, Ext2/3 support, FAT File System Support (optional) and Automatic Drive Mount.

Once the drive and partitions are recognized, Select /opt from the Drop-down menu. Click Apply settings (your router will reboot)

NOTE This may be easier, but the initial Command Line method is much more reliable!

Next, start a terminal session to your router or use a program like PuTTY if using Windows.

First issue these commands to ensure /opt is mounted:

rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
devpts on /proc/bus/usb type usbfs (rw)
/dev/scsi/host0/bus0/target0/lun0/part1 on /opt type ext3 (rw)

Here's just a little sample of my device output parameters. Yours will not look like this yet.

root@Asus:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                5.0M  5.0M     0 100% /
/dev/root             5.0M  5.0M     0 100% /
                     259M  213M   44M  83% /opt
                     293G  6.7G  284G   3% /mnt
                      69M  5.6M   63M   9% /jffs

Enter the following commands into Busybox/Telnet:

wget -O /tmp/prep_optware 

sh /tmp/prep_optware

This will load all the necessary optware and supporting scripts that Frater wrote from the ground up.

This will take about 10-20 mins depending on your connection and your router CPU clock. Close your Web Interface as this consumes precious memory and CPU resources

Once everything has completed, type reboot into either the BusyBox/Telnet Shell (why not, your right there) or through the Web Interface.

The BusyBox/Telnet Commands to enable/disable the services are are follows:

service - show all services (enabled/disabled)
service <service name> - if "status" is supported it will run the service-script with "status" asparameter. 
service <service name> on - Enable the script (chmod +x  /opt/etc/init.d/S<servicescript>)
service <service name> off - Disable the script (chmod -x  /opt/etc/init.d/S<servicescript>)
service <service name> <parameter> - Run the script with the parameter.


service pound
service pound off
service pound on
service pound stop

service automount start - mount all partitions
service automount stop - umount all partitions instead of the one to /opt
service automount status - show all partitions
service automount unmount <partition|mountpoint> - unmount that partition and remove it fromautomount
service automount nomount <partition> - Do not automount this partition
service automount nonomount <partition> - remove this partition from the nomount list

Useful scripts

fdisk -l
df -h
cat /tmp/fdisk
cat /tmp/blkid
cat /opt/etc/automount
cat /opt/etc/nomount 

Many more exciting packages are in the works, so be sure to follow This forum thread and further help is always available on the forums.


VPN + USB Printer server

If you would like to use the firmware v24-TNG with openvpn support and usb printing support then follow these steps:

  • Download the latest stable Eko SVN build with openvpn and small jffs. Use svn12548 [2]
  • Install this firmware using the methods used above. TFTP or ASUS Firmware restore client.
  • go to and setup a USERNAME and a password
    • go to administration and enable jffs if it is not enabled already
    • go to services and enable sshd
    • go to administration and enable SSH Management
  • using your favorite ssh client then ssh Log in with the username "root" and your web admin password
  • after you login type
mkdir -p /jffs/tmp/ipkg
ipkg update
ipkg -force-depends install kmod-usb-core
ipkg -force-depends install kmod-usb-printer
ipkg -force-depends install kmod-usb-ohci
ipkg install p910nd
  • this should download all required packages/modules/software etc. now we need to edit some configuration
mkdir /jffs/etc/config
vi /jffs/etc/config/usb.startup
  • inside usb.startup you should have:
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/usb-ohci.o
insmod /jffs/lib/modules/2.4.30/printer.o
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
  • You will need to set the permissions of this file to allow it to execute. Type:
chmod +x /jffs/etc/config/usb.startup
  • Next, we need to fix a typo. The fix is described here Printer Sharing. To fix this:
vi /jffs/etc/init.d/p910nd
change ----------> DEFAULT=/etc/default/p910nd
to -------------> DEFAULT=/jffs/etc/default/p910nd
  • At this point, you should reboot your router. When it comes back online, to make sure everything is right, do the following:
ls /dev/usb
  • If this shows the printer (lp0), you are in good shape. Otherwise, try running the command
  • to manually start the printer server. You should now see the printer if you repeat the preceding ls command.
  • Also, try running "dmesg | grep usb" to see if the printer is loaded. if you do not see:
printer.c: usblp0: USB Bidirectional printer dev 2 if 1 alt 0 proto 2 vid 0x04B8 pid 0x0839

then you have an interesting problem.

  • Next, verify that the print server is up by running netstat -an and searching for port 9100. If you don't see anything, try running ps | grep lp0. If you still don't see anything, try manually starting the print server with this command:
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0

External Links