The WL530g is a new "Pocket Router" from Asus. It uses a completely different chipset and firmware from the other members of the WL500g family.

A new project has begun which is working on a new, superior custom firmware and Firmware Modification Kit, as well as complete documentation of this unit. Please see http://www.bitsum.com/openwiking/owbase/ow.asp?Hacking%5Fthe%5FWL%2D530G for research and downloads.


Old(er) documentation follows


This page is here to document everything we know about the internal workings of this router.

The FCC page is at https://gullfoss2.fcc.gov/prod/oet/cf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&RequestTimeout=500&calledFromFrame=N&application_id=903874&fcc_id='MSQWL530G'

Firstly, version 1.8.2.5 has telnetd enabled, and you can get a command line shell with no password.

Sash command shell (version 1.1.1)
/> ls -l
drwxr-xr-x    1 0        0            1000 Jan  1 00:00 bin
drwxr-xr-x    1 0        0            1632 Jan  1 00:00 dev
drwxr-xr-x    1 0        0             236 Jan  1 00:00 etc
drwxr-xr-x    1 0        0              40 Jan  1 00:19 garbage
drwxr-xr-x    1 0        0              20 Jan  1 00:00 lib
dr-xr-xr-x   24 0        0               0 Jan  1 00:00 proc
drwxr-xr-x    1 0        0             176 Jan  1 00:00 sbin
drwxr-xr-x    1 0        0               0 Jan  1 00:00 tmp
drwxr-xr-x    1 0        0              16 Jan  1 00:00 usr
lrwxrwxrwx    1 0        0               8 Jan  1 00:00 var -> /tmp/var
drwxr-xr-x    1 0        0            4104 Jan  1 00:00 www
/> cat /proc/version
Linux version 2.4.22-uc0 (root@localhost.localdomain) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #1369 Wed Aug 18 21:32:58 CDT 2004
/> free
        total:    used:    free:  shared: buffers:  cached:
Mem:  15015936  8962048  6053888        0  1277952  2555904
Swap:        0        0        0
/>
/> cat /proc/kmsg
<4>Linux version 2.4.22-uc0 (root@localhost.localdomain) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #1369 Wed Aug 18 21:32:58 CDT 2004
<4>Processor: ARM Arm946id(wb) revision 1
<4>Architecture: MV88W85x0
<4>On node 0 totalpages: 4032
<4>zone(0): 0 pages.
<4>zone(1): 4032 pages.
<4>zone(2): 0 pages.
<4>Kernel command line: console=ttyS0,38400 root=/dev/mtdblock1 ro rootfstype=cramfs
<4>Calibrating delay loop... 87.85 BogoMIPS
<6>Memory: 15MB = 15MB total
<5>Memory: 14616KB available (1045K code, 227K data, 48K init)
<6>Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
<6>Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
<6>Mount cache hash table entries: 512 (order: 0, 4096 bytes)
<6>Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
<4>Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
<4>POSIX conformance testing by UNIFIX
<6>Linux NET4.0 for Linux 2.4
<6>Based upon Swansea University Computer Society NET3.039
<4>Initializing RT netlink socket
<4>Starting kswapd
<4>pty: 256 Unix98 ptys configured
<6>Serial driver version 5.05c (2001-07-08) with no serial options enabled
<6>ttyS00 at 0x8000c840 (irq = 11) is a 16550A
<4>RAMDISK driver initialized: 16 RAM disks of 2048K size 1024 blocksize
<6>PPP generic driver version 2.4.2
<6>PPP MPPE compression module registered
<6>PPP Deflate Compression module registered
<6>PPP BSD Compression module registered
<5>Marvell Libertas AP-32 flash mapping: 400000 at ffc00000
<6>Marvell Libertas AP-32: Found 1 x16 devices at 0x0 in 16-bit mode
<4> Amd/Fujitsu Extended Query Table at 0x0040
<4>Marvell Libertas AP-32: Swapping erase regions for broken CFI table.
<5>number of CFI chips: 1
<5>cfi_cmdset_0002: Disabling fast programming due to code brokenness.
<5>Creating 4 MTD partitions on "Marvell Libertas AP-32":
<5>0x00000000-0x00380000 : "Libertas AP-32 compressed kernel"
<5>0x000a0000-0x00380000 : "Libertas AP-32 romfs root file system"
<5>0x00380000-0x003d0000 : "Libertas AP-32 jffs2 file system"
<5>0x003d0000-0x003e0000 : "Libertas AP-32 manufacture data"
<6>NET4: Linux TCP/IP 1.0 for NET4.0
<6>IP Protocols: ICMP, UDP, TCP
<6>IP: routing cache hash table of 512 buckets, 4Kbytes
<6>TCP: Hash tables configured (established 512 bind 512)
<4>ip_conntrack version 2.1 (126 buckets, 1008 max) - 320 bytes per conntrack
<4>ip_tables: (C) 2000-2002 Netfilter core team
<4>ipt_time loading
<6>NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
<6>NET4: Ethernet Bridge 008 for NET4.0
<5>Bridge firewalling registered
<4>VFS: Mounted root (cramfs filesystem) readonly.
<4>Freeing init memory: 48K
<4>name: Libertas AP-32 compressed kernel
<4>name: Libertas AP-32 romfs root file system
<4>name: Libertas AP-32 jffs2 file system
<7>ip_conntrack_pptp.c:init: ip_conntrack_pptp.c: registering helper
<4>ip_conntrack_pptp version 1.9 loaded
<4>ASSERT ip_conntrack_core.c:630 &ip_conntrack_lock not readlocked
<4>ip_nat_pptp version 1.5 loaded
<4>QD initiated
<7>mvWLAN_crypt: registered algorithm 'WEP'
<7>mvWLAN_crypt: registered algorithm 'TKIP'
<7>mvWLAN_hw_init()
<7>mvWLAN: Registered netdevice wlan0
<7>wlan0: enabling hostapd mode
<7>wlan0: Registered netdevice wlan0ap for AP management
<7>wlan0: Registered netdevice wlan0sta for STA use
<7>wlan0: mvWLAN_open
<7>wlan0ap: mvWLAN_open
<6>device LAN entered promiscuous mode
<6>device wlan0 entered promiscuous mode
<6>wlan0: attempt to add interface with same source address.
<6>br0: port 2(wlan0) entering learning state
<6>br0: port 1(LAN) entering learning state
<6>br0: port 2(wlan0) entering forwarding state
<6>br0: topology change detected, propagating
<6>br0: port 1(LAN) entering forwarding state
<6>br0: topology change detected, propagating
/> mount
rootfs on / type rootfs (rw)
/dev/mtdblock1 on / type cramfs (ro)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
/>
/> ls -l /dev
crwxrwxrwx    1 0        0          5,   1 Jan  1 00:00 console
crwxrwxrwx    1 0        0          5,  64 Jan  1 00:03 cua0
crwxrwxrwx    1 0        0          5,  65 Jan  1 00:00 cua1
drwxrwxrwx    1 0        0              72 Jan  1 00:00 gpio
crwxrwxrwx    1 0        0          1,   2 Jan  1 00:00 kmem
crwxrwxrwx    1 0        0        244,   0 Jan  1 00:00 led0
crwxrwxrwx    1 0        0        244,   1 Jan  1 00:00 led1
crwxrwxrwx    1 0        0        244,   2 Jan  1 00:00 led2
crwxrwxrwx    1 0        0        244,   3 Jan  1 00:00 led3
crwxrwxrwx    1 0        0        244,   4 Jan  1 00:00 led4
lrwxrwxrwx    1 0        0              12 Jan  1 00:00 log -> /var/tmp/log
crwxrwxrwx    1 0        0          1,   1 Jan  1 00:00 mem
crwxrwxrwx    1 0        0         90,   0 Jan  1 00:00 mtd0
crwxrwxrwx    1 0        0         90,   2 Jan  1 00:00 mtd1
crwxrwxrwx    1 0        0         90,   4 Jan  1 00:00 mtd2
crwxrwxrwx    1 0        0         90,   6 Jan  1 00:00 mtd3
crwxrwxrwx    1 0        0         90,   8 Jan  1 00:00 mtd4
crwxrwxrwx    1 0        0         90,  10 Jan  1 00:00 mtd5
brwxrwxrwx    1 0        0         31,   0 Jan  1 00:00 mtdblock0
brwxrwxrwx    1 0        0         31,   1 Jan  1 00:00 mtdblock1
brwxrwxrwx    1 0        0         31,   2 Jan  1 00:04 mtdblock2
brwxrwxrwx    1 0        0         31,   3 Jan  1 00:04 mtdblock3
brwxrwxrwx    1 0        0         31,   4 Jan  1 00:00 mtdblock4
brwxrwxrwx    1 0        0         31,   5 Jan  1 00:00 mtdblock5
crwxrwxrwx    1 0        0         90,   1 Jan  1 00:00 mtdr0
crwxrwxrwx    1 0        0         90,   3 Jan  1 00:00 mtdr1
crwxrwxrwx    1 0        0         90,   5 Jan  1 00:00 mtdr2
crwxrwxrwx    1 0        0         90,   7 Jan  1 00:00 mtdr3
crwxrwxrwx    1 0        0         90,   9 Jan  1 00:00 mtdr4
crwxrwxrwx    1 0        0         90,  11 Jan  1 00:00 mtdr5
crwxrwxrwx    1 0        0          1,   3 Jan  1 00:00 null
crwxrwxrwx    1 0        0        254,   0 Jan  1 00:00 nvram
crwxrwxrwx    1 0        0        108,   0 Jan  1 00:00 ppp
crwxrwxrwx    1 0        0        108,   0 Jan  1 00:00 ppp0
crwxrwxrwx    1 0        0          2,   0 Jan  1 00:00 ptyp0
crwxrwxrwx    1 0        0          2,   1 Jan  1 00:06 ptyp1
crwxrwxrwx    1 0        0          2,   2 Jan  1 00:00 ptyp2
crwxrwxrwx    1 0        0          2,   3 Jan  1 00:00 ptyp3
crwxrwxrwx    1 0        0          2,   4 Jan  1 00:00 ptyp4
crwxrwxrwx    1 0        0          2,   5 Jan  1 00:00 ptyp5
crwxrwxrwx    1 0        0          2,   6 Jan  1 00:00 ptyp6
crwxrwxrwx    1 0        0          2,   7 Jan  1 00:00 ptyp7
crwxrwxrwx    1 0        0          2,   8 Jan  1 00:00 ptyp8
crwxrwxrwx    1 0        0          2,   9 Jan  1 00:00 ptyp9
crwxrwxrwx    1 0        0          2,  10 Jan  1 00:00 ptypa
crwxrwxrwx    1 0        0          2,  11 Jan  1 00:00 ptypb
crwxrwxrwx    1 0        0          2,  12 Jan  1 00:00 ptypc
crwxrwxrwx    1 0        0          2,  13 Jan  1 00:00 ptypd
crwxrwxrwx    1 0        0          2,  14 Jan  1 00:00 ptype
crwxrwxrwx    1 0        0          2,  15 Jan  1 00:00 ptypf
brwxrwxrwx    1 0        0          1,   0 Jan  1 00:00 ram0
brwxrwxrwx    1 0        0          1,   1 Jan  1 00:00 ram1
crwxrwxrwx    1 0        0          1,   8 Jan  1 00:00 random
brwxrwxrwx    1 0        0         31,   0 Jan  1 00:00 rom0
brwxrwxrwx    1 0        0         31,   1 Jan  1 00:00 rom1
brwxrwxrwx    1 0        0         31,   2 Jan  1 00:00 rom2
brwxrwxrwx    1 0        0         31,   3 Jan  1 00:00 rom3
brwxrwxrwx    1 0        0         31,   4 Jan  1 00:00 rom4
brwxrwxrwx    1 0        0         31,   5 Jan  1 00:00 rom5
brwxrwxrwx    1 0        0         31,   6 Jan  1 00:00 rom6
brwxrwxrwx    1 0        0         31,   7 Jan  1 00:00 rom7
brwxrwxrwx    1 0        0         31,   8 Jan  1 00:00 rom8
brwxrwxrwx    1 0        0         31,   9 Jan  1 00:00 rom9
crwxrwxrwx    1 0        0          5,   0 Jan  1 00:00 tty
crwxrwxrwx    1 0        0          4,   0 Jan  1 00:00 tty0
crwxrwxrwx    1 0        0          4,   1 Jan  1 00:00 tty1
crwxrwxrwx    1 0        0          4,   2 Jan  1 00:00 tty2
crwxrwxrwx    1 0        0          4,   3 Jan  1 00:00 tty3
crwxrwxrwx    1 0        0          4,  64 Jan  1 00:00 ttyS0
crwxrwxrwx    1 0        0          4,  65 Jan  1 00:00 ttyS1
crwxrwxrwx    1 0        0          3,   0 Jan  1 00:00 ttyp0
crwxrwxrwx    1 0        0          3,   1 Jan  1 00:04 ttyp1
crwxrwxrwx    1 0        0          3,   2 Jan  1 00:00 ttyp2
crwxrwxrwx    1 0        0          3,   3 Jan  1 00:00 ttyp3
crwxrwxrwx    1 0        0          3,   4 Jan  1 00:00 ttyp4
crwxrwxrwx    1 0        0          3,   5 Jan  1 00:00 ttyp5
crwxrwxrwx    1 0        0          3,   6 Jan  1 00:00 ttyp6
crwxrwxrwx    1 0        0          3,   7 Jan  1 00:00 ttyp7
crwxrwxrwx    1 0        0          3,   8 Jan  1 00:00 ttyp8
crwxrwxrwx    1 0        0          3,   9 Jan  1 00:00 ttyp9
crwxrwxrwx    1 0        0          3,  10 Jan  1 00:00 ttypa
crwxrwxrwx    1 0        0          3,  11 Jan  1 00:00 ttypb
crwxrwxrwx    1 0        0          3,  12 Jan  1 00:00 ttypc
crwxrwxrwx    1 0        0          3,  13 Jan  1 00:00 ttypd
crwxrwxrwx    1 0        0          3,  14 Jan  1 00:00 ttype
crwxrwxrwx    1 0        0          3,  15 Jan  1 00:00 ttypf
crwxrwxrwx    1 0        0          1,   9 Jan  1 00:00 urandom
crwxrwxrwx    1 0        0          1,   5 Jan  1 00:00 zero
/>
/> ls -l /bin
-rw-r--r--    1 0        0               2 Jan  1 00:06 1
-rwxr--r--    1 0        0           71392 Jan  1 00:06 bpalogin
-rwxr--r--    1 0        0           51444 Jan  1 00:00 brctl
-rwxr--r--    1 0        0          185112 Jan  1 00:00 busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 cat -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:04 cp -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 date -> busybox
-rwxr-xr-x    1 0        0           63056 Jan  1 00:00 dproxy
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 du -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 echo -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 env -> busybox
-rwxr--r--    1 0        0          141868 Jan  1 00:00 ez-ipupdate
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 false -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 grep -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 hostname -> busybox
-rwxr--r--    1 0        0          190608 Jan  1 00:00 httpd
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 ifconfig -> busybox
-rwxr--r--    1 0        0           39584 Jan  1 00:00 inetd
-rwxr--r--    1 0        0           44740 Jan  1 00:00 infosvr
-rwxr--r--    1 0        0          178728 Jan  1 00:00 insmod
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 kill -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 killall -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 klogd -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:03 ls -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 lsmod -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 mkdir -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 mount -> busybox
-rwxr--r--    1 0        0          151756 Jan  1 00:00 mvapd
-rwxr--r--    1 0        0           56888 Jan  1 00:00 mvmfgd
-rwxr--r--    1 0        0           65692 Jan  1 00:00 ntpclient
-rwxr--r--    1 0        0           33816 Jan  1 00:00 nvram
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 ping -> busybox
-rwxr-xr-x    1 0        0          289876 Jan  1 00:00 pppd
-rwxr-xr-x    1 0        0           75728 Jan  1 00:00 pppoe
-rwxr-xr-x    1 0        0           66824 Jan  1 00:00 pppoe-relay
-rwxr--r--    1 0        0           81112 Jan  1 00:00 pptp
-rwxr--r--    1 0        0           61596 Jan  1 00:00 pptp_callmgr
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 ps -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 rm -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 rmmod -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 route -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 sed -> busybox
-rwxr--r--    1 0        0           83912 Jan  1 00:00 sh
-rwxr--r--    1 0        0           74652 Jan  1 00:00 snmpd
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 syslogd -> busybox
-rwxr--r--    1 0        0           54820 Jan  1 00:00 telnetd
-rwxr-xr-x    1 0        0           37524 Jan  1 00:00 test
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 traceroute -> busybox
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 true -> busybox
lrwxrwxrwx    1 0        0               6 Jan  1 00:00 udhcpc -> udhcpd
-rwxr--r--    1 0        0           72700 Jan  1 00:00 udhcpd
lrwxrwxrwx    1 0        0               7 Jan  1 00:00 umount -> busybox
-rwxr--r--    1 0        0          197144 Jan  1 00:00 upnp
/> busybox
BusyBox v0.60.4 (2004.06.01-23:28+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use, and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        busybox, cat, cp, du, echo, env, false, hostname, ifconfig, insmod,
        kill, killall, klogd, logread, ls, lsmod, mkdir, mount, nslookup,
        ping, ps, reboot, rm, rmmod, route, sleep, syslogd, traceroute,
        true, umount, which

/> ls -l /etc
drwxr-xr-x    1 0        0              24 Jan  1 00:00 config
lrwxrwxrwx    1 0        0              19 Jan  1 00:07 hostapd.accept -> /tmp/hostapd.accept
lrwxrwxrwx    1 0        0              17 Jan  1 00:07 hostapd.conf -> /tmp/hostapd.conf
lrwxrwxrwx    1 0        0              17 Jan  1 00:00 hostapd.deny -> /tmp/hostapd.deny
lrwxrwxrwx    1 0        0              10 Jan  1 00:00 hosts -> /tmp/hosts
-rw-r--r--    1 0        0              87 Jan  1 00:00 inetd.conf
-rw-r--r--    1 0        0             144 Jan  1 00:00 mfg_data
lrwxrwxrwx    1 0        0               8 Jan  1 00:00 ppp -> /tmp/ppp
lrwxrwxrwx    1 0        0              16 Jan  1 00:00 resolv.conf -> /tmp/resolv.conf
-rw-r--r--    1 0        0            8267 Jan  1 00:00 services
drwxr-xr-x    1 0        0              76 Jan  1 00:00 temp
/> ls -l /garbage
-rwxr--r--    1 0        0          157208 Jan  1 00:00 iptables
-rwxr-xr-x    1 0        0          531244 Jan  1 00:00 zImage
/> ls -l /lib
drwxr-xr-x    1 0        0             240 Jan  1 00:00 modules
/> ls -l /lib/modules/
-rw-r--r--    1 0        0            4616 Jan  1 00:00 gpio.o
-rw-r--r--    1 0        0          205828 Jan  1 00:00 ip_conntrack_pptp.o
-rw-r--r--    1 0        0          148636 Jan  1 00:00 ip_conntrack_proto_gre.o
-rw-r--r--    1 0        0          191116 Jan  1 00:00 ip_nat_pptp.o
-rw-r--r--    1 0        0          139996 Jan  1 00:00 ip_nat_proto_gre.o
-rwxr-xr-x    1 0        0          235172 Jan  1 00:00 mvwlan.o
-rw-r--r--    1 0        0            8572 Jan  1 00:00 nvram_linux.o
-rwxr-xr-x    1 0        0           18098 Jan  1 00:00 nvram_mod.o
-rw-r--r--    1 0        0           77655 Jan  1 00:00 unimac.o
/>
/bin> ps -ef
  PID TTY     Uid        Size State Command
    1         0              0   S   init
    2         0              0   S   [keventd]
    3         0              0   S   [ksoftirqd_CPU0]
    4         0              0   S   [kswapd]
    5         0              0   S   [bdflush]
    6         0              0   S   [kupdated]
    7         0              0   S   [mtdblockd]
   17         0              0   S   mvapd /tmp/hostapd.conf
   24         0              0   S   httpd
   25         0              0   S   inetd
   26         0              0   S   infosvr br0
   27         0              0   S   watchdog
   28         0              0   S   ntp
   71         0              0   R   /bin/telnetd
   72 ttyp1   0              0   R   sh
 2079 ttyp1   0              0   R   ps -ef
/bin>
/etc> cat inetd.conf
telnet  stream tcp nowait root /bin/telnetd
mvmfg   dgram  udp wait   root /bin/mvmfgd
/etc>