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.
   315   316   317   318   319   320   321   322   323   324   325