Prism 2/2.5/3 devices (hostap)
This page describes how to enable support for WiFi devices based on Prism 2/2.5/3 chipsets, using the Host AP driver on Debian systems.
Contents
Driver
The Host AP driver provides support for Intersil (now Conexant) Prism 2/2.5/3 802.11b wireless LAN chipsets:
hostap_cs (supported devices)
- Supports Prism2/2.5/3-based PC Card devices.
hostap_pci (supported devices)
- Supports Prism2/2.5/3-based devices using a direct PCI interface.
hostap_plx (supported devices)
- Supports Prism2/2.5/3-based PC Card devices using the PLX9052 PCI bridge.
USB devices are not supported, see linux-wlan-ng.
Prism54 802.11g chipsets are supported by the p54 drivers.
The Host AP driver is part the Linux kernel (since version 2.6.14). It was previously packaged for Debian in the hostap-driver source package (removed in 423247). Advantages of this driver include:
- Master mode operation.
- Downloading of primary and secondary (aka station) firmware to RAM and flash memory.
WPA support (station firmware 1.7.4 or later required).
The driver uses firmware stored in the device's flash memory. As Prism 3 SSF (Small Serial Flash) devices do not have firmware in flash, firmware is required to be downloaded prior to operation.
Installation
The Host AP driver is part of the Linux kernel and included as modules in Debian Linux kernel images.
Install the hostap-utils and wireless-tools packages:
aptitude install hostap-utils wireless-tools
Note that installation of hostap-utils will blacklist the orinoco drivers.
If not already performed, connect the device to your system. The necessary kernel module is automatically loaded for supported devices.
Verify your device has an available interface:
iwconfig
Raise the interface to activate the radio, for example:
ifconfig wlan0 up
Configure your wireless interface as appropriate. See also firmware.
Troubleshooting
Prism 3 SSF devices (e.g. D-Link DWL-650 revision P1, D-Link DWL-520 revision E1) require firmware to be loaded from userspace.
WPA support requires station firmware version 1.7.4 or later.
See firmware below.
Firmware
The prism2_srec utility can be used to verify and download firmware images to Prism 2/2.5/3 devices on Linux systems. It is provided in the hostap-utils package.
More information about flashing firmware (with this and other utilities) on these devices can be found in Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets.
Firmware can be acquired from http://linux.junsun.net/intersil-prism/firmware/ and http://www.red-bean.com/~proski/firmware/
Checking
The primary and station (aka secondary) firmware versions on your device can be queried by examining the kernel ring buffer (dmesg(1)):
wifi0: NIC: id=0x800c v1.0.0 wifi0: PRI: id=0x15 v1.1.0 wifi0: STA: id=0x1f v1.4.9
... or by using the hostap_diag utility:
$ su # hostap_diag wlan0 Host AP driver diagnostics information for 'wlan0' NICID: id=0x800c v1.0.0 (PRISM II (2.5) PCMCIA (SST parallel flash)) PRIID: id=0x0015 v1.1.0 STAID: id=0x001f v1.4.9 (station firmware)
Prism 3 SSF
Prism 3 SSF (Small Serial Flash) devices require firmware to be provided, as it is not stored in the device's flash memory. The hostap-utils package provides ifupdown(8) hooks for this purpose: fw_primary and fw_secondary.
An example /etc/network/interfaces configuration using these command options:
iface wlan0 inet dhcp wpa-ssid foo wpa-psk barbazqux fw_primary /lib/firmware/pm010102.hex fw_secondary /lib/firmware/rf010800.hex
Before the interface is raised, prism2_srec will be called to download the referenced primary and secondary/station firmware images to the device's volatile memory.
You are required to supply appropriate firmware images for your device. Prism 3 firmware can be acquired from http://linux.junsun.net/intersil-prism/firmware/ and http://www.red-bean.com/~proski/firmware/
See also network interface renaming.
Downloading to RAM
The following procedure can be used to transiently upgrade station firmware to version 1.7.4 or later, which is necessary for WPA support.
Primary and station firmware can be downloaded to volatile memory (RAM) during interface configuration (see Prism 3 SSF above). This can also be used on devices with firmware in flash memory, to temporarily upgrade its primary/station firmware until the device loses power.
The /etc/network/if-pre-up.d/hostap-utils script provided by hostap-utils assumes use of a Prism 3 SSF device. A small modification is required to allow station firmware to be downloaded on other Prism 2/2.5/3 devices.
Open /etc/network/if-pre-up.d/hostap-utils in a text editor and comment lines 27 and 30:
load_secondary() { # if ! grep -q pri_only=1 /proc/net/hostap/$1/debug; then echo "Downloading secondary (station) firmware $2 to interface $1" $PRISM2_SREC -rp $1 $2 # fi return 0 }
Once modified, use the fw_primary and fw_secondary command options. For example, the following /etc/network/interfaces interface definition will download v1.1.4 primary and v1.7.4 secondary/station RAM firmwares to a "Microsoft Wireless Notebook Adapter MN-520" device:
iface wlan0 inet dhcp wpa-ssid foo wpa-psk barbazquz fw_primary /lib/firmware/ak010104.hex fw_secondary /lib/firmware/rf010704.hex
After raising the interface (ifup wlan0), you can use hostap_diag to verify current firmware versions in use:
# hostap_diag wlan0 Host AP driver diagnostics information for 'wlan0' NICID: id=0x800c v1.0.0 (PRISM II (2.5) PCMCIA (SST parallel flash)) PRIID: id=0x0015 v1.1.4 STAID: id=0x001f v1.7.4 (station firmware)
See also network interface renaming.
Downloading to Flash
The following procedure can be used to permanently upgrade station firmware to version 1.7.4 or later, which is necessary for WPA support.
Firmware images can also be downloaded to non-volatile (flash) memory, which will upgrade/downgrade firmware stored on the device. This can be performed via prism2_srec. This is not possible for Prism 3 SSF devices.
Warning: Incorrect use of this utility can render your device inoperable.
This feature requires Host AP non-volatile firmware download support, which is disabled in Debian stock kernel images:
$ grep HOSTAP_FIRMWARE_NVRAM /boot/config-`uname -r` # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
See HowToRebuildAnOfficialDebianKernelPackage to build a custom kernel with CONFIG_HOSTAP_FIRMWARE_NVRAM enabled. The specific option to enable can be found within the kernel's configuration:
Device Drivers ---> Network device support ---> Wireless LAN ---> IEEE 802.11 for Host AP (Prism 2/2.5/3 and WEP/TKIP/CCMP) Support for downloading firmware images with Host AP driver Support for non-volatile firmware download
Once the Host AP driver has non-volatile download support available, execute prism2_srec to download appropriate firmware to your device's flash memory.
As stated in Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets, do not attempt to flash primary firmware without an associated secondary/station firmware.
For example, ensure your supplied files are compatible, then perform a non-volatile download:
# prism2_srec wlan0 pk010101.hex sf010704.hex srec summary for pk010101.hex Component: 0x0015 1.1.1 (primary firmware) srec summary for sf010704.hex Component: 0x001f 1.7.4 (station firmware) Verifying update compatibility and combining data: Plug record length mismatch (PDR=0x0001): 14 != 16 ==> extend from default PRI: old iface 1:4-4 new iface 1:4-4 Allowing S3 overlap due to CRC-16 signature at 0x007e17fe (was: ffff) OK.
(continue only if the firmware is regarded as compatible, ie. "OK")
# prism2_srec -f wlan0 pk010101.hex sf010704.hex srec summary for pk010101.hex Component: 0x0015 1.1.1 (primary firmware) srec summary for sf010704.hex Component: 0x001f 1.7.4 (station firmware) Verifying update compatibility and combining data: Plug record length mismatch (PDR=0x0001): 14 != 16 ==> extend from default PRI: old iface 1:4-4 new iface 1:4-4 Allowing S3 overlap due to CRC-16 signature at 0x007e17fe (was: ffff) OK. Downloading to non-volatile memory (flash). Note! This can take about 30 seconds. Do _not_ remove card during download. OK. Components after download: NICID: 0x800c v1.0.0 PRIID: 0x0015 v1.1.1 STAID: 0x001f v1.7.4
See also network interface renaming below.
Network interface renaming
You may receive the following message when using prism2_srec against a Host AP interface:
# prism2_srec wlan1 rf010704.hex srec summary for rf010704.hex Included file name: RF010704.HEX Component: 0x001f 1.7.4 (station firmware) Could not read wlan PDA. This requires PRISM2_DOWNLOAD_SUPPORT definition in driver/module/hostap_config.h.
As CONFIG_HOSTAP_FIRMWARE is enabled in Debian stock kernels, this is caused by udev's renaming of the kernel-assigned interface to wlan1 (or other interval):
udev: renamed network interface wlan0 to wlan1
... however, /proc/net/hostap/wlan0/ will remain, whereas the Host AP driver utilities will attempt to use /proc/net/hostap/wlan1/ which does not exist. This affects all firmware download operations.
To resolve, edit /etc/udev/rules.d/70-persistent-net.rules and reassign the rules to ensure the relevant Host AP driver is assigned the wlan0 interface. Run udevadm trigger to immediately apply these changes.
Once resolved, use prism2_srec with the wlan0 interface:
# prism2_srec wlan0 rf010704.hex srec summary for rf010704.hex Included file name: RF010704.HEX Component: 0x001f 1.7.4 (station firmware) Verifying update compatibility and combining data: OK.
Supported Devices
hostap_cs
The page HowToIdentifyADevice/PC_Card explains how to identify a PC Card device.
The following list was extracted from hostap_cs.conf provided in hostap-driver-0.4.9 (old stable release).
3Com AirConnect PCI 777A Addtron AWP-100 11Mbps WLAN Card Airvast WL100 Allied Telesyn AT-WCL452 ASUS WL-100 8011b WLAN PC Card Belkin 802.11b WLAN PCMCIA BroMax Freeport 11Mbps WLAN Card Buffalo WLI-CF-S11G Compaq WL100 11Mb/s WLAN Card Compaq WL200 corega WL PCCL-11 D-Link DRC-650 11Mbps WLAN Card D-Link DWL-650 11Mbps WLAN Card D-Link DWL-650 Rev. P1 EMTAC A2424i 11Mbps WLAN Card Fulbond Airbond XI-300B Intersil PRISM2 Reference Design 11Mb/s WLAN Card Level-One WPC-0100 Linksys WCF12 Wireless CompactFlash Card Linksys WPC11 11Mbps WLAN Card Linksys WPC11 Ver 2.5 11Mbps WLAN Card Linksys WPC11 Ver 3 11Mbps WLAN Card Longshine LCR-8531 11Mbps WLAN PCMCIA CARD Microsoft Wireless Notebook Adapter MN-520 1.0.3 Netgear MA401 NETGEAR MA401RA Philips 802.11b WLAN PCMCIA Proxim RangeLAN Sagem Samsung SWL2000-N 11Mb/s WLAN Card SanDisk ConnectPlus Senao NL-2011CD PLUS Ext2 Mercury Senao SL-2011CD/SL-2011CDPLUS SMC 2632W 11Mbps WLAN Card SonicWALL Long Range Wireless Card U.S. Robotics IEEE 802.11b PC-CARD WLAN PRISM PCMCIA CARD 37300P RevB6 Zcomax XI-325H 200mW Z-Com XI300 11Mb/s WLAN Card ZoomAir 4100 11Mb/s WLAN Card ZyXel Zyair B-101 802.11b WLAN card
hostap_pci
The page HowToIdentifyADevice/PCI explains how to identify a PCI device.
The following list is based on the alias fields of modinfo hostap_pci in Debian 2.6.32 (2.6.32-45) kernel images.
PCI: 1260:3872 Intersil Corporation ISL3872 [Prism 3] PCI: 1260:3873 Intersil Corporation ISL3874 [Prism 2.5]/ISL3872 [Prism 3] PCI: 167D:A000 Samsung Electro-Mechanics Co., Ltd. MagicLAN SWL-2210P 802.11b [Intersil ISL3874]
hostap_plx
The page HowToIdentifyADevice/PCI explains how to identify a PCI device.
The following list is based on the alias fields of modinfo hostap_plx in Debian 2.6.32 (2.6.32-45) kernel images.
PCI: 10B7:7770 3Com Corporation 3CRWE777 PCI(PLX) Wireless Adaptor [Airconnect] PCI: 111A:1023 Efficient Networks, Inc (Device name unknown) PCI: 126C:8030 Northern Telecom (Device name unknown) PCI: 1385:4100 Netgear MA301 802.11b Wireless PCI Adapter PCI: 1562:0001 Symbol Technologies (Device name unknown) PCI: 15E8:0130 National Datacomm Corp Wireless PCI Card PCI: 15E8:0131 National Datacomm Corp NCP130A2 Wireless NIC PCI: 1638:1100 Standard Microsystems Corp [SMC] SMC2602W EZConnect / Addtron AWA-100 / Eumitcom PCI WL11000 PCI: 16AB:1100 Global Sun Technology Inc GL24110P PCI: 16AB:1101 Global Sun Technology Inc PLX9052 PCMCIA-to-PCI Wireless LAN PCI: 16AB:1102 Global Sun Technology Inc PCMCIA-to-PCI Wireless Network Bridge PCI: 16AB:1103 Global Sun Technology Inc (Device name unknown) PCI: 16EC:3685 U.S. Robotics Wireless Access PCI Adapter Model 022415 PCI: EC80:EC00 Belkin Corporation F5D6000
See Also
linux-wlan-ng - Driver for Prism 2/2.5/3 USB chipsets
External Links
http://w1.fi/hostap-driver.html - Driver homepage
http://linux.junsun.net/intersil-prism/ - Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets
- Prism 2/2.5/3 firmware images: