I just got a FiOS wifi router and I must say I really like it. The web interface has many more options than any home router I’ve ever played with, and it seems like it’d be easy for a beginner but doesn’t get in the way of an expert. It also telnet access (optionally over SSL), which puts you into a custom shell. Poking around the commands I find one awesome one:
Wireless Broadband Router> help system shell shell Spawn busybox shell in foreground Wireless Broadband Router> system shell BusyBox v1.01 (2005.09.07-07:38+0000) Built-in shell (lash) Enter 'help' for a list of built-in commands. / #
This is very clearly running Linux, with BusyBox. For those interested here are some interesting bits of information:
/ # cat /proc/version Linux version 18.104.22.168 #1 SMP Sat Nov 28 00:38:50 PST 2009
A four year old kernel. Well what do you expect from this kind of device :)
/ # cat /proc/cpuinfo system type : MC524WR processor : 0 cpu model : Cavium Networks Octeon CN50XX V0.1 BogoMIPS : 1000.48 wait instruction : yes microsecond timers : yes tlb_entries : 64 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : VCED exceptions : not available VCEI exceptions : not available processor : 1 cpu model : Cavium Networks Octeon CN50XX V0.1 BogoMIPS : 1000.48 wait instruction : yes microsecond timers : yes tlb_entries : 64 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : VCED exceptions : not available VCEI exceptions : not available
w00t, a Dual Cores 64bit MIPS chip
/ # cat /proc/meminfo MemTotal: 53200 kB MemFree: 11588 kB Buffers: 9252 kB Cached: 9228 kB SwapCached: 0 kB Active: 7796 kB Inactive: 16220 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 53200 kB LowFree: 11588 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB Mapped: 11272 kB Slab: 13700 kB CommitLimit: 26600 kB Committed_AS: 11384 kB PageTables: 196 kB VmallocTotal: 1073741824 kB VmallocUsed: 2752 kB VmallocChunk: 1073738692 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB
Only ~53MB of RAM if I’m reading that right. Seems most likely to be 64MB to me, but I will investigate further.
The device doesn’t seem to have many of the standard Linux tools, no doubt to save space. It does however have an external USB port. My plan is to compile more of busybox, as well as some other binaries, and run them from an external USB stick.
Hacking an router has never been so easy! I’ll post more when I know more!