Asus WL-520GU

From DD-WRT Wiki

Revision as of 20:55, 21 September 2009 by Masterman (Talk | contribs)
Jump to: navigation, search

Contents

Introduction

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. 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.

Prerequisites

  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 RC7+ (not VINT builds)
    • v.24 RC7
    • Build suggestions (see File Versions for more information on selecting a version):
      • dd-wrt.v24_mini_asus.trx or dd-wrt.v24_mini_generic.bin (RECOMMENDED -- mini or macro versions required 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
 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.

Installation

More detailed installation instructions can be found here: http://wl520gu.googlepages.com/

  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 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. Use the wl500g-clear-nvram.trx file and wl500g-recover.trx utilities.
  5. 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).

Before you start the Firmware Restoration tool, disable all interfaces on the PC except for the one connected to the Router. The software seems to pick an interface at random.

To enter firmware restoration mode, simply press the reset button while powering on the WL-520-GU and wait until the power LED slowly blinks. The reset button can then be released and the WL-520GU will stay in this state until the next power cycle or a new firmware has been uploaded.

In this state, the Asus Firmware Restoration Utility (see below) can/should be used to upload new firmware images.

It does not appear that any particular IP address range is needed to upload firmware in this mode. However, a valid IP address is required. Since no DHCP server is available in this mode, either the host computer needs a static IP address or one simply needs to wait for Windows (Win2k and later) to assign an automatic private IP address in the 169.254.0.0/16 range.

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.

It appears this utility operates at layer 2 of the OSI model, because it is able to detect the WL-520GU in Firmware Recovery Mode regardless of the host computer's IP address. I recommend statically assigning an IP address in the 192.168.1.x range when working with DD-WRT because this is the range DD-WRT defaults to and WRTs can only be detected once the host has an IP address (DHCP works, but takes longer because the DHCP client must first time-out and assign an automatic private IP address before the WL-520GU will be detected -- and this happens every time the WL-520GU is power cycled because the network connection is lost).

Sometimes the Windows firewall interferes with the Asus Firmware Restoration Utility. When it does, the utility is not able to find the WL-520GU, but the WL-520GU power LED stops blinking and displays a solid green when one attempts to upload a new firmware file. Either disabling the firewall or making a firewall exception for the Asus Firmware Restoration Utility solves this problem.

If the Asus restoration utility doesn't detect your router and shows "No wireless device in recovery mode is found", you need to disable all network connections except for your Ethernet adaptor and try again.

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 192.168.1.1 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 192.168.1.1 -c dd-wrt.v24_mini_asus.trx

VPN + USB Printer server

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

  • Download the latest eko SVN build with openvpn and small jffs I used svn10700 dd-wrt.v24-10700_NEWD_openvpn_jffs_small.bin
  • Install this firmware using the methods used above. TFTP or ASUS client.
  • go to http://192.168.1.1 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 192.168.1.1. 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
./jffs/etc/config/usb.startup
  • 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