ASUS WL-500g

This device is NOT RECOMMENDED for future use with OpenWrt due to low flash/ram.
DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version onto it! See 4/32 warning for details.

1) This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for this device has ended in 2022.
19.07.10 was the last official build for 4/32 devices.

The device is supported by OpenWrt 0.9 (White Russian, brcm-2.4 target, 2.4 kernel).

Beginning with SVN revision 10137 (in brcm-2.4 target), a new version of the broadcom-wl driver and utils was integrated, which unfortunately does not seem to support the WLAN module in the WL-500g any longer. Unfortunately, the changes lie within binary code, so probably the only way is to get the old version ported forward. This means no Kamikaze or Backfire releases have functioning wifi with 2.4 kernel and Broadcoms drivers.

Version 10.03.1 (Backfire, brcm47xx target, kernel 2.6) seems to work with opensource b43 wifi driver and kernel 2.6. However, it is a bit slow (it can boot for 2-3 minutes), but still usable (it is slow only when you interact with it, it routes traffic just fine). Note that with this version, you will have only 960kB of free space for your applications (unless you compile your own stripped-down image).

I found out that trunk with b43 driver as of May 8 2012 works, but wifi stops working after about two hours. Running command peridically (say every hour) wifi fixes it without the connections being dropped.

Architecture: MIPS
Vendor: Broadcom
Bootloader: PMON
System-On-Chip: Broadcom BCM4702/4710
CPU Speed: 125 Mhz
Flash-Chip: AMD AM29LV320
Flash size: 4 MiB
RAM: 16 MiB (2x 8 MiB)
Wireless: Broadcom WL-120G (BCM4306, miniPCI)
Ethernet: Broadcom BCM5325A (two network interfaces, one for 4 LAN ports, one for WAN port; no VLAN tagging)
USB: 1x 1.1
LPT: Attansic AT7601F (EPP/ECP support)
Serial: yes, with external UART
JTAG: no

If you want to upload firmware to router by Asus Firmware Restoration tool or tftp, you will have to turn your device to this mode. The procedure is following:

  1. Turn off the device.
  2. Press and hold the reset button.
  3. Plug the device (still hold the button).
  4. Wait until the PWR LED starts flashing slowly (almost immediately).
  5. Now release the reset button. Your router is in Restore mode.

You can use the ASUS Firmware Restoration tool to send an image from a Windows PC to the router (including OpenWrt). The tool is on the supplied CD or available from the ASUS Support web site.

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

Put your router into Restore mode and start the Firmware Restoration program. Select the desired firmware and click on Upload. The software will search for the router - the status is Connect to the wireless device, it will do this for about 32 seconds.

:!: The software will only find the router if it is in Recovery mode.

The tool provides status as it works:

  • Uploading (LAN interface LED blinks during transfer)
  • Recovery is in progress
  • Success

After this, you should be able to connect to the router.

The WL-500G recovery mechanism is somewhat complex. The most reliable method is to statically assign the ARP entry for the device, and use a known-to-work TFTP client (e.g. OS X's inbuilt tftp generally doesn't work; atftp on Linux does work).

Note: Mac OS X 10.5 Leopard tftp client does work! Router was stuck to the IP address setting in the NVRAM. It was not necessary to manually fix the MAC ADDRESS.

Set your ethernet interface into static mode (IP address, netmask, default gateway, put your router into Restore mode and upload the firmware by TFTP using the following commands (`00:11:2f:6a:60:13` is the device's MAC address - replace by yours, `` is a free IP address on your local network):

$ sudo arp -s 00:0e:a6:6c:ac:1f #00:0e:a6:b7:e4:17
$ tftp
tftp> binary
tftp> trace
tftp> get ASUSSPACELINKaaaa /dev/null
tftp> put openwrt-xxx-x.x-xxx.trx ASUSSPACELINK

Sidenote: the “magic string” on the end of the ASUSSPACELINK string (e.g. often quoted as “\x01\x01\xa8\xc0”) is in fact meant to be the IP address to be assigned to the device, in little-endian order (0x01 0x01 0xa8 0xc0 = 1 1 168 192; or IP= However, most TFTP clients interpret the string “\x01\x01\xa8\xc0” literally and you'll end up with an IP address of being used (convert the ASCII string “\ x 0 1” to decimal and reverse). The TFTP clients that work don't care about what the WL-500G thinks its IP address is, hence the “aaaa” in the example above.

After this, wait until the PWR LED stops flashing and the device to reboot and you should be set.

If you have already installed OpenWrt and like to reflash for e.g. upgrading to a new OpenWrt version you can upgrade using the mtd command line tool. It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.

You also need to have enough free RAM. See generic.sysupgrade and for details. For me, the box would always freeze midway through the process and reboot itself. --- sup 2012/05/07 16:59

LuCI Web Upgrade Process
Terminal Upgrade Process
  • Login as root via SSH on
  • Use the following commands to upgrade.
cd /tmp
sysupgrade /tmp/openwrt-brcm47xx-squashfs.trx

From Openwrt forum (link):

For both Kamikaze (brcm-2.4 target) and Backfire (brcm47xx target), install:

  • kmod-usb-core
  • kmod-usb-ohci

:!: Running brcm47xx target, you need to install the kmod-usb2 package, even if you have only an USB 1.1 controller.

After doing this, see USB overview for more info.

Got annoyed by logread output full of messages looking like this:

Mar 27 02:48:34 OpenWrt init: process '/bin/ash --login' (pid 2582) exited. Scheduling for restart.
Mar 27 02:48:34 OpenWrt init: starting pid 2590, tty '/dev/ttyS0': '/bin/ash --login'

Here is a fast solution - simply comment out a line with “ttyS0::askfirst:/bin/ash --login” in your /etc/inittab file. The file should contain something like this:

::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K stop
tts/0::askfirst:/bin/ash --login
#ttyS0::askfirst:/bin/ash --login
tty1::askfirst:/bin/ash --login

This page has been assebled from a number of different pages from the oldwiki and current wiki. See them for more (possibily outdated) informations.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2019/02/12 22:06
  • by tmomas