CPU: BCM5357B0KFBG
1 x physical wired Ethernet port. (Yes, just one)
WiFi N (2.4GHz)
4 Mb flash
32 Mb RAM
The thing is marketed as a ethernet-to-wifi bridge plus range extender.
After messing with it for a while, I decided to install dd-wrt on it. These are my findings:
* You can enter management mode by holding the reset button before powering up the device, and holding it during 30 seconds after power-up. Then the cisco logo starts to blink and you can browse a minimal web page to upload a firmware at 192.168.1.1 through the wired port. I recovered it from a soft-brick a number of times with this method.
* If you try to upload/flash dd-wrt as-is the RE1000 rejects the file. What I did was to change the first 4 bytes of the dd-wrt .bin buildfile to "RE1K". Any hex editor can serve to it, I used GHex. That way the .bin is accepted. This is only needed the first time, when you want to "kill" a Linksys firmware.
* The first build I successfully installed on the RE1000 was dd-wrt.v24-17201_NEWD-2_K2.6_mini_e1000v2.bin (after changing the first 4 bytes as explained above). I chose it because Linksys E1000v2 seemed to me the router with the most similar Hw to the RE1000.
* Then after rebooting you can connect to SSID: dd-wrt and access the dd-wrt web gui wirelessly only. I had to use Chromium, Firefox did weird things.
* I did not manage to make the wired ethernet port run, ever. Except with stock firmwares and/or management mode. I messed around a lot with the web gui without success.
* You can manage the thing via telnet (wirelessly). I tried to activate the wired port with
ifconfig device 192.168.2.1 netmask 255.255.255.0 up
where device can be any from the list obtained with
ifconfig -a
I was not able make it answer to pings in any case.
* Just in case, I upgraded the firmware to a more modern dd-wrt build, in this case a generic broadcom build:
dd-wrt.v24-18777_NEWD-2_K2.6_mini.bin
However, everything was exactly the same as with the previous 17201 build.
In case someone finds this of interest, here is a dump of dmesg and ifconfig -a commands:
dmesg:
Code:
Linux version 2.6.24.111 (eko@dd-wrt) (gcc version 4.1.2) #3255 Sat Apr 7 13:35:16 CEST 2012
CPU revision is: 00019749
Found a 4MB ST compatible serial flash
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Entering add_active_range(0, 0, 8192) 0 entries of 256 used
Zone PFN ranges:
Normal 0 -> 8192
HighMem 8192 -> 8192
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 8192
On node 0 totalpages: 8192
Normal zone: 0 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 8192 pages, LIFO batch:1
HighMem zone: 0 pages used for memmap
Movable zone: 0 pages used for memmap
Built 1 zonelists in Zone order. Total pages: 8192
Kernel command line: console=ttyS0,115200 root=1f02 rootfstype=squashfs noinitrd
Primary instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
PID hash table entries: 256 (order: 8, 1024 bytes)
CPU: BCM5357 rev 1 at 300 MHz
Using 150.000 MHz high precision timer.
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 25956k/32768k available (3522k kernel code, 6796k reserved, 1373k data, 188k init, 0k highmem)
Calibrating delay loop... 149.91 BogoMIPS (lpj=749568)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
Generic PHY: Registered new driver
PCI: no core
PCI: no core
PCI: Fixing up bus 0
NET: Registered protocol family 2
Time: MIPS clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
squashfs: version 3.0 (2006/03/15) Phillip Lougher
io scheduler noop registered
io scheduler deadline registered (default)
HDLC line discipline: version $Revision: 4.8 $, maxframe=4096
N_HDLC line discipline registered.
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x0 (irq = 8) is a 16550A
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
MPPE/MPPC encryption/compression module registered
NET: Registered protocol family 24
PPPoL2TP kernel driver, V1.0
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
et_module_init: passivemode set to 0x0
PCI: Setting latency timer of device 0000:00:02.0 to 64
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.100.138.9
PCI: Setting latency timer of device 0000:00:01.0 to 64
pflash: found no supported devices
bootloader size: 262144
nvram size: 32768
sflash: Filesystem type: squashfs, size=0x1f7fbe
partition size = 2102272
Creating 5 MTD partitions on "sflash":
0x00000000-0x00040000 : "cfe"
0x00040000-0x003f0000 : "linux"
0x0019ec00-0x003a0000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x003a0000-0x003f0000 : "ddwrt"
Broadcom Watchdog Timer: 0.07 initialized.
u32 classifier
Actions configured
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
ctnetlink v0.93: registering with nfnetlink.
IPv4 over IPv4 tunneling driver
GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
ClusterIP Version 0.8 loaded successfully
TCP bic registered
TCP cubic registered
TCP westwood registered
TCP highspeed registered
TCP hybla registered
TCP htcp registered
TCP vegas registered
TCP scalable registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Welcome to PF_RING 3.2.1
(C) 2004-06 L.Deri <deri@ntop.org>
NET: Registered protocol family 27
PF_RING: bucket length 128 bytes
PF_RING: ring slots 4096
PF_RING: sample rate 1 [1=no sampling]
PF_RING: capture TX No [RX only]
PF_RING: transparent mode Yes
PF_RING initialized correctly.
PF_RING: registered /proc/net/pf_ring/
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
decode 1f02
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 188k freed
roboswitch: Probing device eth0: found a 5325!
br0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
device vlan0 entered promiscuous mode
device eth0 entered promiscuous mode
br0: port 1(vlan0) entering learning state
device eth1 entered promiscuous mode
br0: port 2(eth1) entering learning state
device vlan1 entered promiscuous mode
device vlan1 left promiscuous mode
br0: topology change detected, propagating
br0: port 1(vlan0) entering forwarding state
br0: topology change detected, propagating
br0: port 2(eth1) entering forwarding state
device vlan0 left promiscuous mode
br0: port 1(vlan0) entering disabled state
device eth1 left promiscuous mode
br0: port 2(eth1) entering disabled state
br0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
device vlan0 entered promiscuous mode
br0: port 1(vlan0) entering learning state
device eth1 entered promiscuous mode
br0: port 2(eth1) entering learning state
device vlan1 entered promiscuous mode
device vlan1 left promiscuous mode
br0: topology change detected, propagating
br0: port 1(vlan0) entering forwarding state
br0: topology change detected, propagating
br0: port 2(eth1) entering forwarding state
device vlan1 entered promiscuous mode
device vlan1 left promiscuous mode
Under Setup -> Networking I assigned all eth0, eth1, vlan0, vlan1 and vlan2 to the same bridge br0.
The idea is that if I bridge all interfaces together I should be able to reach the working one (WiFi) via the non-working one (RJ-45).
It did not work.
Under "Port Setup" in the same page I get "WAN Port assignment" as "vlan1" by default.
I changed it as well to vlan0, vlan2 and br0. Changing it to br0 bricked the device.
I tried many combinations anyway.
It was easy to debrick: 30 secs reset after power-up, then browse (through the RJ45!) the management mode page, and click on "Reset NVRAM to default values". That easy.
Is anybody able to help? This is a new device, and it is almost working. I think that the only RJ-45 available is equivalent to the WAN port of other models, as rizla7 suggests, so it should be easy to fully support this thing.
For 100mbps routers the variable vlan0ports is the VLAN for LAN ports while vlan1ports is for the WAN ports. For gigabit routers the variable vlan1ports is the VLAN for LAN ports while vlan2ports is for the WAN ports.
In the examples it also lists outputs with either (vlan0 and vlan1) or (vlan1 and vlan2), but the RE1000 seems to have three vlans (0, 1 and 2).
Quote:
The CPU internal port must be included on any VLAN that must be visible to the CPU. The asterisk (*) signifies that the VLAN it is attached to is the default VLAN (only put this in one VLAN). If the switch receives a packet on the CPU internal port that is not tagged then it is put into the VLAN where the * is configured; always make sure this is the LAN VLAN.
This is interesting, because I get the asterisk on both vlan0 and vlan1. It says it should appear only on one.
How can I erase one vlan? Then I could set nvram along the given examples.
Should it not be vlan2ports="5" instead of "0 5"? There seems to be an inconsistency between vlan2ports and port0vlans after unchecking port W under VLAN tab.
In order to get the "Assign WAN Port to Switch" checkbox you need to set WAN Connection Type to "Disabled". It is not enough with setting to "Router" under Advanced Routing tab.
I did the following:
1) Reset NVRAM (via Linksys management mode) and restart.
2) Set "Router" under "Advanced Routing". Apply Settings.
3) Disable SPI firewall. Apply Settings.
4) Under Basic Setup, WAN Connection Type set to "Disabled" and Assign WAN Port to Switch CHECKED. Then Apply Settings.
5) NVRAM contents AFTER THAT:
Now I can access the web GUI via the wired ethernet port.
rizla7: your comments turned out to be essential, you pointed me immediately to the root of the problem. It turned out the only available wired port was number 2 for the nvram set vlan?ports command.
I will be away for a couple of days, I will post a detailed explanation with my findings after I had done a more thorough investigation. I made several changes until it worked (vlan2 removal, changes to vlan0ports and vlan1ports, change to an older build...), so I have still a hard work ahead to isolate the causes.