Linux on x86 hardware has long been a reliable, capable, inexpensive way to make routers, wireless access points, and firewalls at a fraction of the cost of commercial devices. You get a lot more flexibility, more security, and often better performance. You can use recycled old gear, or specialized routerboards like Soekris, PC Engines, and Microtik. (Mikrotik also uses non-x86 CPUs, like PowerPC and MIPs.) Some folks think they're a bit expensive, but you can't beat them for flexibility and sturdiness. These little boards tolerate tough conditions and are highly customizable.
Both Soekris and PC Engines have introduced a new line of more powerful boards. Soekris, as usual, gives theirs a dull name, the net5501. This comes with a 433 or 500 MHz AMD Geode LX800 CPU, IDE and SATA connectors, Ethernet, serial, PCI, and more. PC Engines has a similar board they call Alix.
AMD is discontinuing the older, less powerful Geode SC1100 CPUs, so the boards that are based on these are phasing out of production. These are models like the PC Engines WRAP board and the Soekris net4826. These little boards are plenty powerful enough for a lot of network jobs, so keep your eyes open for good deals, especially in the second-hand market.
The hard part with these little boards is choosing an operating system to put on them. Here is a small sampling of what is available:
- m0n0wall. Based on FreeBSD, includes router, firewall, captive wireless portal, VPN, name services
- Bering uClibc. Customized Linux based on stripped-down libraries; firewall, router, wireless access point, name services
- Pyramid Linux. Based on Ubuntu, firewall, router, wireless access point, name services
- iMedia Embedded Linux. Several versions from 8 megabytes (yes, it boots and does networking!) to larger versions for routers and firewalls, and media servers.
Because the newer, more powerful boards support larger storage devices, such as microdrives, big Compact Flash cards, and hard drives, whittling the operating system down as much as possible isn't as urgent a problem as it used to be. But it's still a good idea to use as lean an operating system as possible, for fewer potential security holes. Especially on devices that face untrusted networks.
Voyage Linux is a fairly new contender in the embedded space. Based on Debian Etch, it weighs in at about 64 megabytes. A nice feature it retains is apt-get for package management, so you'll need to allow extra room for package management. 128 megabytes should be plenty. This is unusual for tiny Linux distributions, which usually jettison any package managers to save space. But somehow the Voyage Linux developers figured out a way to keep it. So you don't have to learn a new specialized command set, or weird hacks for updating, adding, and removing software- the ordinary old Debian way works fine.
Voyage comes in two flavors: a tarball and a LiveCD ISO image. The tarball can be installed on a number of different devices: a hard drive, Compact Flash, or a USB drive.
Installing Voyage Linux on Compact Flash
The easy way is with a USB reader/writer. Get a Compact Flash card that is at least 128 megabytes, and then partition and format it with an Ext2 filesystem. You'll need the correct device name, so plug in your card and then run dmesg:
[57353.455055] SCSI device sdd: 1000944 512-byte hdwr sectors (512 MB)
fdisk should also tell the tale:
# fdisk -l
Device Boot Start End Blocks Id System
/dev/sdd1 1 505 250449 83 Linux
Be very sure you have the correct device name, because it would be sad if you overwrote your hard drive. Now use fdisk or GParted to create a new partition on the Compact Flash card. With GParted you may also format the new partition with an Ext2 filesystem.