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.