Tutorial overview, background, and assumptions
This tutorial is targeted at developers, system administrators, and end-users seeking a detailed, step-by-step guide to configuring a wireless network card under Linux. After working through the material presented, the reader should come away from this tutorial enriched with the following:
- A "broad strokes" understanding of the overall process involved in configuring a wireless card under Linux, and why the author uses the detailed procedure he does.
- An understanding of how to adapt the examples presented to your own unique requirements.
- How to recompile your kernel to support the PCMCIA-CS library.
- How to fetch and compile the PCMCIA-CS source.
- How to find and compile the requisite drivers to support your chosen wireless card (if required).
- And finally, how to configure your wireless card to connect to a Wireless Access Point (WAP).
For many users, the aspect of choice is one of the fundamental draws to Open Source offerings. But there is a downside to multiple-choice offerings, especially for those coming from a background of "plug-and-play" and the promise of inserting your card/device and having the operating system "automagically" load and configure your system for immediate use. Linux does not work that way for the most part. Linux is designed from the ground up to be as extensible as possible. To accomplish this, developers have historically relied heavily on user participation throughout the configuration process.
The number of wireless network cards supported by Linux has increased dramatically over the last year or two. For some devices, configuring wireless connectivity can be as simple as procuring a copy of the latest release of your preferred distribution, inserting your wireless card, clicking through the setup process, and entering the correct networking parameters. But if your distribution fails to detect your wireless card or detects it incorrectly, chances are good you'll be left without connectivity and wondering which direction to head off in next. That's where this tutorial comes into play. Hopefully the background and procedures outlined here will empower you with the necessary skills to troubleshoot your installation and get it running without major headaches.
As you read through the material contained in this tutorial, please keep one thing in mind: the procedures described here are not "gospel." Instead, they serve as a framework; a framework the author has used "in the real world," with a wide variety of systems, with relatively consistent results.
The procedural framework alluded to in the previous section is comprised of the following steps or tasks:
- Recompile your kernel and remove any reference to the kernel-supplied PCMCIA drivers.
- Download and compile the PCMCIA-CS libraries and drivers
- Fetch, compile, and install any required drivers for your wireless card. This step will be optional for some, and mandatory for others. Which camp you fall into depends in large part on your choice of wireless network cards.
- Configure your wireless card to communicate with your WAP.
Please note: The aboves steps must be completed in the order outlined. The kernel will, by default, use its own PCMCIA/wireless drivers unless you specifically tell it to do otherwise; your system will not use the PCMCIA-CS libraries and drivers until you "de-couple" the default kernel drivers and install the PCMCIA-CS source; and most 3rd party device drives will not compile/install without a copy of the PCMCIA-CS libraries installed on your system.
To achieve maximum benefit from the concepts, procedures, and example presented in this tutorial, the reader should have a good grasp of basic *NIX administrative tasks including program installation, filesystem layout, moving and copying files, file permissions, and editing system configuration files. Several good "primers" on system administration are listed in Resources at the end of this document.
In additon:
- It's assumed you have access to a "working" Linux installation, meaning the operating system is installed and configured correctly, and all basic services are functioning as advertised.
- It is also assumed you have access to a fully functional WAP, and that it, too, is configured correctly and working as it should. For details on hub/router/WAP configuration, please see the documentation for your particular device (now might also be a good time to make sure your WAP's firmware is current, and if not, apply any available updates; again, see the documentation accompanying your product for procedural specfics).
- You'll need to know how your network is currently configured, including how the system you plan on configuring acquires its IP address (static or dynamic?), the network netmask in use, your WAP's assigned SSID (similar in concept to a machine's hostname), and the channel your WAP is "listening" on.
- It's crucial you know who supplies the chipset for wireless card you intend to configure. Keep in mind that it's not unusual for a vendor to use different chipset suppliers across a product line. In other words, just because your old wireless card used a wlan-based chipset, don't assume the new card you bought last week (from the same vendor) uses the same chipset. Generally speaking, every unique chipset is designed to be used with a specific driver. And while some drivers are designed to be used across a spectrum of devices and manufacturers, marrying up the wrong driver with the wrong device is a sure-fire way to promote premature hair loss. Research your wireless adapter on the Web (Google is your friend), check the vendor's Web site... do whatever you need to do. Just be sure your know beyond a shadow of doubt both the underlying chipset, and which driver the manufacturer of the card recommends.
Every effort possible was made to keep this tutorial as distribution agnostic as possible. Kernel releases and source code versions used in the examples provided are noted, and are current as of the time of this writing. Be sure to check the various source URLs listed in the Resources section for the latest revisions, and always use the latest stable code release whenever possible. Open Source projects are under constant development. Using the latest stable release, as a rule, means you'll be working with the most mature, bug-free codebase currently available.
Unfortunately, device drivers tend to be device specific. The examples in this tutorial are based on installing and configuring the latest release of the wlan-ng device driver. This particular driver was chosen because:
- It's a relatively common driver used by several well-know wireless cards.
- The latest PCMCIA-CS release does not contain support for the wlan-ng driver, which means adding it to the 'CS' libraries (how to accomplish this is fully detailed in 3rd. Party Device Drivers ).
- The wireless card the authors uses on a daily basis uses the wlan-ng driver, which means he has lots of "in the trenches" experience compiling and configuring this particular device.

