Host AP driver - Frequently Asked Questions
===========================================

1. What does "GetNextTuple: No more items" mean in hostap_cs initialization?
2. Why RX does not work?
   What does "NETDEV WATCHDOG: wlan0: transmit timed out" mean?
   (interrupt delivery problems)
3. What is wrong with Host AP mode in secondary (station) firmware v1.4.2?
4. What is causing 'Unresolved symbols' in depmod/modprobe?
5. How can I upgrade Prism2/2.5/3 firmware?
6. Why did I get two network interfaces (wlan0 and wifi0) even when I have
   only one wireless card?
7. Why does my D-Link DWL-650 rev. P1 or D-Link DWL-520 rev. E1 (or any other
   card with small flash) card fail?
8. Does Host AP driver support IEEE 802.11a and 802.11g? Does it support
   chipsets other than Prism 2/2.5/3?



1. What does "GetNextTuple: No more items" mean in hostap_cs initialization?

This is one of the most often reported problems in getting the
hostap_cs.o driver working. It is usually reported for D-Link DWL-650
PC Card, e.g., on ISA-to-PCMCIA adapter. Later versions of the driver
report this also with "Vcc mismatch - skipping this entry".

Most common reason for getting this is a mismatch in voltage
configuration. The driver tries to make sure that the voltage (Vcc)
configuration in CIS and the slot match each other. It refuses to
initialize the card if the card CIS does not include a CFTABLE entry
with a matching Vcc value. This seems to be a problem for some cases
since the CIS is invalid or the reported voltage is incorrect.

As a workaround, the driver supports a module parameter ignore_cis_vcc
that can be used to skip this verification. This can be enabled by
setting ignore_cis_vcc=1 in /etc/pcmcia/hostap_cs.conf (commented
example line in the end of file). This can also be tested by manually
loading the module with 'modprobe hostap_cs ignore_cis_vcc=1' before
inserting the card).



2. Why RX does not work?
   What does "NETDEV WATCHDOG: wlan0: transmit timed out" mean?
   (interrupt delivery problems)

If the driver does not seem to receive any packets or sending packets
results in "NETDEV WATCHDOG: wlan0: transmit timed out", the reason is
probably in interrupt delivery problems. This is quite common with
PCI-to-PCMCIA adapters. Newer than 2002-05-19 of the driver have a
test that will report this after the initialization ("wlan: Possible
interrupt delivery problem"). Another method for checking this is to
observer whether interrupt counters in /proc/interrupts increase for
hostap_cs/wlan0 entry.

Adding suitable irq_mode=# setting in PCIC_OPTS line of
pcmcia-configuration is the most common fix for this. pcmcia-cs HOWTO
has more information on how to debug and fix interrupt delivery
problems at
http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO-5.html#irqmode



3. What is wrong with Host AP mode in secondary (station) firmware v1.4.2?

It looks like secondary firmware v1.4.2 sends beacon frames properly,
but does not respond to probe requests. With most station cards, this
prevents authentication and association and thus, in practice, no data
frames can be sent. It has been reported that at least some Cisco
Aironet 350 cards can associate with Host AP mode even with firmware
v1.4.2 (i.e., without receiving probe response), but Prism2 and
Lucent/ORiNOCO/Agere seem to require probe response and they do not
thus associate with AP using v1.4.2 firmware.

This is fixed in later secondary firmware versions; probably already
in 1.4.3, but at least 1.4.9 has been tested to work. In other words,
this problem can be fixed by upgrading card firmware.



4. What is causing 'Unresolved symbols' in depmod/modprobe?

Installation of Host AP driver (e.g, 'make install_pccard') may report
unresolved symbols when running depmod. These are usually caused with
mismatch in kernel configuration for modversions.

Example:

depmod reports unresolved symbol 'eth_type_trans' (this is without
modversions):
depmod:         eth_type_trans

but kernel was really configured with CONFIG_MODVERSIONS:

# grep eth_type_trans /proc/ksyms
c01b66c0 eth_type_trans_Rdb9cd26f

(notice the _R... postfix)

This happens if the kernel configuration given to Host AP driver's
Makefile (.config in KERNEL_PATH) has not CONFIG_MODVERSIONS, but the
running kernel is compiled with it.
If the kernel were configured without modversions, /proc/ksyms would
show the symbols with _R... postfix:


Mismatches in kernel configuration can be fixed by using the same
configuration (i.e., Linux kernel .config) for both the kernel and the
driver. If you are using a kernel from a distribution installation
(i.e., you have not compiled it yourself), you will need to create a
matching .config file somehow. This depends on the distribution you
are using, but 'make oldconfig' in kernel source directory might work
with some distributions. If you compile the kernel yourself, it will
be easier, since you already have to have created the correct .config
file.



5. How can I upgrade Prism2/2.5/3 firmware?

Prism2/2.5/3 cards and Host AP driver support two different mechanism
of upgrading the card firmware. Firmware images (primary and station)
can be downloaded either into volatile memory (RAM download) or
non-volatile memory (flash upgrade). Firmware images downloaded into
volatile memory are lost when the card is resetted, so they are quite
safe. Flash upgrade with incorrect images may cause permanent problems
(i.e., render the card useless), so certain amount of caution is
always recommended for this.

Note! Some of the older versions of Host AP driver or prism2_srec had
fatal bugs in flash upgrade. Only versions 0.1.0 or newer should be
used when performing non-volatile flash upgrade!

utils/prism2_srec (run 'make' in utils directory to build this) is a
tool that can be instructed Host AP driver to download firmware image
into the wlan card. Brief usage information is available by running
this program without any command line parameters. Please note, that
the downloading support is disabled in the default Host AP driver
build. You will need to change this by defining
PRISM2_DOWNLOAD_SUPPORT (and PRISM2_NON_VOLATILE_DOWNLOAD if you want
to update flash); see driver/modules/hostap_config.h for more details.

Jun Sun has written a mini-howto on flashing Intersil Prism
Chipsets. This is available at http://linux.junsun.net/intersil-prism/.



6. Why did I get two network interfaces (wlan0 and wifi0) even when I have
   only one wireless card?

Host AP driver supports multiple virtual interfaces per wireless
card. wifi0 is the master radio interface and wlan0 is the first
virtual interface for this radio. Other virtual interfaces are wlan0ap
(for hostapd), and one interface per WDS link.

In most cases, one should ignore wifi0 interface and just use wlan0
interface. In other words, assign IP address to wlan0, not wifi0 and
in general, just ignore the wifi0 interface.



7. Why does my D-Link DWL-650 rev. P1 or D-Link DWL-520 rev. E1 (or any other
   card with small flash) card fail?

Some of the new Prism3-based cards use a smaller flash chip that does
not include full firmware for the card. For example, D-Link DWL-650
rev. P1 and D-Link DWL-520 rev. E1 are such cards. These cards require
that the firmware is downloaded to the card during initialization. See
utils/hostap_fw_load for example commands on doing this.



8. Does Host AP driver support IEEE 802.11a and 802.11g? Does it support
   chipsets other than Prism 2/2.5/3?

Host AP driver supports only Intersil Prism chipsets, versions 2, 2.5,
and 3. Those chipsets support IEEE 802.11b only; other chipsets are
not supported. All utilities distributed with Host AP driver except
wpa_supplicant work only with Host AP driver, so they are limited to
the same hardware. wpa_supplicant works with other drivers, including
those that support 802.11a and 802.11g.
