Not all wireless cards that are supported by Linux will work with XSupplicant.
There are several reasons for this, but most are related to issues with drivers.

DRIVER MAINTAINERS :  Please see the section at the end of this document for
information on what needs to be implemented in order to allow your driver to
work with 802.1x, and dynamic keying!

We (the Open1x developers) have tested all of the cards Linux supports, that
we have been able to get our hands on.  Below are the cards that we have
tested, and the results we found.


Linux Based

Card Name
Chipset
Auth
dWEP
WPA
WPA2/802.11i
Wireless Extensions 18 (or higher)
Notes
Orioco WaveLAN 802.11b Cards
Agere Hermes
Yes
Yes
No
No
No
Use 0.15rc1 or newer driver.  Use -z when attempting to use dynamic WEP.
SMC SMC2635W
ADMTek
Yes
No
No
No
No
Authenticates, but cannot pass traffic.  Tested version 1.0.5.
Linksys WPC11 Ver. 3
Prism
Yes
Yes
Yes
Yes
Yes
Use hostap driver, and -a command line switch.
SMC SMC2632W Version 3
Atmel
Yes
Yes
Yes
No
No
Use version 3.4.1.0.
Atheros-based MADwifi Cards
Atheros
Yes
Yes
Yes
No
No
Use the -z command line option for dynamic WEP.  Tested with latest CVS as of 04/07/05
Cisco 340/350 cards
Cisco
Yes
Yes
No
No
No
Use kernel driver with temp keying patch.
Intel Pro 2100
Intel
Yes
Yes
Yes
Yes
No
Use latest driver version.
Intel Pro 2200
Intel
Yes
Yes
Yes
Yes
No
Use latest driver version.  Use -z option when doing dynamic WEP.
ndiswrapper
Various*
Yes*
Yes*
Yes*
No
No
Tested with Version 1.1 of the driver.

* See the appropriate section below for more information on this driver
wrapper.



-- Getting a driver to work with 802.1x, dynamic WEP, and Linux --
------------------------------------------------------------------

In most cases, getting a wireless card driver to work correctly with 802.1x,
and Linux is fairly simple.  Current driver implementations will issue a card
reset when the WEP keys are set.  When the card is reset, it will start a new
802.11 authentication/association.  This in turn causes a new 802.1x
authentication to happen.  Once the 802.1x authentication is complete, and a
WEP key is set, the card is again reset.

As you can see, this behavior will cause the card to reset itself constantly,
and keep the card from passing traffic correctly.  The solution to this problem
is as simple as *NOT* having the card reset when a WEP key is set! It should
be noted that driver resets which do not cause re-association should not
exhibit this problem, since "reset" might mean different things under the
hood to different drivers.

One other issue that seems to be common among wireless card drivers is the
assumption that the last WEP key set should be the WEP key used to transmit.
Prior to 802.1x, this made some amount of sense, and would work with no
problems.  However, because 802.1x enables the use of more than one key (one
for transmit, one for recieve, one for broadcast, etc.) the assumption that
the last key set is the transmit key generally doesn't work.  Instead, when
the IOCTL to set the key is made, the only time that the index for the
transmit key should change, is when the key length is zero.


-- Driver wrappers for Windows driver compatibility --

There are currently two projects that we are aware of that attempt to provide
the ability to load and use Windows wireless card drivers under Linux -
DriverLoader, a commercial product, and ndiswrapper, an Open Source product.

We have tested with some cards and ndiswrapper, and when the Windows driver
supports the needed functionality, Xsupplicant should be able to use it.