Page 320 - Hacking Roomba
P. 320
Chapter 14 — Putting Linux on Roomba 301
Linksys is always slightly changing the internals of the box. The current version 5 of the
WRT54G has only 2 MB of flash. This version is too small to run a usable Linux system, and
so Linksys has switched to VxWorks. VxWorks is a real-time operating system most famous
for being the OS on several Mars probes. Unfortunately, it seems less than ideal for a wireless
router and many have found this new v5 version to be buggy and crash prone. Linksys still
makes several other Linux-capable boxes, however, and you can find older model WRT54Gs
to use quite cheaply. The new standard for hacking is the WRT54GL (L for Linux, really),
which is still perhaps the easiest router to get running with your own Linux.
OpenWrt
OpenWrt (http://openwrt.org/) is one of many Linux distributions for wireless routers.
(Others include DD-WRT, HyperWRT, and Sveasoft.) It is named in honor of the WRT54G
even though OpenWrt runs on several dozen different models of network hardware. Started
in 2004, it deviated from the other hacker versions of Linux for the WRT54G by working
from the bottom up to get a working system instead of making slight perturbations in the
source code Linksys released.
OpenWrt Software
The most noticeable difference between OpenWrt and the other firmware releases is its modu-
larity. OpenWrt is more like a distribution, like RedHat or Ubuntu. It has a network-based
packing system with more than 100 official software packages and even more unofficial ones
created by hackers worldwide. The OpenWrt developers provide extensive documentation on
building your own code and packaging it. If you can write a simple C program, you can write
native code for OpenWrt. If you prefer scripting languages to C, both PHP and Perl have been
ported to OpenWrt. And of course, it comes with a command-line shell for any shell program-
ming that’s needed.
Besides the many standard network applications like an HTTP and FTP server, OpenWrt can
also handle VoIP calls or act like a phone PBX with Asterix. It can be a VPN endpoint with
OpenVPN or run a BitTorrent client. Virtually any non-GUI application that already runs on
Linux will run on OpenWrt. New packages are being created all the time. Anyone can submit
packages to the OpenWrt community for inclusion into the official distribution.
Be sure to visit the OpenWrt Documentation site at http://wiki.openwrt.org/ for more
in-depth documentation about OpenWrt in general. To search both the official and the many
third-party package repositories, visit http://www.ipkg.be/.
OpenWrt Hardware
The OpenWrt community maintains a database of devices that work or don’t work with
OpenWrt at http://wiki.openwrt.org/TableOfHardware. There are at least 50 differ-
ent network devices that work with OpenWrt. Besides Broadcom chips, OpenWrt has been
ported to network processors made by Aetheros and Texas Instruments. Broadcom is the most
supported and most familiar, however.