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>
