********************** Linux-wlan-ng FAQ **************************
For additions, corrections, and clarifications, send mail to
solomon@linux-wlan.com with FAQ in the subject.
*******************************************************************

Q: What devices does the linux-wlan-ng driver support?

	Currently, the linux-wlan-ng driver supports the Intersil
	Prism2/2.5/3 chipsets.  These chipsets are used in a wide
	variety of PCMCIA, PCI, and USB products.  If it has a Prism
	chip in it, linux-wlan-ng should support it.

Q: Will linux-wlan-ng support some feature or funkiness in
   the <pick one> Linux distribution?
 
	Our development target always consists of stock kernels from
	kernel.org and stock pcmcia_cs.  If a given distribution
	chooses to do something funky, we rely on users of that
	distribution to contribute patches to deal with their
	funkiness.

	The quickest way to get some action on this kind of item is to
	communicate with any users of the same distribution that you
	can find on the linux-wlan-[devel|user] lists about working up
	a patch.  If it's reasonably sane and doesn't break things for
	our development environment or for other distributions, we'll
	be more than happy to roll that patch into the next release.  

Q: What does "resultcode=implementation_failure" mean?

	Complicated Answer: 
	Each command that can be issued with wlanctl-ng returns a status
	called "resultcode".  Resultcode is something that we picked up
	from the 802.11 MLME definition.  In the standard, resultcode
	is an enumeration with a fixed set of values.  To be able to
	report failures that a driver detects that are outside the
	context of the 802.11 standard set of resultcode values, we 
	invented the "implementation_failure" value.

	Simple Answer:
	Go look in your kernel log for more detailed error information.

Q: I'm trying to use the HostAP/orinoco/aironet/wvlan driver and it
   won't work!

	That has nothing to do with the linux-wlan-ng driver.  Go ask
	those responsible for those drivers.

Q:  Where do I find some RPMS for linux-wlan-ng?  The ones on
    the ftp are dreadfully out of date!

	http://prism2.unixguru.raleigh.nc.us/

Q: I installed the RPMs/compiled the driver and installed it and it
   won't work when I try to run 'ifup wlan0' or whatnot.

	First, ensure you're running the most up-to-date version of
	the driver.  Many problems have been fixed in newer releases.

	802.11 wireless networks are much more complex than wired
	ethernet networks.  They require much more configuration than
        an ip address.   If you are using pcmcia, edit the file 
        /etc/pcmcia/wlan-ng.opts to set the network parameters.  For
        PCI, PLX, or USB adapters, you need to edit /etc/wlan.conf.
	
	You also need to make sure you have the correct settings in
	/etc/modules.conf (alias wlan0 prism2_usb). 

	Might we suggest you read the README file?

Q: When I try to load the driver, I get a whole bunch of errors about
   unresolved symbols.

	The running kernel does not match the kernel the driver was
	compiled for.  If you downloaded a RPM, make sure you
        downloaded the correct version for your kernel.  This should not
        happen if you compiled the driver from source -- if it does, the
        kernel configuration you compiled against does not match the
        running kernel.  Probably a screwed-up distro kernel.

Q: I have a DWL-520 and it won't work!

	The DWL-520 *requires* a PCI 2.2 compliant motherboard.  Only
        very new machines support this.  Yes, the box lied.  Check the
        documentation for your system and/or motherboard to see if it is
        PCI 2.2 compliant.  If not, return the DWL-520 and buy a Linksys
        WMP11 istead.

Q: All I see is "Tx attempt prior to association, frame dropped"

	You are not associated with an access point.  Double-check the
        settings in /etc/wlan.conf (USB, PCI, PLX) or /etc/pcmcia/wlan-ng.opts
        (for PCMCIA users).    If all of these settings are correct (you
        did check with your admin, right?) make sure the access point
        doesn't have a MAC filter installed or has different WEP settings.

	If all of this is verified correct, and are using a PCMCIA
	card, try setting the "irq_mode=0" option.  See the
	documentaiton in the pcmcia-cs sources.

Q: I installed the modules, performed a 'wlanctl-ng wlan0 lnxreq_autojoin'
   command, and it still won't work!

	You did read the README, didn't you?  You need to perform a 
	"wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable" in order to
        torn on the radio.  The pcmcia scripts and the /etc/init.d/wlan
        script do this for you.

Q: I have a XXX USB 802.11b device, will it work with this driver?

	Most 802.11b USB devices use the ATMEL AT76C503A chipset, which
        is not supported by the linux-wlan-ng project.  However, there
	are some prism2.5-based USB adapters, most notably the Linksys
	WUSB v2.5.  The other versions (1.0, 2.6, 3.0) are based on
        ATMEL chipsets.

Q: The wlan-ng driver says my ATMEL AT76C503A device is unsupported!

	That's because it's not a Prism-based device!   Linux-wlan-ng
	does not currently support ATMEL chipsets, mainly because ATMEL
	has not been forthcoming with technical programming documentation.
	
	However, ATMEL has an unspported binary-only Linux driver
	that they make available to their vendors.  So please
	call/email your vendor (and/or ATMEL) for this driver.  
	If they get enough requests, they may eventually care about
	supporting Linux users.

	For more information on the ATMEL boards, see:
	http://at76c503a.sourceforge.net/    (Open source driver)
	http://www.fuw.edu.pl/~pliszka/hints/at76c503a.html  (summary)
	http://www.wireless.org.au/~jhecker/atmeldrv/atmeldrv.html (driver)

	There is a mailing list for the ATMEL driver:
	http://iprserv.jura.uni-leipzig.de/mailman/listinfo/atmel-wlan-usb

	In the mean time, we suggest returning the ATMEL device and
	buying one that the linux-wlan-ng driver supports. </plug>

Q: My prism2.5-based USB adapter won't work!

	An excellent guide can be found at:

	http://www.fuw.edu.pl/~pliszka/hints/prism2.html
	
Q: My prism2.5-based USB adapter won't come up if it's plugged in at boot! 

	Thanks to buggy firmware, it is often necessary to perform a
        device reset on initialization.  You can perform this by adding
        "options prism2_usb prism2_doreset=1" in your /etc/modules.conf

	Primary firmware 1.1.0 is known to improve this considerably; 
	Pester your vendor to release updated firmware.

	To check the firmware version, run: "dmesg |grep ident"

Q: My PC crashes when the USB device is plugged in at boot!

	This is due to how the driver performs the device reset.  
	You are probably using the 'usb-uhci' driver with an intel
        chipset.  Unfortunately, the crashes happen deep within the USB
        core, so there's nothing the linux-wlan-ng driver can do.

	In the mean time, try using the 'uhci' host controller driver
        instead ("alias usb-controller uhci" in /etc/modules.conf), or
        plug the USB device into a hub.

Q: What's with these "Called from within soft interrupt context" messages?

	This is the result of a workaround to avoid a kernel oops in
	the USB driver code.  You can ignore them.

Q: Why doesn't promiscious mode or monitor mode work under USB?

	Thanks to a quirk in the networking subsystem of Linux, we
	can't use synchronous device calls to set the promiscious mode
	status.  Unfortunately, the only call that it affects is the
        one to turn on promiscious mode.  :)

	Monitor mode, on the other hand, is enabled as of 0.1.14-pre6.
	That said, it's likely to be quite unreliable, especially under
	higher loads thanks to fundamental bandwidth limitations of the
	USB interface.  

Q: How come I can't transmit when in monitor mode?

	You can't.  It's a fundamental "feature" of the hardware.

Q: How come the /proc/net/wireless info isn't updated when in monitor mode?

	The definition of "signal quality" refers to the quality of the
	link to the associated access point.  When you're in monitor
	mode, you're not associated, so this information is by defintion 
	irrelevant.

Q: What do the various monitor mode options do?

	enable=[true/false]           Turn it on and off.  required.
	channel=[1-14]                Sniff channel.  required.
	prismheader=[true/false]      Optionally preppend a special
                                      radio header on the packet.
				      Defaults to off.
	keepwepflags=[true/false]     If you had WEP configured correctly
				      the card will perform WEP decoding.
				      Defaults to off.
	stripfcs=[true/false]         When true, the 802.11 FCS is not
				      stripped from incoming packets.
				      Defaults off.

Q: How come iwconfig/iwspy/[random other wireless tool] doesn't work?
	
	linux-wlan-ng only supports a subset of the wireless
	extensions; generally read-only things.  However, you won't
	need any of those tools as wlan-ng comes with its own set of
	tools that closely mirror the 802.11 spec.  Have a look
	through the documentation and supplied scripts.

	That said, if full wireless extension support is really
	important to you, you're more than welcome to implement it
	and submit a patch.  

Q: Where can I download updated firmware for my Prism2/2.5/3-based card?

	Ask your vendor.  Due to legal reasons, we cannot
	provide updated frmware with the driver code.

Q: How can I update my firmware under Linux?

	Use the 'prism2dl' utility.  Note that it has been removed from
	newer revisions of the driver sources due to liability reasons --
        too many people fried their cards and blamed AVS for it.

Q: Can I use my 802.11b card as an AP under Linux?

	Yes, and in the true free software fashion, there are several
	ways:

	a) linux-wlan-ng supports AP operation by using special tertiary
	   firmware on prism devices.  This firmware is not generally
	   available, however.   Contact Intersil for licensing terms.

	b) The Prism2 HostAP driver uses the special HostAP mode of the
           prism chipsets.            http://people.ssh.com/jkm/Prism2/

	c) The OpenAP project, which involves flashing Linux on access
           points.                    http://opensource.instant802.com/

Q: After a few minutes of use, my card stops responding!  I'm using WEP.

	There seems to be card lockup problems with newer cards (new
	DWL-650 cards, linksys WPC11v3) when WEP is turned on.  Since
	WEP is done in hardware, there is nothing the linux-wlan-ng
	driver can currently do.   We suggest you pester your vendor for
	a firmware update.

	Prism2.5 boards are also known to lock up under heavy use; this
	is due to bugs in the WEP engine.  Even if you perform a card
	reset, the WEP engine remains stuck.  

	Host-based WEP is an option we are investigating at this time.

Q: When using the wlan-ng driver on a multiprocessor machine, I get
   packet corruption or random crashes/lockups.

	0.1.14-pre4 included many fixes for SMP operation, but it still
	has problems.  Work is ongoing to fix these issues.  You may
	find up-to-date patches at http://www.shaftnet.org/~pizza/software
	Feedback is encouraged.

Q: What other resources are there for Wireless LANs under Linux?

	http://www.fuw.edu.pl/~pliszka/hints/wireless.html

	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html
