A couple months back i bought a
R100 and it has been great unit setup in AP mode. I bought the R100 from
Deals Direct
Key Features• Share your broadband Internet connection
• User friendly web browser setup and management
• High performance IEEE 802.11b/g 54Mbps wireless transmissions
• Control Internet Access through keyword and website blocking
• Protect your wireless network from intrusion with 64/128 bit WEP and WPA encryption
• Multifunction USB port for printer sharing, FTP site or Web camera
• Fully functional router with built-in 4-port 10/100Mbps Ethernet Switch
With doing some research I have found out that the preinstalled firmware is a linux based. The R100 firmware is made up of
GNU GPL software
• The Linux operating system kernel
• The iptables packet filter and NAT software
• The busybox swiss army knife of embedded linux
• The zebra routing daemon implementation
• The udhcpd DHCP client/server implementation
• The pptp-linux PPTP client implementation
• The rp-pppoe PPPoE client implementation
• The pppd PPP daemon implementation
• The dproxy DNS proxy implementation
• The bridge-utils package
The source code including any scripts to control compilation and installation of the firmware is available on request from
Mitsubishi Electric AustraliaThe R100 can also be reflashed to have
OpenWRT firmware installed on it instead of the above default firmware. OpenWRT is
Quote:
OpenWrt is described as a Linux distribution for embedded devices.
Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developer, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
On the
OpenWRT web site says that the R100 is a Rebadged
Asus WL-500g.
So the internal hardware specs of the R100 would then be
• Platform & Frequency: Broadcom 4710 @ 125MHz
• Flash: 4MB
• RAM: 16MB
• Wireless NIC: Broadcom (mini-PCI)
• Switch: BCM5325
• boot_wait: on
• Serial: No UART
• JTAG: No
• USB: 1x v1.1
• HDD: No
Some people have been replacing the Broadcom mini-PCI card with Prism 2511M, Atheros CM9, Sr2, Sr5, mini-PCI cards for 802.11a or Better Sensitivity and Transmission Power.
There is also an entire forum dedicated to hacking this unit at
http://wl500g.info/Howto upgrade to OpenWrtQuote:
Use this mini howto at your own risk
• Get the file named openwrt-brcm-2.4-squashfs.trx from the OpenWrt web site, this is the trx file for writing to the flash.
• Plug the computer and the R100 together with a LAN cable, in the LAN of the R100.
• Ensure you can ping the R100.
• Pull the power plug, press and hold the reset button, plug power to the device and wait until the PWR LED starts flashing slowly (almost immediately). Now release the reset button and upload the firmware by TFTP using the following commandssudo arp -s 192.168.1.1 xx:xx:xx:xx:xx:xx
(replace xx:xx:xx:xx:xx:xx with the MAC address of your unit as on the sticker on the bottom).
tftp 192.168.1.1
tftp> binary
tftp> trace
tftp> get ASUSSPACELINKaaaa /dev/null
tftp> put openwrt-brcm-2.4-squashfs.trx ASUSSPACELINKaaaa
• After this, wait until the PWR LED stops flashing and the device to reboot and you should be set.
OpenWrt ScreenshotsInfo for the curiousNVRAM OutputSome the info below has been censored
root@OpenWrt:~# nvram show | sort | less
size: 1105 bytes (31663 left)
boardnum=asusX
boardtype=bcm94710dev
boot_wait=on
clkfreq=125
dl_ram_addr=a0001000
et0macaddr=00:00:00:00:00:00
et0mdcport=0
et0phyaddr=30
et1macaddr=00:00:00:00:00:00
et1mdcport=1
et1phyaddr=0
hardware_version=WL500-02-02-01-00
lan_dhcp_enabled=1
lan_dhcp_lease=
lan_dhcp_num=
lan_dhcp_start=
lan_dns=XXX.XXX.XXX.XXX
lan_gateway=XXX.XXX.XXX.XXX
lan_ifname=br0
lan_ifnames=eth0 eth2
lan_ipaddr=XXX.XXX.XXX.XXX
lan_netmask=255.255.255.0
lan_proto=static
ntp_server=time.esec.com.au
os_flash_addr=bfc40000
os_ram_addr=80001000
pmon_ver=PMON 3.11.19.0
regulation_domain=0X30DE
scratch=a0180000
sdram_config=0x0000
sdram_init=0x0419
sdram_ncdl=0x00000000
sdram_refresh=0x8040
time_zone=CST-9:30CDT-10:30,M10.5.0/02:00:00,M3.5.0/03:00:00
vlan0ports=1 2 3 4 5*
vlan1ports=0 5
wan_device=vlan1
wan_dhcp_lease=
wan_dhcp_num=
wan_dhcp_start=
wan_ifname=eth1
wan_proto=none
watchdog=3000
wifi_dhcp_lease=
wifi_dhcp_num=
wifi_dhcp_start=
wl0_akm=psk
wl0_channel=1
wl0_closed=0
wl0_crypto=tkip
wl0_ifname=eth2
wl0_infra=1
wl0_mode=ap
wl0_radio=1
wl0_ssid=SomeSSID
wl0_wep=disabled
wl0_wpa_psk=TopSecret
CPUINFO
root@OpenWrt:~# cat /proc/cpuinfo
system type : Broadcom BCM947XX
processor : 0
cpu model : BCM4710 V0.0
BogoMIPS : 82.94
wait instruction : no
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : no
hardware watchpoint : no
VCED exceptions : not available
VCEI exceptions : not available
DMESG Output
root@OpenWrt:~# dmesg
CPU revision is: 00024000
Enabling BCM4710A0 cache workarounds.
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, linesize 16 bytes.
Linux version 2.4.30 (nbd@ds10) (gcc version 3.4.4 (OpenWrt-1.0)) #1 Sat Feb 3 13:16:08 CET 2007
Setting the PFC value as 0x15
Determined physical RAM map:
memory: 01000000 @ 00000000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
CPU: BCM4710 rev 0 at 125 MHz
Using 62.400 MHz high precision timer.
!unable to setup serial console!
Calibrating delay loop... 82.94 BogoMIPS
Memory: 14228k/16384k available (1455k kernel code, 2156k reserved, 104k data, 80k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction... unavailable.
POSIX conformance testing by UNIFIX
PCI: Fixing up bus 0
PCI: Fixing up bridge
PCI: Setting latency timer of device 01:00.0 to 64
PCI: Fixing up bus 1
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Registering mini_fo version $Id$
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
Squashfs 2.1-r2 (released 2004/12/15) (C) 2002-2004 Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
b44.c:v0.93 (Mar, 2004)
PCI: Setting latency timer of device 00:02.0 to 64
eth0: Broadcom 47xx 10/100BaseT Ethernet 00:00:00:00:00:00
PCI: Setting latency timer of device 00:08.0 to 64
eth1: Broadcom 47xx 10/100BaseT Ethernet 00:00:00:00:00:00
Amd/Fujitsu Extended Query Table v1.0 at 0x0040
Physically mapped flash: JEDEC Device ID is 0xCA. Assuming broken CFI table.
Physically mapped flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x400000 at 0x1fc00000
bootloader size: 262144
Physically mapped flash: Filesystem type: squashfs, size=0xfe163
Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "cfe"
0x00040000-0x003f0000 : "linux"
0x000be400-0x001c0000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x001c0000-0x003f0000 : "OpenWrt"
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 332 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 80k freed
Warning: unable to open an initial console.
Algorithmics/MIPS FPU Emulator v1.5
diag: Detected 'ASUS WL-500g'
Probing device eth0: No Robo switch in managed mode found
Probing device eth1: No Robo switch in managed mode found
Probing device eth2: No such device
Probing device eth3: No such device
BFL_ENETADM not set in boardflags. Use force=1 to ignore.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
jffs2.bbc: SIZE compression mode activated.
PCI: Setting latency timer of device 01:02.0 to 64
PCI: Enabling device 01:02.0 (0004 -> 0006)
eth2: Broadcom BCM4320 802.11 Wireless Controller 3.90.37.0
Probing device eth0: No Robo switch in managed mode found
Probing device eth1: No Robo switch in managed mode found
Probing device eth2: [switch-robo.c:90] SIOCGETCPHYRD failed!
[switch-robo.c:90] SIOCGETCPHYRD failed!
No Robo switch in managed mode found
Probing device eth3: No such device
BFL_ENETADM not set in boardflags. Use force=1 to ignore.
device eth0 entered promiscuous mode
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
device eth2 entered promiscuous mode
eth2: attempt to add interface with same source address.
br0: port 2(eth2) entering learning state
br0: port 1(eth0) entering learning state
br0: port 2(eth2) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth0) entering forwarding state
br0: topology change detected, propagating
PCI
root@OpenWrt:~# cat /proc/pci
PCI devices found:
Bus 0, device 0, function 0:
Class 0500: PCI device 14e4:0803 (rev 0).
IRQ 6.
Non-prefetchable 32 bit memory at 0x18000000 [0x18000fff].
Non-prefetchable 32 bit memory at 0x0 [0x7ffffff].
Non-prefetchable 32 bit memory at 0x10000000 [0x17ffffff].
Non-prefetchable 32 bit memory at 0x80000000 [0xffffffff].
Bus 0, device 1, function 0:
Class 0200: PCI device 14e4:4711 (rev 0).
IRQ 5.
Non-prefetchable 32 bit memory at 0x18001000 [0x18001fff].
Bus 0, device 2, function 0:
Class 0200: PCI device 14e4:4713 (rev 0).
IRQ 3.
Master Capable. Latency=64.
Non-prefetchable 32 bit memory at 0x18002000 [0x18002fff].
Bus 0, device 3, function 0:
Class 0703: PCI device 14e4:4712 (rev 0).
IRQ 2.
Non-prefetchable 32 bit memory at 0x18003000 [0x18003fff].
Bus 0, device 4, function 0:
Class 0c03: PCI device 14e4:4715 (rev 0).
IRQ 2.
Non-prefetchable 32 bit memory at 0x18004000 [0x18004fff].
Bus 0, device 5, function 0:
Class 0604: PCI device 14e4:0804 (rev 0).
IRQ 6.
Non-prefetchable 32 bit memory at 0x18005000 [0x18005fff].
Non-prefetchable 32 bit memory at 0x8000000 [0xfffffff].
Bus 0, device 6, function 0:
Class 0b30: PCI device 14e4:0805 (rev 0).
IRQ 6.
Non-prefetchable 32 bit memory at 0x18006000 [0x18006fff].
Non-prefetchable 32 bit memory at 0xff200000 [0xff3fffff].
Bus 0, device 7, function 0:
Class 0501: PCI device 14e4:0811 (rev 0).
IRQ 2.
Non-prefetchable 32 bit memory at 0x18007000 [0x18007fff].
Non-prefetchable 32 bit memory at 0x1f000000 [0x1fffffff].
Bus 0, device 8, function 0:
Class 0200: PCI device 14e4:4713 (rev 0).
IRQ 4.
Master Capable. Latency=64.
Non-prefetchable 32 bit memory at 0x18008000 [0x18008fff].
Bus 1, device 0, function 0:
Class 0600: PCI device 14e4:4710 (rev 1).
IRQ 6.
Master Capable. Latency=64.
Non-prefetchable 32 bit memory at 0x40000000 [0x40001fff].
Prefetchable 32 bit memory at 0x0 [0x7ffffff].
Bus 1, device 2, function 0:
Class 0280: PCI device 14e4:4320 (rev 3).
IRQ 6.
Master Capable. Latency=64.
Non-prefetchable 32 bit memory at 0x40002000 [0x40003fff].
Further Reading•
http://www.air-stream.org.au/node/902•
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500G•
http://wiki.openwrt.org/CategoryHowTo?action=show&redirect=OpenWrtHowTo•
http://macsat.com/OpenWRT/InstallOpenWRT.php