ASUS WL-500g
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 4.150.10.5 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 4.80.53.0 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.
Hardware info
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 |
Installation
Restore mode
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:
- Turn off the device.
- Press and hold the reset button.
- Plug the device (still hold the button).
- Wait until the PWR LED starts flashing slowly (almost immediately).
- Now release the reset button. Your router is in Restore mode.
ASUS Firmware Restoration tool
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.
TFTP installation notes
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 192.168.1.10, netmask 255.255.255.0, default gateway 192.168.1.1), 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, `192.168.1.1` is a free IP address on your local network):
$ sudo arp -s 192.168.1.1 00:0e:a6:6c:ac:1f #00:0e:a6:b7:e4:17 $ tftp 192.168.1.1 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=192.168.1.1). However, most TFTP clients interpret the string “\x01\x01\xa8\xc0” literally and you'll end up with an IP address of 49.48.120.92 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.
Upgrading OpenWRT
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 https://forum.openwrt.org/viewtopic.php?id=36671 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
- Browse to http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/ (LuCI Upgrade URL)
- Upload TRX file to LuCI
- Wait for reboot
Terminal Upgrade Process
- Login as root via SSH on 192.168.1.1
- Use the following commands to upgrade.
cd /tmp wget http://downloads.openwrt.org/**path-to-latest-release**/brcm47xx/openwrt-brcm47xx-squashfs.trx sysupgrade /tmp/openwrt-brcm47xx-squashfs.trx
USB
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.
Software hacks
Messing up logread
Got annoyed by logread output full of messages looking like this:
... Mar 27 02:48:34 OpenWrt daemon.info init: process '/bin/ash --login' (pid 2582) exited. Scheduling for restart. Mar 27 02:48:34 OpenWrt daemon.info 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
Useful sources
This page has been assebled from a number of different pages from the oldwiki and current wiki. See them for more (possibily outdated) informations.