The Linux Wireless Extension and the Wireless Tools are an Open
Source project sponsored by Hewlett Packard (through my
contribution) since 1996, and build with the contribution of many
Linux users all over the world.
The Wireless Extension (WE) is a generic API allowing a driver
to expose to the user space configuration and statistics specific to
common Wireless LANs. The beauty of it is that a single set of tool
can support all the variations of Wireless LANs, regardless of their
type (as long as the driver support Wireless Extension). Another
advantage is these parameters may be changed on the fly without
restarting the driver (or Linux).
The Wireless Tools (WT) is a set of tools allowing to
manipulate the Wireless Extensions. They use a textual interface and
are rather crude, but aim to support the full Wireless
Extension. There are many other tools you
can use with Wireless Extensions, however Wireless Tools is the
reference implementation.
- iwconfig manipulate the basic wireless parameters
- iwlist allow to initiate scanning and list frequencies, bit-rates, encryption keys...
- iwspy allow to get per node link quality
- iwpriv allow to manipulate the Wireless Extensions specific to a driver (private)
- ifrename allow to name interfaces based on various static criteria
Most Linux distributions also have integrated Wireless Extensions support in
their networking initialisation scripts, for easier boot-time
configuration of wireless interfaces. They also include Wireless Tools
as part of their standard packages.
Wireless configuration can also be done using the Hotplug or uDev scripts and
distribution specific support, this enable the proper support of any
removable wireless interface (Pcmcia, CardBus, USB...).
Any versions of the Pcmcia
package offer the possibility to do wireless configuration of
Pcmcia and Cardbus card through thefile
wireless.opts. This allow to fully integrate wireless settings in
the Pcmcia scheme mechansism. However, this method is now deprecated
in favor of distribution specific methods.
Please note that the Wireless Tools (starting with version 19)
supports fully IEEE 802.11 parameters and devices, support
older style of devices and most proprietary protocols, and are
prepared to handle HiperLan as well. More recent versions of course
adds more 802.11 support.
But, unfortunately not all drivers support all these features...
But, unfortunately not all drivers support all these features...
Documentation & errata
The Wireless Tools package include extensive for each of the tools, which are the most up to date and most detailed documentation on the capability of these tools. The latest stable version of Wireless Tools is , it is stable, most of the stupid bugs have been removed and it supports all Wireless Extensions (from version v11 to v21).
man pages
The Wireless Tools package also includes two text documents on the
usage of Wireless Tools to configure wireless cards
automatically :
- DISTRIBUTIONS.txt describes how various Linux distributions implement Wireless Extensions in their specific configuration scripts. Please read this, as most distributions no longer use wireless.opts. I need your help making this document better.
- HOTPLUG-UDEV.txt describes how to manage wireless interfaces using the HotPlug subsystem and the distribution specific support for wireless, and includes some more advanced material. This is a complement to DISTRIBUTIONS.txt.
- PCMCIA.txt describes the use of Pcmcia schemes and wireless.opts (i.e. configuration with the default Pcmcia scripts). This method is deprecated, but still work and has some advantages.
Some driver documentations (man page, web, README) describe
what the driver support in term of Wireless Extension and how the
various Wireless Extension parameters map to the capability of the
card.
The Linux Wireless LAN Howto contains a
section about the Wireless
Extensions, but it's a bit out of date for the details...
I have also the following errata and comments :
- In the rare cases where your kernel isn't compiled with Wireless Extensions (/proc/net/wireless non-existent), you need to recompile it with Wireless Extensions (CONFIG_NET_RADIO enabled).
- After recompiling a kernel with Wireless Extension, you have to recompile your driver or the Pcmcia package as well (and restart it).
- All versions of Wireless Tools up to version 26 need to be compiled for the precise version of Wireless Extension present on the system. Starting with Wireless Tools 27, Wireless Tools can handle multiple versions of Wireless Extension without recompile.
- The Wireless Extensions and Wireless Tools version numbers will not match with each other. The Wireless Tools and the Wireless Extensions (the underlying API) evolve independantly of each other. The command iwconfig --version gives you the detail of your setup.
- Compilation of the Wireless Tools used to be tricky, especially in the header area. I believe this has been fixed for good.
- For kernels before 2.2.14/2.3.30, use Wireless Tools version 19.
- For kernel after 2.2.14/2.3.30 use Wireless Tools version 20 or greater.
- For kernel after 2.6.13 use Wireless Tools version 27 or greater.
- The tools and the wireless library are GPL.
- In the old time, you could upgrade Wireless Extensions by just changing wireless.h. Starting with Wireless Extensions v12, this is no longer true, you need to apply the full patch to the kernel. See below for the patches.
- Further down, you will find a FAQ about common problems.
version 29 You can download Wireless Tools on this server :
- Download the latest wireless tools package
The main features of the latest beta is support for non-ASCII ESSIDs (such as localised ESSID), support for displaying Scanning Capabilities, slightly bigger scan buffer, fixing minor bug iwconfig parser and minor enhancement to ifrename :
- Wireless Tools version 30-pre9 (beta)
- Wireless Tools 28 with Wireless-RtNetlink support (WE-20) (alpha)
No comments:
Post a Comment