Hack 70. Pebble
Use this tiny Debian-based Linux distribution for your own custom wireless access point.
Terry Schmidt of NYCwireless has done terrific work in getting together a stripped down Linux distribution specifically tailored for wireless access points in general, and for the Soekris [Hack #53] platform in particular. This distribution is called Pebble and is freely available at http://www.nycwireless.net/pebble. It aims to balance functionality with size, weighing in at about 47 MB.
Because it is based on Debian, customizing the installed software is straightforward. Unlike some other very tiny distributions, it uses standard libraries and binaries. This significantly simplifies upgrades, and it means that custom packages don't have to be built from source and linked to custom, stripped-down libraries. The distribution includes:
- Based on Debian GNU/Linux 3.0r1 (Woody)
- Linux Kernel 2.4.26 with Crypto modules
- HostAP 0.1.3 stable including utils and hostapd
- Madwifi CVS version from 4/2004
- bridge-tools
- djbdns caching DNS server
- NoCatAuth running as non-root user, post 0.81 nightly
- openSSH server 3.4p1
- openSSL 0.9.6c patched
- pcmcia-cs
- PPP and PPPoE
- Zebra 0.92a-5
There are also a number of shell niceties, including wget, elvis, tcpdump, Perl, and even lynx. It runs well on every Soekris model and will spawn a serial console on those machines (or any machine that has a serial port available). It runs on virtually any 486 class machine (or better) with at least 32 MB RAM. If you don't need all of the functionality provided in the standard distribution, you can easily strip out the components you don't need, to fit it into an even smaller space. For example, eliminating Perl, NoCatAuth, djbdns, and a couple of nonessential shell utilities will easily let Pebble fit on a 32 MB flash card (although since 128 MB flash cards are now selling for $15, perhaps this is a waste of effort).
If you have about 50 MB of storage available, you might take a look at the Metrix variant of Pebble. It is built on the Pebble platform, but has removed Perl in favor of an SSL-enabled web server, PHP, and a web-based configuration interface. The web GUI provides easy configuration of the radio cards, network routes, and various common system options. It also integrates RRDtool for automatic graphing of network throughput, radio performance, and associated wireless clients. You can download Metrix Pebble from http://metrix.net/metrix/howto/metrix-pebble.html.
One of the best features of Metrix Pebble is the ability to provide wireless survey information in a single window, as shown in Figure 5-9. You can perform a detailed site survey to display the MAC address, network name, channels, and received signal / noise of all networks that are in range of your kit. This lets you troubleshoot network interference problems at a glance.
Figure 5-9. Detailed wireless survey information
When using a radio as a point-to-multipoint master or standard Access Point, Metrix Pebble also provides statistics about the number of connected clients, including MAC address and amount of data sent and received, as shown in Figure 5-10. Not only does this allow you to instantly identify potential network abusers, but the graphs help to forecast network capacity and plan for upgrades.
If you are running from flash memory [Hack #54], one of the most useful features in Pebble is that it mounts the bootable medium read only, and creates a RAM disk for its temporary files. This means that once it is configured, the flash is never written to, which considerably extends the lifetime of your flash.