Buffalo WBMR-G54

The Buffalo WBMR-G54 is a residential ADSL2+ router modem with 4 Fast Ethernet ports and a 802.11b/g access point.

Supported Versions

Version/Model Launch Date S/N OpenWrt Version Supported Model Specific Notes
v1 - - 12.09 -

Hardware Highlights

CPU Ram Flash Network USB Serial JTag
Infineon PSB7300AZDW@150MHz 16MiB 4MiB 4 x 1 No Yes ?

Installation

Use the Attitude Adjustment (12.09) generic image for the TI AR7 chips (openwrt-ar7-squashfs.bin).

Flash Layout

Please check out the article Flash Layout. It contains an example and a couple of explanations.

OEM easy installation

OEM installation using the FTP method

It is advised to first take a look at this document regarding flashing a generic device to understand the general concepts. If the device is connected via the serial port (see the Serial section of this page), more information about the process can be seen.

This process becomes easier to perform if the serial connection of the device is connected to the computer, this way the process can be monitored.

The bootloader of the WBMR-G54, Adam2, waits for 7 seconds before starting to load the operating system:

ADAM2 Revision 0.22.02_b04_Mar  9 2005
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!

Adam2_AR7RD > 
Press any key to abort OS load, or wait 7 seconds for OS to boot...

This countdown is stopped if a key is pressed through the serial connection, or if an FTP session is initiated to the device.

Specific values you need

Adam2 bootloader default IPv4 address 192.168.1.1 or 5.8.8.8
Adam2 bootloader FTP user adam2
Adam2 bootloader FTP password adam2
FTP client IPv4 address (your computer) Anything in the 192.168.1.0/24 range*

* of course, your computer must not have the same IP address as the router, so anything between 192.168.1.2 and 192.168.1.254 is fine (resp. 5.8.8.9 to 5.8.8.254)

Procedure

0) Download original firmware

It's not possible to download an original firmware image from Buffalo's website. So you'll need to get it from your own device, in case you ever want to reinstall it.

I tried the thttpd method, but the device would hang hard whenever I tried to retrieve a large file (mtd0 or mtd4 contents). So I used Busybox TFTP client instead.

After the device had booted, my laptop got the IP address 192.168.11.5 from its DHCP server. I started tftpd on the laptop:

sudo apt-get install tftpd-hpa
sudo mkdir -p /var/lib/tftpboot/uploads
sudo chmod a+w /var/lib/tftpboot/uploads
sudo /usr/sbin/in.tftpd -L  --user tftp --address 0.0.0.0:69 --secure --create /var/lib/tftpboot

And then connected to the Buffalo and asked it to send each file by TFTP:

chris@lap-x201:~/projects/openwrt$ telnet 192.168.11.1
Trying 192.168.11.1...
Connected to 192.168.11.1.
Escape character is '^]'.

BusyBox on (none) login: admin
Password: admin

# tftp -p -l /dev/mtdblock/0 -r uploads/mtd0.bin 192.168.11.5
# tftp -p -l /dev/mtdblock/1 -r uploads/mtd1.bin 192.168.11.5
tftp: read: Input/output error
# tftp -p -l /dev/mtdblock/2 -r uploads/mtd2.bin 192.168.11.5
# tftp -p -l /dev/mtdblock/3 -r uploads/mtd3.bin 192.168.11.5
# tftp -p -l /dev/mtdblock/4 -r uploads/mtd4.bin 192.168.11.5

For some reason I can't get the whole of mtd1. I don't know whether it matters. I suspect it's because mtd1 isn't aligned on a block boundary:

Looking for mtd device :mtd0:
Found a mtd0 image (0x91000), with size (0x35f000).
Creating 1 MTD partitions on "Physically mapped flash:0":
0x00091000-0x003f0000 : "mtd0"
mtd: partition "mtd0" doesn't start on an erase block boundary -- force read-only
Looking for mtd device :mtd1:
Found a mtd1 image (0x10090), with size (0x7ff70).
Creating 1 MTD partitions on "Physically mapped flash:0":
0x00010090-0x00090000 : "mtd1"
mtd: partition "mtd1" doesn't start on an erase block boundary -- force read-only
Looking for mtd device :mtd2:
Found a mtd2 image (0x0), with size (0x10000).
Creating 1 MTD partitions on "Physically mapped flash:0":
0x00000000-0x00010000 : "mtd2"
Looking for mtd device :mtd3:
Found a mtd3 image (0x3f0000), with size (0x10000).
Creating 1 MTD partitions on "Physically mapped flash:0":
0x003f0000-0x00400000 : "mtd3"
Looking for mtd device :mtd4:
Found a mtd4 image (0x10000), with size (0x3e0000).
Creating 1 MTD partitions on "Physically mapped flash:0":
0x00010000-0x003f0000 : "mtd4"

1) Power off the device

Simply unplug it.

2) Set your computer's Ethernet connection at 10 Mb/s, half duplex.

For some reason, it seems that setting this configuration leads to more probable flashing success. In any case, it will only slow down things a little bit. In Windows, this can be done in the Control Panel. In GNU/Linux distributions, install the "ethtool" package and issue, as root:

ethtool -s eth0 speed 10 duplex half

If you are using another interface (eth1, eth2, …) just replace eth0 with your settings.

3) Configure your computer's network device

Use the values above and apply them to your network card. For instance in GNU/Linux, as root:

ifconfig eth0 192.168.1.10/24

4) Go to the directory where the .img file is

In GNU/Linux, for instance:

cd /home/mysuer/Downloads

5) Power on the device and initiate an FTP session.

For some unknown reason it seems that in GNU/Linux the process is more prone tu succeed if the FTP session is initiated as root, so log in as root (issue the "su" command or "sudo su", according to your system.

Plug in the power supply to turn on the router. Then you have 7 seconds to start the FTP session:

ftp 192.168.1.1

If the FTP session is correctly initialized, you will be prompted for the username:

Connected to 192.168.1.1.
220 ADAM2 FTP Server ready.
Name (192.168.1.1:user):

Type "adam2" and press Enter. You will be prompted for the password: type "adam2" and press Enter:

Connected to 192.168.1.1.
220 ADAM2 FTP Server ready.
Name (192.168.1.1:user): adam2
331 Password required for adam2.
Password: *****
230 User adam2 successfully logged in.
Remote system type is UNIX.

Now you have an FTP session established with the router.

6) Upload the firmware

To start uploading the firmware, issue these commands:

quote "SETENV mtd1,0x90010000,0x903f0000"
quote "MEDIA FLSH"
binary
debug
hash
put "openwrt-ar7-squashfs.bin" "openwrt-ar7-squashfs.bin mtd4"

The process should look like this:

ftp> quote "SETENV mtd1,0x90010000,0x903f0000"
200 SETENV command successful
ftp> quote "MEDIA FLSH"
200 Media set to FLSH.
ftp> binary
200 Type set to I.
ftp> debug
Debugging on (debug=1).
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
ftp> put "openwrt-ar7-squashfs.bin" "openwrt-ar7-squashfs.bin mtd4"
local: trunk-web.bin remote: openwrt-ar7-squashfs.bin mtd4
---> PORT 192,168,1,100,179,221
200 Port command successful.
---> STOR openwrt-ar7-squashfs.bin mtd4

Now the firmware is being uploaded to the flash memory of the router. The process takes around one minute

7) Wait for the firmware to be written to the flash

After one minute of uploading and writing the firmware to the flash memory, the router starts to check it. The FTP transfer window will start showing lots of

#, like this:

150 Opening BINARY mode data connection for file transfer.
################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
226 Transfer complete.
2883588 bytes sent in 38.27 secs (73.6 kB/s)

If after 2 or 3 minutes you see no hashes, just a few of them appear but they stop without printing the "226 Transfer complete." message, then something wrong happened (most probably, the image you tried to upload was not the right one). Go to step 1 and repeat the process, double checking you are uploading the right file. Retrying should not damage the device nor brick it.

I found that Dropbox UDP packets going out on the ethernet interface were causing ADAM to get confused and stop the transfer in the middle of flashing. I had to use iptables to prevent all traffic not destined to ADAM from going out on the Ethernet interface to flash successfully.

If you see all the hashes and the "226 Transfer complete." message, the firmware has been successfully uploaded. The device should reboot itself immediately, but you can issue the following commands to reboot it and terminate the FTP session:

quote REBOOT
quit

After flashing the firmware and rebooting the device, do not change the IP address on the computer. In a minute or so you should be able to ping 192.168.1.1.

Upgrading OpenWrt

LuCI Web Upgrade Process

Terminal Upgrade Process

Bootlogs

OEM bootlog

ADAM2 Revision 0.22.02_b04_Mar 9 2005 (C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved. (C) Copyright 2003 Telogy Networks, Inc. Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz] Memory optimization Complete! Adam2_AR7RD > Press any key to abort OS load, or wait 7 seconds for OS to boot... Adam2_AR7RD > printenv memsize 0x01000000 flashsize 0x00400000 modetty0 38400,n,8,1,hw modetty1 38400,n,8,1,hw bootserport tty0 cpufrequency 150000000 sysfrequency 125000000 bootloaderVersion 0.22.02 Adam2_Release 0.22.02_b04_Mar 9 2005 ProductID AR7RD HWRevision Unknown SerialNumber 00:16:01:A1:39:77 my_ipaddress 5.8.8.8 prompt Adam2_AR7RD firstfreeaddress 0x9401d888 req_fullrate_freq 125000000 maca 00:16:01:A1:39:77 mtd0 0x90091000,0x903f0000 mtd1 0x90010090,0x90090000 mtd2 0x90000000,0x90010000 mtd3 0x903f0000,0x90400000 autoload 1 pppoe_sid 0 pppoe_dmac 0:0:0:0:0:0 mtd4 0x90010000,0x903f0000 autoload_timeout 7 StaticBuffer 120 vcc_encaps0 0.0 vcc_encaps1 0.0 vcc_encaps2 0.0 vcc_encaps3 0.0 vcc_encaps4 0.0 vcc_encaps5 0.0 vcc_encaps6 0.0 vcc_encaps7 0.0 connection0 0 mac_ap 00:16:01:A1:39:76 SW_FEATURES 0XC000 modulation 0xffff eoc_vendor_id 0x414C504841000000 enable_margin_retrain 1 eoc_vendor_serialnum 00:16:01:A1:39:77_00000000000000 eoc_vendor_revision 20060721 HWA_0 00:15:E9:CE:69:C3 usb_vid 0x0 usb_pid 0x0 usb_man N/A usb_prod N/A invntry_vernum 2006072100000000 Adam2_AR7RD > help Commands Description -------- ----------- h/help Displays the commands supported info Displays board information memop Memory Optimization setmfreq configures/dumps the system and cpu frequencies dm Dump memory at <address> erase Erase Flash except Adam2 Kernel and Env space printenv Displays Env. Variables setenv Sets Env. variable <var> with a value <val> unsetenv Unsets the Env. variable <var> fixenv Defragment for Env. space go Loads the image starting at address <mtd1> Adam2_AR7RD > info Monitor Revision 0.22.02 Monitor Compilation time Mar 9 2005, 12:45:34 Endianness Little External Memory rate Full, 16 bit wide CPU Frequency 150 MHz Adam2_AR7RD > go -\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/ Launching kernel decompressor. Starting LZMA Uncompression Algorithm. Compressed file is LZMA format. Kernel decompressor was successful ... launching kernel. LINUX started... Config serial console: ttyS0,38400 Auto Detection SANGAM chip This SOC has MDIX cababilities on chip. WLAN 1130 chip configured. CONFIG_AVALANCHE_VLYNQ_POLARITY_LOW Success in setting up the VLYNQ. CPU revision is: 00018448 Primary instruction cache 16kb, linesize 16 bytes (4 ways) Primary data cache 16kb, linesize 16 bytes (4 ways) Number of TLB entries 16. Linux version 2.4.17_mvl21-malta-mips_fp_le (justin@TANGO) (gcc version 2.95.3 20010315 (release/MontaVista)) #1 Fri Jul 21 09:59:49 CST 2006 Determined physical RAM map: memory: 14000000 @ 00000000 (reserved) memory: 00020000 @ 14000000 (ROM data) memory: 00fe0000 @ 14020000 (usable) On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: calculating r4koff... 000b71b0(750000) CPU frequency 150.00 MHz Calibrating delay loop... 149.91 BogoMIPS Freeing Adam2 reserved memory [0x14001000,0x0001f000] Memory: 14204k/16384k available (1624k kernel code, 2180k reserved, 127k data, 64k init) 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 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 TI Optimizations: Allocating TI-Cached Memory Pool. Using 120 Buffers for TI-Cached Memory Pool. DEBUG: Using Hybrid Mode. NSP Optimizations: Succesfully allocated TI-Cached Memory Pool. Initializing RT netlink socket Starting kswapd Disabling the Out Of Memory Killer devfs: v1.7 (20011216) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x1 Adam2 environment variables API installed. pty: 32 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with no serial options enabled ttyS00 at 0xa8610e00 (irq = 15) is a 16550A ttyS01 at 0xa8610f00 (irq = 16) is a 16550A Installed misc driver vlynq0: it handles vlynq bridge0 with 1 hop(s). block: 64 slots per queue, batch=16 DEBUG: Initializing the voice port management module. DEBUG: Initialization of the voice port management module successful.. CPMAC Auto Detect Enabled: detected external PHY and external switch as well.. Error getting CPMAC Configuration params for instance:0 Environment Variable:MACCFG_A not set in bootloader Setting Default configuration params for CPMAC instance:0 ##### reg=0, phy=5, ChipID=1023, adm6996_ChipId=1022 ##### Default Asymmetric MTU for eth0 1500 TI CPMAC Linux DDA version 1.8 - CPMAC DDC version 0.2 Cpmac: Installed 1 instances. Cpmac driver is allocating buffer memory at init time. PPP generic driver version 2.4.1 avalanche flash device: 0x400000 at 0x10000000. Amd/Fujitsu Extended Query Table v1.1 at 0x0040 number of CFI chips: 1 Looking for mtd device :mtd0: Found a mtd0 image (0x91000), with size (0x35f000). Creating 1 MTD partitions on "Physically mapped flash:0": 0x00091000-0x003f0000 : "mtd0" mtd: partition "mtd0" doesn't start on an erase block boundary -- force read-only Looking for mtd device :mtd1: Found a mtd1 image (0x10090), with size (0x7ff70). Creating 1 MTD partitions on "Physically mapped flash:0": 0x00010090-0x00090000 : "mtd1" mtd: partition "mtd1" doesn't start on an erase block boundary -- force read-only Looking for mtd device :mtd2: Found a mtd2 image (0x0), with size (0x10000). Creating 1 MTD partitions on "Physically mapped flash:0": 0x00000000-0x00010000 : "mtd2" Looking for mtd device :mtd3: Found a mtd3 image (0x3f0000), with size (0x10000). Creating 1 MTD partitions on "Physically mapped flash:0": 0x003f0000-0x00400000 : "mtd3" Looking for mtd device :mtd4: Found a mtd4 image (0x10000), with size (0x3e0000). Creating 1 MTD partitions on "Physically mapped flash:0": 0x00010000-0x003f0000 : "mtd4" 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 1024) Linux IP multicast router 0.06 plus PIM-SM ip_conntrack version 2.0 (128 buckets, 4096 max) - 364 bytes per conntrack ip_tables: (c)2000 Netfilter core team netfilter PSD loaded - (c) astaro AG NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. NET4: Ethernet Bridge 008 for NET4.0 Initializing the WAN Bridge. Please set the MAC Address for the WAN Bridge. Set the Environment variable 'wan_br_mac'. MAC Address should be in the following format: xx.xx.xx.xx.xx.xx VFS: Mounted root (squashfs filesystem) readonly. Mounted devfs on /dev Freeing unused kernel memory: 64k freed serial console detected. Disabling virtual terminals. console=/dev/tts/0 init started: BusyBox v0.61.pre (2006.07.21-02:02+0000) multi-call binary Starting pid 9, console /dev/tts/0: '/etc/init.d/rcS' Algorithmics/MIPS FPU Emulator v1.5 Reading Standard Configuration File /etc/led.conf Configured 23 states Using /lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/atm/tiatm.o registered device TI Avalanche SAR Sangam detected DSP binary filesize = 356930 bytes tn7dsl_set_modulation : Setting mode to 0xffff Texas Instruments ATM driver: version:[6.00.01.00] Waiting for enter to start '/bin/sh' (pid 32, terminal /dev/tts/0) Please press Enter to activate this console. ###### AOSS: Wait system init time starting ###### *** diap wait system init 35 sec start exec> /usr/bin/cm_logic -m /dev/ticfg -c /etc/config.xml logic: /proc/led_mod/ar7reset: [0] DEMO demo_register vlan vlan_register Logger: Setting remote_loglevel=notice (5) Setting loglevel=notice (5) ############### password=admin ===>bridge set ZIPB_MODE deactive in init ===>bridge set ZIPB_MODE deactive in init ### open dev file result:12 Disable_igmp_snooping_register!!! DEMO demo_init vlan vlan_init httpd_str:/usr/sbin/thttpd -g -d /usr/www -u root -p 80 -c /cgi-bin/* & time_init: syncmode:1, daylight:2, timezone:22 time_init: ntpserver is time.nist.gov Save /proc/ticfg/env to /var/tmp/env.txt for PPPOE_RECONNECT_ISSUE Eth MAC:00:16:01:A1:39:77 init_qos_table at qos module DEMO demo_start tn7dsl_set_modulation : Setting mode to 0xffff Upstream rate has changed(Prev=0, Curr=0). Default Asymmetric MTU for nas0 1500 DEBUG: Registering protocol inspector: 0x94163bf8 for VCC:0x9401ca00 assign_vcc start find dhcpc FIND :module->id:dhcpc0,type:dhcpc /sbin/ifconfig nas0 hw ether 00:16:01:A1:39:77 iptables -A OUTPUT -t mangle -p udp --dport 49152:49156 -j MARK --set-mark 66 iptables -A OUTPUT -t mangle -p udp --dport 5060:5061 -j MARK --set-mark 66 tc qdisc add dev nas0 root handle 66:0 prio bands 8 priomap 4 4 4 4 4 4 4 4 tc qdisc add dev nas0 parent 66:1 pfifo limit 20 tc qdisc add dev nas0 parent 66:2 pfifo limit 20 tc qdisc add dev nas0 parent 66:3 pfifo limit 20 tc qdisc add dev nas0 parent 66:4 pfifo limit 20 tc qdisc add dev nas0 parent 66:5 pfifo limit 20 tc filter add dev nas0 parent 66:0 protocol all prio 3 handle 66 fw classid 66:1 do SNMP now!!! do tr069 now!!! exec> /usr/bin/cm_klogd /dev/klog exec> /sbin/dproxy -c /etc/resolv.conf -d exec> /usr/sbin/wlan/wpa_authenticator exec> /usr/sbin/brctl addbr br0 exec> /usr/sbin/brctl addbr br1 exec> /usr/sbin/demod exec> /usr/sbin/ddnsd exec> /sbin/ifconfig eth0 up exec> /usr/sbin/udhcpc -i nas0 -x exec> /sbin/iptables -I FORWARD -i ! br0 -p icmp --icmp-type echo-request -m state --state NEW -j DROP DDNSD msgget success 0 DDNSD wait order queue exec> /sbin/ifconfig br0 up exec> /sbin/ifconfig br1 up exec> /sbin/iptables -I INPUT -p udp --dport 161 -j ACCEPT ===>bridge ZIPB disable exec> /sbin/iptables -I INPUT -p tcp --dport 8082 -j ACCEPT notify kernel event successful! exec> /sbin/iptables -I INPUT -p igmp -j ACCEPT exec> /sbin/iptables -I FORWARD -p igmp -j ACCEPT exec> /sbin/iptables -I FORWARD -i ! br0 -p udp --dport 520 -j DROP exec> /sbin/iptables -I INPUT -i ! br0 -p udp --dport 67 -j DROP ===>bridge ZIPB disable notify kernel event successful! exec> /sbin/iptables -I FORWARD -i ! br0 -p udp --dport 67 -j DROP exec> /sbin/iptables -I FORWARD -i ! br0 -p udp --dport 53 -j DROP exec> /sbin/iptables -I FORWARD -i ! br0 -p tcp --dport 53 -j DROP exec> /sbin/ifconfig br0 up exec> /sbin/insmod tiap.o exec> /sbin/iptables -I INPUT -i ! br0 -p udp --dport 500 -j ACCEPT exec> /sbin/ifconfig br1 up exec> /usr/sbin/brctl setfilter br0 1 exec> /sbin/iptables -I FORWARD -i ! br0 -p udp --dport 500 -j ACCEPT exec> /sbin/iptables -I FORWARD -i ! br0 -p tcp --dport 20 -j DROP exec> /sbin/ifconfig br0 192.168.11.1 netmask 255.255.255.0 =========open========== gwanip = 0.0.0.0 =========close========== DEMO ddnsd_ctrl msgget success 0 DEMO ddnsd_ctrl read /var/tmp/ddnsd.conf get IP 0.0.0.0 DDNSD msgrcv user UserName pass PassWord host HostName DdnsCB.enable 0 hostIp 0.0.0.0 DDNSD sleep 5 sec DEMO ddnsd_ctrl msgsnd success exec> /sbin/iptables -I FORWARD -i ! br0 -p tcp --dport 21 -j DROP exec> /usr/sbin/brctl setfilter br1 1 exec> /sbin/ifconfig br1 0.0.0.0 exec> /sbin/iptables -I FORWARD -i ! br0 -p tcp --dport 23 -j DROP exec> /usr/sbin/udhcpd /var/tmp/udhcpd.conf exec> /sbin/route add -net 239.0.0.0 netmask 255.0.0.0 metric 1 dev br0 exec> /sbin/iptables -I INPUT 1 -p udp --dport 5060 -j ACCEPT exec> /usr/sbin/brctl addif br0 eth0 exec> /sbin/iptables -I INPUT 1 -p udp --dport 5061 -j ACCEPT exec> /sbin/iptables -t nat -A POSTROUTING -o ! br0 -j MASQUERADE exec> /sbin/iptables -A OUTPUT -o ! br0 -p icmp --icmp-type 3 -j DROP exec> /sbin/iptables -A OUTPUT -o ! br0 -p icmp -m state --state INVALID -j DROP exec> /sbin/iptables -D FORWARD -i ! br0 -m state --state RELATED,ESTABLISHED -j ACCEPT exec> /usr/sbin/udhcpd /var/tmp/udhcpd.conf exec> /usr/sbin/brctl stp br0 off exec> /sbin/iptables -A INPUT -i lo -j ACCEPT exec> /usr/sbin/brctl stp br1 off exec> /sbin/iptables -A INPUT -i ! br0 -j DROP exec> /sbin/iptables -I INPUT -i ! br0 -m state --state RELATED,ESTABLISHED -j ACCEPT exec> /sbin/iptables -I FORWARD -i ! br0 -m state --state RELATED,ESTABLISHED -j ACCEPT exec> /sbin/ifconfig eth0 0.0.0.0 up exec> /sbin/iptables -A FORWARD -i ! br0 -j DROP exec> /sbin/iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360 exec> /usr/sbin/brctl setfilter br0 1 DDNSD wait order queue exec> /sbin/ifconfig wlan0 up exec> /usr/sbin/brctl addif br0 wlan0 exec> /sbin/ifconfig wlan0 0.0.0.0 up AOSS read LAN MAC = 00:16:01:a1:39:77 AOSS read AP MAC = 00:16:01:a1:39:76 AOSS_Cfg_Get: ApEnabled = 1 AOSS_Cfg_Get: Hidden = 0 AOSS_Cfg_Get: AccessType = 0 AOSS_Cfg_Get: Essid = YOUNGLINK AOSS_Cfg_Get: PrivacyType = 1 AOSS_Cfg_Get: WepPrivacyState = 0 AOSS_Cfg_Get: WepAuthType = 2 AOSS_Cfg_Get: KeyType = 1 AOSS_Cfg_Get: DefkeyId = 0 AOSS_Cfg_Get: KeyLen[0] = 5 AOSS_Cfg_Get: KeyValue[0] = MELCO AOSS_Cfg_Get: KeyLen[1] = 0 AOSS_Cfg_Get: KeyValue[1] = AOSS_Cfg_Get: KeyLen[2] = 0 AOSS_Cfg_Get: KeyValue[2] = AOSS_Cfg_Get: KeyLen[3] = 0 AOSS_Cfg_Get: KeyValue[3] = AOSS_Cfg_Get: PskType = 2 AOSS_Cfg_Get: PskValue = ALISON1979 AOSS_Cfg_Get: Interval = 3600 AOSS_Cfg_Get: Cipher = 2 AOSS_Cfg_Get: SecurityLevel = 7 AOSS_Cfg_Get: Ipaddress = 0x010ba8c0 (192.168.11.1) AOSS_Cfg_Get: Netmask = 0x00ffffff (255.255.255.0) AOSS_Cfg_Get: NumClient = 0 AOSS_Cfg_Get: Client[0].StaName = AOSS_Cfg_Get: Client[0].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[0].EncryptLevel = 0 AOSS_Cfg_Get: Client[0].ConnectAllow = 1 AOSS_Cfg_Get: Client[1].StaName = AOSS_Cfg_Get: Client[1].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[1].EncryptLevel = 0 AOSS_Cfg_Get: Client[1].ConnectAllow = 1 AOSS_Cfg_Get: Client[2].StaName = AOSS_Cfg_Get: Client[2].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[2].EncryptLevel = 0 AOSS_Cfg_Get: Client[2].ConnectAllow = 1 AOSS_Cfg_Get: Client[3].StaName = AOSS_Cfg_Get: Client[3].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[3].EncryptLevel = 0 AOSS_Cfg_Get: Client[3].ConnectAllow = 1 AOSS_Cfg_Get: Client[4].StaName = AOSS_Cfg_Get: Client[4].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[4].EncryptLevel = 0 AOSS_Cfg_Get: Client[4].ConnectAllow = 1 AOSS_Cfg_Get: Client[5].StaName = AOSS_Cfg_Get: Client[5].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[5].EncryptLevel = 0 AOSS_Cfg_Get: Client[5].ConnectAllow = 1 AOSS_Cfg_Get: Client[6].StaName = AOSS_Cfg_Get: Client[6].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[6].EncryptLevel = 0 AOSS_Cfg_Get: Client[6].ConnectAllow = 1 AOSS_Cfg_Get: Client[7].StaName = AOSS_Cfg_Get: Client[7].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[7].EncryptLevel = 0 AOSS_Cfg_Get: Client[7].ConnectAllow = 1 AOSS_Cfg_Get: Client[8].StaName = AOSS_Cfg_Get: Client[8].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[8].EncryptLevel = 0 AOSS_Cfg_Get: Client[8].ConnectAllow = 1 AOSS_Cfg_Get: Client[9].StaName = AOSS_Cfg_Get: Client[9].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[9].EncryptLevel = 0 AOSS_Cfg_Get: Client[9].ConnectAllow = 1 AOSS_Cfg_Get: Client[10].StaName = AOSS_Cfg_Get: Client[10].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[10].EncryptLevel = 0 AOSS_Cfg_Get: Client[10].ConnectAllow = 1 AOSS_Cfg_Get: Client[11].StaName = AOSS_Cfg_Get: Client[11].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[11].EncryptLevel = 0 AOSS_Cfg_Get: Client[11].ConnectAllow = 1 AOSS_Cfg_Get: Client[12].StaName = AOSS_Cfg_Get: Client[12].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[12].EncryptLevel = 0 AOSS_Cfg_Get: Client[12].ConnectAllow = 1 AOSS_Cfg_Get: Client[13].StaName = AOSS_Cfg_Get: Client[13].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[13].EncryptLevel = 0 AOSS_Cfg_Get: Client[13].ConnectAllow = 1 AOSS_Cfg_Get: Client[14].StaName = AOSS_Cfg_Get: Client[14].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[14].EncryptLevel = 0 AOSS_Cfg_Get: Client[14].ConnectAllow = 1 AOSS_Cfg_Get: Client[15].StaName = AOSS_Cfg_Get: Client[15].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[15].EncryptLevel = 0 AOSS_Cfg_Get: Client[15].ConnectAllow = 1 AOSS_Cfg_Get: Client[16].StaName = AOSS_Cfg_Get: Client[16].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[16].EncryptLevel = 0 AOSS_Cfg_Get: Client[16].ConnectAllow = 1 AOSS_Cfg_Get: Client[17].StaName = AOSS_Cfg_Get: Client[17].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[17].EncryptLevel = 0 AOSS_Cfg_Get: Client[17].ConnectAllow = 1 AOSS_Cfg_Get: Client[18].StaName = AOSS_Cfg_Get: Client[18].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[18].EncryptLevel = 0 AOSS_Cfg_Get: Client[18].ConnectAllow = 1 AOSS_Cfg_Get: Client[19].StaName = AOSS_Cfg_Get: Client[19].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[19].EncryptLevel = 0 AOSS_Cfg_Get: Client[19].ConnectAllow = 1 AOSS_Cfg_Get: Client[20].StaName = AOSS_Cfg_Get: Client[20].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[20].EncryptLevel = 0 AOSS_Cfg_Get: Client[20].ConnectAllow = 1 AOSS_Cfg_Get: Client[21].StaName = AOSS_Cfg_Get: Client[21].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[21].EncryptLevel = 0 AOSS_Cfg_Get: Client[21].ConnectAllow = 1 AOSS_Cfg_Get: Client[22].StaName = AOSS_Cfg_Get: Client[22].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[22].EncryptLevel = 0 AOSS_Cfg_Get: Client[22].ConnectAllow = 1 AOSS_Cfg_Get: Client[23].StaName = AOSS_Cfg_Get: Client[23].MacAddr = 00:00:00:00:00:00 AOSS_Cfg_Get: Client[23].EncryptLevel = 0 AOSS_Cfg_Get: Client[23].ConnectAllow = 1 ###### AOSS: Initialized OK! ###### Starting pid 32, console /dev/tts/0: '/bin/sh' BusyBox v0.61.pre (2006.07.21-02:02+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # uname -a uname: No such file or directory # ls bin etc proc usr var.tar dev lib sbin var # *** diap wait system init 35 sec end ls -la /dev drwxr-xr-x 1 0 0 0 Jan 1 1970 . drwxrwxrwx 1 500 500 68 Jul 21 2006 .. crw------- 1 0 0 8, 0 Jan 1 1970 .devfsd crw------- 1 0 0 5, 1 Jan 1 12:00 console drwxr-xr-x 1 0 0 0 Jan 1 1970 cua crw-rw-rw- 1 0 0 1, 7 Jan 1 1970 full srwxr-xr-x 1 0 0 0 Jan 1 12:00 klog crw-r----- 1 0 0 1, 2 Jan 1 1970 kmem crw-rw-rw- 1 0 0 8, 2 Jan 1 1970 led srwxr-xr-x 1 0 0 0 Jan 1 12:00 log crw-r----- 1 0 0 1, 1 Jan 1 1970 mem drwxr-xr-x 1 0 0 0 Jan 1 1970 misc drwxr-xr-x 1 0 0 0 Jan 1 1970 mtdblock drwxr-xr-x 1 0 0 0 Jan 1 1970 netlink crw-rw-rw- 1 0 0 1, 3 Jan 1 1970 null crw-r----- 1 0 0 1, 4 Jan 1 1970 port crw------- 1 0 0 108, 0 Jan 1 1970 ppp crw-rw-rw- 1 0 0 5, 2 Jan 1 1970 ptmx drwxr-xr-x 1 0 0 0 Jan 1 1970 pts drwxr-xr-x 1 0 0 0 Jan 1 1970 pty crw-r--r-- 1 0 0 1, 8 Jan 1 1970 random lr-xr-xr-x 1 0 0 10 Jan 1 1970 root -> mtdblock/0 drwxr-xr-x 1 0 0 0 Jan 1 1970 shm crw-rw---- 1 0 0 8, 1 Jan 1 1970 ticfg drwxr-xr-x 1 0 0 0 Jan 1 1970 tts crw-rw-rw- 1 0 0 5, 0 Jan 1 1970 tty crw-r--r-- 1 0 0 1, 9 Jan 1 1970 urandom crw-rw-rw- 1 0 0 1, 5 Jan 1 1970 zero # # ls -la /dev/mtdblock drwxr-xr-x 1 0 0 0 Jan 1 1970 . drwxr-xr-x 1 0 0 0 Jan 1 1970 .. brw-rw-rw- 1 0 0 31, 0 Jan 1 1970 0 brw-rw-rw- 1 0 0 31, 1 Jan 1 1970 1 brw-rw-rw- 1 0 0 31, 2 Jan 1 1970 2 brw-rw-rw- 1 0 0 31, 3 Jan 1 1970 3 brw-rw-rw- 1 0 0 31, 4 Jan 1 1970 4

OpenWrt bootlog

0.000000] Linux version 3.3.8 (lino@ris) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Sun Mar 3 21:03:17 CET 2013 [ 0.000000] gpiochip_add: registered GPIOs 0 to 31 on device: ar7-gpio [ 0.000000] ar7-gpio: registered 32 GPIOs [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU revision is: 00018448 (MIPS 4KEc) [ 0.000000] TI AR7 (TNETD7300), ID: 0x0005, Revision: 0x22 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 01000000 @ 14000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone PFN ranges: [ 0.000000] Normal 0x00014000 -> 0x00015000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] Early memory PFN ranges [ 0.000000] 0: 0x00014000 -> 0x00015000 [ 0.000000] On node 0 totalpages: 4096 [ 0.000000] free_area_init_node: node 0, pgdat 9439cac0, node_mem_map 943f8000 [ 0.000000] Normal zone: 32 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 4064 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064 [ 0.000000] Kernel command line: console=ttyS0,38400n8 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 64 (order: -4, 256 bytes) [ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes. [ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes [ 0.000000] Memory: 12120k/16384k available (2328k kernel code, 4264k reserved, 347k data, 168k init, 0k highmem) [ 0.000000] NR_IRQS:256 [ 0.000000] Clocks: prediv: 1, postdiv: 1, mul: 10 [ 0.000000] Calibrating delay loop... 148.88 BogoMIPS (lpj=744448) [ 0.080000] pid_max: default: 32768 minimum: 301 [ 0.090000] Mount-cache hash table entries: 512 [ 0.110000] NET: Registered protocol family 16 [ 0.160000] bio: create slab at 0 [ 0.180000] Switching to clocksource MIPS [ 0.200000] NET: Registered protocol family 2 [ 0.220000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.240000] TCP established hash table entries: 512 (order: 0, 4096 bytes) [ 0.260000] TCP bind hash table entries: 512 (order: -1, 2048 bytes) [ 0.280000] TCP: Hash tables configured (established 512 bind 512) [ 0.300000] TCP reno registered [ 0.310000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.330000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.350000] NET: Registered protocol family 1 [ 0.430000] unable to register fixed phy for cpmac-high: 0 [ 0.460000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.480000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.510000] msgmni has been set to 23 [ 0.520000] io scheduler noop registered [ 0.530000] io scheduler deadline registered (default) [ 0.550000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.570000] serial8250: ttyS0 at MMIO 0x8610e00 (irq = 15) is a TI-AR7 [ 0.590000] console [ttyS0] enabled, bootconsole disabled [ 0.630000] serial8250: ttyS1 at MMIO 0x8610f00 (irq = 16) is a TI-AR7 [ 0.660000] physmap platform flash device: 02000000 at 10000000 [ 0.680000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000ec Chip ID 0x0022a2 [ 0.710000] physmap-flash.0: Found an alias at 0x400000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0x800000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0xc00000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0x1000000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0x1400000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0x1800000 for the chip at 0x0 [ 0.710000] physmap-flash.0: Found an alias at 0x1c00000 for the chip at 0x0 [ 0.710000] Amd/Fujitsu Extended Query Table at 0x0040 [ 0.730000] Fixing Samsung's Amd/Fujitsu Extended Query version to 1.3 [ 0.750000] Amd/Fujitsu Extended Query version 1.3. [ 0.760000] number of CFI chips: 1 [ 0.780000] 4 ar7part partitions found on MTD device physmap-flash.0 [ 0.800000] Creating 4 MTD partitions on "physmap-flash.0": [ 0.820000] 0x000000000000-0x000000010000 : "loader" [ 0.840000] 0x0000003f0000-0x000000400000 : "config" [ 0.870000] 0x000000010000-0x0000003f0000 : "linux" [ 0.890000] 0x0000000f3930-0x0000003f0000 : "rootfs" [ 0.910000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only [ 0.950000] mtd: partition "rootfs" set to be root filesystem [ 0.970000] mtd: partition "rootfs_data" created automatically, ofs=290000, len=160000 [ 1.000000] 0x000000290000-0x0000003f0000 : "rootfs_data" [ 1.040000] Fixed MDIO Bus: probed [ 1.310000] EXTERNAL SWITCH!!! [ 1.490000] cpmac-mii: probed [ 1.570000] eth0: ADM6996M model PHY found. [ 1.590000] cpmac: device eth0 (regs: 08612800, irq: 41, phy: cpmac-1:00, mac: 00:16:01:a1:c1:9d) [ 1.690000] cpmac: device eth1 (regs: 08610000, irq: 27, phy: cpmac-1:1f, mac: 00:16:01:a1:c1:9d) [ 1.720000] Registered led device: status [ 1.730000] vlynq0: regs 0x08611800, irq 29, mem 0x04000000 [ 2.660000] vlynq1: regs 0x08611c00, irq 33, mem 0x0c000000 [ 3.580000] TCP cubic registered [ 3.590000] NET: Registered protocol family 17 [ 3.600000] 8021q: 802.1Q VLAN Support v1.8 [ 3.630000] VFS: Mounted root (squashfs filesystem) readonly on device 31:3. [ 3.680000] Freeing prom memory: 1020k freed [ 3.700000] Freeing unused kernel memory: 168k freed [ 11.180000] JFFS2 notice: (413) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 8 of xref (0 dead. [ 13.960000] Compat-drivers backport release: compat-drivers-2012-09-04-2-gddac993 [ 13.980000] Backport based on wireless-testing.git master-2012-09-07 [ 14.000000] compat.git: wireless-testing.git [ 14.120000] cfg80211: Calling CRDA to update world regulatory domain [ 14.140000] cfg80211: World regulatory domain updated: [ 14.150000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 14.180000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 14.200000] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 14.230000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 14.250000] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 14.270000] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.110000] NET: Registered protocol family 8 [ 15.120000] NET: Registered protocol family 20 [ 15.520000] PPP generic driver version 2.4.2 [ 15.970000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 16.450000] NET: Registered protocol family 24 [ 16.520000] nf_conntrack version 0.5.0 (207 buckets, 828 max) [ 17.260000] acx-mac80211, version: v0.6.0 (git: unknown) [ 17.280000] this driver is still EXPERIMENTAL [ 17.280000] acx: please read the README file and/or go to http://acx100.sourceforge.net/wiki for further information [ 17.320000] built with CONFIG_ACX_MAC80211_PCI [ 17.340000] compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them [ 17.370000] acx: running on a little-endian CPU [ 17.370000] PCI/VLYNQ module initialized, waiting for cards to probe... [ 17.410000] Not using the 00000009 VLYNQ device's driver for VLYNQ device: 00000000 [ 17.410000] Not using the 00000009 VLYNQ device's driver for VLYNQ device: 00000000 [ 17.490000] registered device TI Avalanche SAR [ 17.510000] Sangam detected [ 17.520000] requesting firmware image "ar0700xx.bin" [ 18.250000] avsar firmware released [ 20.040000] tn7dsl_set_modulation : Setting mode to 0xffff [ 20.060000] Creating new root folder avalanche in the proc for the driver stats [ 20.090000] Texas Instruments ATM driver: version:[7.03.01.00] [ 33.090000] device eth0 entered promiscuous mode [ 33.140000] br-lan: port 1(eth0) entered forwarding state [ 33.150000] br-lan: port 1(eth0) entered forwarding state [ 33.290000] device eth1 entered promiscuous mode [ 33.300000] br-lan: port 2(eth1) entered forwarding state [ 33.320000] br-lan: port 2(eth1) entered forwarding state [ 33.390000] device eth0.1 entered promiscuous mode [ 33.400000] br-lan: port 3(eth0.1) entered forwarding state [ 33.420000] br-lan: port 3(eth0.1) entered forwarding state [ 33.740000] PHY: cpmac-1:00 - Link is Up - 100/Full [ 34.300000] br-lan: port 2(eth1) entered disabled state [ 34.760000] device eth0.2 entered promiscuous mode [ 34.770000] br-lan: port 4(eth0.2) entered forwarding state [ 34.790000] br-lan: port 4(eth0.2) entered forwarding state [ 35.150000] br-lan: port 1(eth0) entered forwarding state [ 35.420000] br-lan: port 3(eth0.1) entered forwarding state [ 36.790000] br-lan: port 4(eth0.2) entered forwarding state

Basic configuration

After installation I was unable to ping the device. I could see my ARP packets being mirrored back out on VLANs 1 and 2, but the device didn't actually respond to them:

14:07:53.472495 f0:de:f1:44:49:68 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 (ff:ff:ff:ff:ff:ff) tell 192.168.1.5, length 28
14:07:53.473229 f0:de:f1:44:49:68 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 2, p 0, ethertype ARP, Request who-has 192.168.1.1 (ff:ff:ff:ff:ff:ff) tell 192.168.1.5, length 46
14:07:53.473243 f0:de:f1:44:49:68 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 1, p 0, ethertype ARP, Request who-has 192.168.1.1 (ff:ff:ff:ff:ff:ff) tell 192.168.1.5, length 46

I discovered that I could work around it by removing the VLAN devices and adding them again, using the following commands:

vconfig rem eth0.1
vconfig rem eth0.2
vconfig add eth0 1
vconfig add eth0 2
brctl addif br-lan eth0.1
brctl addif br-lan eth0.2

I can't see what it changes, but this fix persists across reboots and even power off. Reflashing the firmware image breaks it again, though. Go figure.

Specific Configuration

Interfaces

Switch Ports (for VLANs)

Failsafe mode

Buttons

hardware.button on howto use and configure the hardware button(s).

The Linksys WRT54GL has one button on the back, labeled "Reset".

Hardware

Info

Architecture: MIPS
Vendor: Texas Instruments
Bootloader: Adam2
System-On-Chip: MIPS AR7
CPU/Speed Infineon PSB7300AZDW (apparently, equivalent to TNETD7300AZDW)
Flash-Chip: Samsung K8D3216UBC
Flash size: 4096 KiB
RAM: 16 MiB
Wireless: TI TNETW1130-based wireless network card, TI ACX100, acx-mac80211
Ethernet: Infineon ADM6996Mwith vlan support swconfig
Internet: ADSL2+
USB: No
Serial: Yes
JTAG: ?

Photos

Model Number

Front:

Photo of front of the casing

Back:

Photo of back of the casing

Opening the case

Note: This will void your warranty!

  • To remove the cover do a/b/c

Main PCB

Photo of PCB

Serial

This device has a 5-pins header providing a serial port, labeled JP6. The pins are, left to right:

  • Pin 1 → RXD (data from outside to the board)
  • Pin 2 → ? (unknown, probably not used)
  • Pin 3 → VCC (+3.3 V) DO NOT CONNECT
  • Pin 4 → GND (ground)
  • Pin 5 → TXD (data from the board to the outside)

The communication settings of the serial port are 38400 bps, 8 stop bits, 1 bit of parity, no hardware control flow, no software control flow.

The serial port can not be directly connected to a PC serial port, due to the different voltages they use. To connect the board to a computer via the serial port, a TTL to RS232 voltage level converter is required. There are many USB to TTL adaptors available, like those based on the MAX232 or the CP210 chips.

The port.serial page features general information about the serial port, serial port cables, etc.

The following picture shows the serial console pins connected to a USB to TTL adaptor.

JTAG

There are several points in the board that might correspond to the JTAG pins, but no information is available about them.

Debricking

Hardware mods

The Mini PCI wireless card that comes with the device is protected by a metal case, which is soldered to the board. This piece can be removed, freeing the card. To do so, the four pins that go through the board must be desoldered. A regular 25 watts soldering iron is enough to do it, but using a [[http://en.wikipedia.org/wiki/Desoldering|desoldering pump] makes the process easier.

The following three images show the location of the 4 points that must be unsolder to remove the metal case.

Tags

Back to top

toh/buffalo/wbmr-g54.txt · Last modified: 2013/11/17 20:06 (external edit)