Hi,
I have a router by a no-name Chinese brand, which came pre-installed with Tomato firmware, which I gather means its based on Broadcom hardware. I'd like to find out if I can replace Tomato with LEDE/Openwrt.
Is there a script around which will pull the relevant hardware / chipset information out for me? Something like inxi for wifi routers! Or can you suggest a few commands to run which would help me find out if there is a suitable Openwrt build?
Here's what I know so far.
Tomato v1.28.0213 MIPSR2 K26 USB Mega-VPN
# cat /proc/cpuinfo
system type : Broadcom BCM5357 chip rev 1 pkg 8
processor : 0
cpu model : MIPS 74K V4.9
BogoMIPS : 149.50
cpu MHz : 300
wait instruction : no
microsecond timers : yes
tlb_entries : 64
extra interrupt vector : no
hardware watchpoint : yes
ASEs implemented : mips16 dsp
shadow register sets : 1
VCED exceptions : not available
VCEI exceptions : not available
unaligned_instructions : 239
# cat /proc/version
Linux version 2.6.22.19 (root@tomato) (gcc version 4.2.4) #284 Wed Dec 14 23:29:01 CST 2011
# free
total used free shared buffers
Mem: 29600 25724 3876 0 3392
-/+ buffers: 22332 7268
Swap: 0 0 0
# lsmod
Module Size Used by Tainted: P
ip6table_mangle 992 0
ip6table_filter 704 0
xt_webmon 16320 1
xt_recent 6800 2
ehci_hcd 34576 0
vfat 9216 0
fat 46032 1 vfat
ext2 55296 0
ext3 113440 0
jbd 48288 1 ext3
mbcache 4528 2 ext2,ext3
usb_storage 33120 0
sd_mod 21408 0
scsi_wait_scan 384 0
scsi_mod 75392 3 usb_storage,sd_mod,scsi_wait_scan
leds_usb 1104 0
led_class 1552 1 leds_usb
ledtrig_usbdev 2432 0
usbcore 114928 4 ehci_hcd,usb_storage,ledtrig_usbdev
nf_nat_pptp 1440 0
nf_conntrack_pptp 3808 1 nf_nat_pptp
nf_nat_proto_gre 1072 1 nf_nat_pptp
nf_conntrack_proto_gre 2464 1 nf_conntrack_pptp
nf_nat_ftp 1568 0
nf_conntrack_ftp 5792 1 nf_nat_ftp
nf_nat_sip 5920 0
nf_conntrack_sip 19008 1 nf_nat_sip
nf_nat_h323 5504 0
nf_conntrack_h323 37120 1 nf_nat_h323
wl 2548752 0
et 42720 0
igs 13680 1 wl
emf 17408 2 wl,igs
# lsusb
Bus 001 Device 001: ID 1d6b:0002
# dmesg
**Linux version 2.6.22.19 (root@tomato) (gcc version 4.2.4) #284 Wed Dec 14 23:29:01 CST 2011**
**CPU revision is: 00019749**
**Found an ST compatible serial flash with 128 64KB blocks; total size 8MB**
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
On node 0 totalpages: 8192
Normal zone: 64 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 8128 pages, LIFO batch:0
Built 1 zonelists. Total pages: 8128
Kernel command line: root=/dev/mtdblock2 noinitrd console=ttyS0,115200
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: 128 (order: 7, 512 bytes)
**CPU: BCM5357 rev 1 pkg 8 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: 29484k/32768k available (33k kernel code, 3284k reserved, 2677k data, 116k init, 0k highmem)**
Calibrating delay loop... 149.50 BogoMIPS (lpj=747520)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
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
squashfs: version 3.0 (2006/03/15) Phillip Lougher
io scheduler noop registered (default)
HDLC line discipline: version $Revision: 4.8 $, maxframe=4096
N_HDLC line discipline registered.
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0xb8000300 (irq = 8) is a 16550A
PPP generic driver version 2.4.2
MPPE/MPPC encryption/compression module registered
NET: Registered protocol family 24
PPPoL2TP kernel driver, V0.17
PPTP driver version 0.8.5
pflash: found no supported devices
Creating 5 MTD partitions on "sflash":
0x00000000-0x00020000 : "pmon"
0x00020000-0x007f0000 : "linux"
0x00104000-0x007c0000 : "rootfs"
0x007c0000-0x007f0000 : "jffs2"
0x007f0000-0x00800000 : "nvram"
u32 classifier
OLD policer on
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (512 buckets, 4096 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
BCM fast NAT: INIT
net/ipv4/netfilter/tomato_ct.c [Nov 26 2011 10:45:09]
NET: Registered protocol family 1
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
NET: Registered protocol family 17
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.
Freeing unused kernel memory: 116k freed
Warning: unable to open an initial console.
emf: module license 'Proprietary' taints kernel.
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.4**
wl_module_init: passivemode set to 0x0
PCI: Setting latency timer of device 0000:00:01.0 to 64
**eth1: Broadcom BCM4329 802.11 Wireless Controller 5.100.138.4**
Algorithmics/MIPS FPU Emulator v1.5
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Registered led device: usb-led
SCSI subsystem initialized
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
PCI: Setting latency timer of device 0000:00:04.1 to 64
ehci_hcd 0000:00:04.1: EHCI Host Controller
ehci_hcd 0000:00:04.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:04.1: irq 5, io mem 0x18004000
ehci_hcd 0000:00:04.1: USB 0.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
vlan0: add 33:33:00:00:00:01 mcast address to master interface
vlan0: add 01:00:5e:00:00:01 mcast address to master interface
vlan0: dev_set_allmulti(master, 1)
vlan0: dev_set_promiscuity(master, 1)
device eth0 entered promiscuous mode
device vlan0 entered promiscuous mode
device eth1 entered promiscuous mode
vlan2: add 33:33:00:00:00:01 mcast address to master interface
vlan2: add 01:00:5e:00:00:01 mcast address to master interface
vlan2: dev_set_promiscuity(master, 1)
device vlan2 entered promiscuous mode
br0: port 3(vlan2) entering forwarding state
br0: port 2(eth1) entering forwarding state
br0: port 1(vlan0) entering forwarding state
vlan1: Setting MAC address to 00 c0 53 9a c9 30.
vlan1: add 33:33:00:00:00:01 mcast address to master interface
vlan1: add 01:00:5e:00:00:01 mcast address to master interface
vlan2: del 01:00:5e:00:00:01 mcast address from vlan interface
vlan2: del 01:00:5e:00:00:01 mcast address from master interface
vlan2: del 33:33:00:00:00:01 mcast address from vlan interface
vlan2: del 33:33:00:00:00:01 mcast address from master interface
br0: port 3(vlan2) entering disabled state
vlan2: Setting MAC address to 08 10 74 68 86 0c.
vlan2: add 01:00:5e:00:00:01 mcast address to master interface
vlan2: add 33:33:00:00:00:01 mcast address to master interface
br0: port 3(vlan2) entering forwarding state
.
# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
proc on /proc type proc (rw)
tmpfs on /tmp type tmpfs (rw)
devfs on /dev type tmpfs (rw,noatime)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
usbfs on /proc/bus/usb type usbfs (rw)
.
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 6.8M 6.8M 0 100% /
tmpfs 14.5M 264.0K 14.2M 2% /tmp
devfs 14.5M 0 14.5M 0% /dev
I did a quick google on that Broadcom chipset and honestly I wouldn’t even try. Maybe you can get the latest Lede/OpenWRT to boot, but I’m not convinced you will get WiFi working.
On top of that, with only 32MB of RAM you will run into all kinds of other problems soon (see the 4MB/32MB warnings).
My advice keep tomato on this device and use it as an AP in a place in your house/office with poor coverage.