Wireless networking is still a relatively new thing in the world of computers, yet is
quickly catching on as more people begin to purchase laptops and want networking on the
go, without having to fool with some old twisted pair cable. This trend doesn't appear to
be slowing down. Unfortunately, wireless networking isn't yet as strongly supported in
Linux as traditional wired networking.

There are three basic steps to configuring an 802.11 wireless Ethernet card:

Hardware support for a wireless card is provided through the kernel, either with a
module or built in to the kernel. Generally, most newer Ethernet cards are provided
through kernel modules, so you'll want to determine the appropriate kernel module and
load it through /etc/rc.d/rc.modules. netconfig may not detect your wireless card, so you'll probably need
to determine the card yourself. See http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ for more
information on kernel drivers for various wireless cards.

The vast majority of this work is done by iwconfig, so as
always read the man page for iwconfig if you need more
information.

First, you'll want to configure your wireless access point. Wireless access points
vary quite a bit in their terminology, and how to configure them, so you may need to
adjust a bit to accommodate your hardware. In general, you'll need at least the following
information:

The domain ID, or name of the network (called the ESSID by iwconfig)

The channel the WAP uses

The encryption settings, including any keys used (preferably in hexadecimal)

A NOTE ABOUT WEP. WEP is quit flawed, but it's much better than nothing. If you wish a
greater degree of security on your wireless network, you should investigate VPNs or
IPSec, both of which are beyond the scope of this document. You might also configure your
WAP not to advertise its domain ID/ ESSID. A thorough discussion of wireless policy is
beyond the scope of this section, but a quick Google search will turn up more than you
ever wanted to know.

Once you've gathered the above information, and assuming you've used modprobe to load the appropriate kernel driver, you can edit rc.wireless.conf and add your settings. The rc.wireless.conf file is a bit untidy. The least effort is to
modify the generic section with your ESSID and KEY, and CHANNEL if required by your card.
(Try not setting CHANNEL, and if it works, great; if not, set the CHANNEL as
appropriate.) If you're daring, you can modify the file so that only the necessary
variables are set. The variable names in rc.wireless.conf
correspond to the iwconfig parameters, and are read by rc.wireless and used in the appropriate iwconfig commands.

If you have your key in hexadecimal, that's ideal, since you can be fairly confident
that your WAP and iwconfig will agree on the key. If you only
have a string, you can't be sure how your WAP will translate that into a hexadecimal key,
so some guesswork may be needed (or get your WAP's key in hex).

Once you've modified rc.wireless.conf, run rc.wireless as root, then run rc.inet1, again as root. You can test
your wireless networking with standard testing tools such as ping, along with iwconfig. If you have a
wired interface you may wish to use ifconfig to turn those
interfaces off while you test your wireless networking to ensure there's no interference.
You may also want to test your changes through a reboot.

Now that you've seen how to edit /etc/rc.d/rc.wireless for
you default network, let's take a closer look at iwconfig and see how it all works. This
will teach you the quick and dirty way of setting up wifi for those times when you find
yourself at an Internet cafe, coffee shop, or any other wifi hot spot and wish to get
online.

The first step is to tell your wireless NIC what network to join. Make sure you
replace “eth0” with whatever network interface your
wireless card uses and change “mynetwork” to
the essid you wish to use. Yes, we know you're smarter than that. Next you'll have to
specify the encryption key (if any) used on your wireless network. Finally specify the
channel to use (if needed).