Hardware Enumeration

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

lshw, lspci no results.

dmesg or the equivalent would likely be helpful

Good thinking Jeff!

# 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.

1 Like

LOL, yeah -- Linux 2.6.22 Released 8 July, 2007

https://wikidevi.com/wiki/Broadcom
(links from there to known devices with the chips)

Might be some possibilities as it seems the Cubietruck uses the same WiFi chip
https://openwrt.org/toh/cubietech/cubieboard?s[]=cubieboard

But unless you want a "project", I'd donate it given the ancient kernel and all the security and interoperability woes you're likely up against.