Wireless Tools for Linux

Linux & Wireless LANs Wavelan driver Linux Orinoco driver Papers Main page

Presentation Latest version Documentation Common Problems Drivers Other Wireless Apps


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 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 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.

Modern versions of the Pcmcia package offer the possibility to set up various wireless parameters at boot time (or card insertion time) through the file wireless.opts. This allow to fully integrate wireless settings in the Pcmcia scheme mechansism. This of course require that the above wireless tools are installed on the system.

Please note that the Wireless Tools (as of 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.
Version 20 adds some pretty nice features, like mode of operation, power saving settings and encryption setting.
But, unfortunately not all drivers support all these features...

Latest version & betas

The latest stable version is version 23, it is stable, most of the stupid bugs have been removed and it supports all Wireless Extensions (v13).

Version 23 adds :

Version 22 adds :

Version 21 adds :

Version 20 was already adding :

However, the version 20 and later don't work for older kernels (prior to 2.2.14 and 2.3.30), for those kernel I recommend to use version 19, which is also very stable (but with less features).

Both may be found on the Pcmcia ftp server, in the contrib directory :

In case of trouble, you can fetch also from here version 19, version 20, version 21, version 22 and version 23, but be gentle on this server...

The latest beta version adds support for Wireless Events and Scanning, and some bug fixes from Pavel Roskin. This is still a work in progress (some things need fixing) and to use the new features it requires the new driver API patches (aka Wireless Extensions v14).

New driver API for Wireless Extensions

I'm currently working on a new driver API for the Wireless Extensions. First phase is frozen and almost merged with Linus, second phase is now stable and pending some reviews... Anyway, the patches are there...

If you want to try it and apply those patches to your kernel, you need to do it in sequence. My kernel is 2.5.3-pre3, and I'm using the orinoco driver version 9b. If you use other versions, it may be more work (the kernel patches should be ok, the orinoco patches will be problematic).

Note that if you don't care about old obsolete drivers (wavelan, wavelan_cs and netwave_cs), you can skip many patches (like all the preliminary phase).

Also, as usual, it may crash or eat your hard drive. But it would not be fun otherwise...

  1. Preliminary phase : move a few drivers around
  2. First phase (Wireless Extensions v13) : replace ioctl handler by iw_handlers in drivers.
  3. Second phase (Wireless Extensions v14) : add driver and set events through rtnetlink and scanning support. Note : still work in progress, but at least now things are stable and documented...

Documentation & erratas

The Wireless Tools package include extensive man pages, which are the most up to date documentation on the capability of these tools.

I've written a small document describing the use of Pcmcia schemes and wireless.opts.

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 erratas and comments :

Debugging Wireless Extensions

Usually, people don't have much trouble with Wireless Extensions. There are a few gotchas, here are the most common ones :

Driver support

All the drivers for Wireless LANs are listed in the Linux Wireless LAN Howto, here are just a few status reports...

Wireless Applications for Linux

I need your help to make this section larger ;-)

The first set of application are applications that make use of Wireless Extensions :

Now, a few other applications that don't use Wireless Extensions but are useful anyway :
Wavelan, Orinoco and Wireless LANs - jt@hpl.hp.com
Updated 10 August 01
    Project hosted and sponsored by :