Build A Linux-Based Wireless Access Point
Page 1 of 1
For ultimate control and customizability, building your own Linux wireless access point is the way to go. You may use an old recycled PC, or build a sleek attractive power- and space-saving unit from new parts. It may save a small pot of money, because you'll end up with a WAP that can do anything the high-end commercial WAPs can do, like the Cisco Aironet, and then some. Like firewalling, logging, running servers -- whatever you can do on any Linux box. If your needs are met by a lower-end WAP like the Netgear WGU624 or the SMC2304WBR-AG, building your own won't save much money and will cost more time. But you will have ultimate control and gain a deeper understanding of how it all works, which are always good.
Part 1 of this two-part series discusses the various hardware options. Part 2 will be a detailed howto on building an access point on an ordinary PC.
There are three steps to building your own wireless access point:
- Find or assemble a computer with a Linux-supported wireless adapter
- Install an operating system
- Install and configure the software for controlling the wireless adapter
There are many hardware choices, old and new. If you can spend a few hundred dollars, you can build a nice-looking, fully-featured mini-ITX box, or use an embedded system like the Soekris boards. An old laptop, if it has two PCMCIA slots or a built-in wired Ethernet port plus a PCMCIA slot works great. Or you can grab most any old PC and put it to work. Even an old 386 will work, but it will be slow. Pentium-class machines are better, from P133 and up.
Mini-ITX offers many different choices for cases and motherboards; and uses standard drives and memory, so you can put together a system to meet your exact specifications. (See Resources below.)
You can drop $400-$500 on a system with no frills easily. But if you have the budget, it's the most flexible -- you may have sound, video, CD/DVD drives, USB, firewire, a printer port, mouse, and keyboard. It's just like a regular PC, only smaller, quieter, and less power-hungry.
All the cool kids are using Soekris boards. The net4826 comes with up to 128 megabytes of storage on a compact flash card, or you can connect a 2.5" hard drive via one of two mini-PCI expansion slots. (40 gigabyte 2.5" hard drives can be found for under $100, and a controller card for under $50.) Your wireless mini-PCI radio card goes in the other mini-PCI slot. There are built-in 10/100 Ethernet and DB9 serial ports. It supports full headless operation over the serial port, and PXE network boot.
The case, which isn't entirely necessary if you want to improvise your own, measures 8.5" x 6.2" x 1" and has cutouts for antenna connectors. About $250 gets you the net4826-50 bundle, which comes with board, case, power supply, 266 Mhz CPU, 128 Mbyte SDRAM, and 64 megabyte CF Flash.
Also worth looking at is the net4521, because it has two PCMCIA sockets, which gives you a lot more options when you're purchasing a wireless network adapter.
Which One To Use?
Here are some factors to consider when you're choosing your hardware:
The Soekris boards are tolerant of temperature extremes. They are officially rated at 0C to 60C; unofficially they are known to survive an even wider range. A recycled PC or mini-ITX is not, so keep this in mind when you're deciding where to locate your access point.
The Soekris boards are best suited as networking appliances with fairly static configurations and specialized functionality. Compact flash modules have a limited number of writes -- usually measured in the hundreds of thousands, but still much less than an IDE hard drive. So you must be careful to configure the filesystem to be read-only everywhere it is possible. CF modules are faster, cooler, and consume less power than IDE hard drives. You'll need to get comfortable with running a headless box and flashing CF modules, which requires a second computer.
Using an older PC means one less contribution to a landfill, and little or no cost for the hardware.
Finding Supported Network Adapters
Now we come to the vexing part: finding a supported adapter. A reliable choice is one that uses the Conexant (Harris/Intersil) Prism chipset. The Prism is well-supported in Linux. Prism 2 & 3 supports 802.11b, or 11 mbps, and the Prism G supports 802.11g, or 54 mbps. The Prism G line supports various combinations of a/b/g. While a lot of wireless adapters work in Linux as a client, working as an access point requires the ability to run in master mode, which is not available in a lot of chipsets.
Not only do you need the right adapter, it must include an antenna connector. (If you're handy with nippers and a soldering iron, then you can add an antenna to anything you like.) And it must be in the right form factor. Wireless adapters come in three form factors: mini-PCI, PCMCIA, and PCI. Full-sized PCI cards are often a PCMCIA card jammed onto an adapter. These are perfectly fine to use. See Netgate.com for a nice selection of Senao and other Linux-friendly devices.
And now, the Big Question: what are some brand and model names of some suitable wireless adapters?
Pardon me while I laugh bitterly.
Wireless vendors like to play games with chipsets, so the adapter model you purchased and used happily with Linux yesterday may ship out today with a different chipset, and that change will not be documented in any way. Senao wireless adapters are Prism-based, and are solid performers. The Senao 2511 CD PLUS EXT2 puts out 200mW of broadcasting power; which is considerably more than most of the big-name brands you're familiar with. The SMC SMC2532W-B EliteConnect is similar, also pumping out 200 stout little milliwatts. Both of these are 802.11b cards.
802.11b support is the most reliable. The purported 54 mbps of 802.11g is mythical; at best you'll get 48, which is nice, but most likely you'll get 20-30, and as nodes are added it will probably drop all of them to 11 mbps. However, for those who want it, the SMC2802W runs nicely on Linux and supports both b/g.
Before forking over so much as a ha'penny, contact the vendor to verify the chipset of the card you want to purchase.
This is the motherlode of Linux wireless information: