Translation(s): Français


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.

Driver

The Host AP driver provides support for Intersil (now Conexant) Prism 2/2.5/3 802.11b wireless LAN chipsets:

<!> USB devices are not supported, see linux-wlan-ng.

{i} 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:

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.

  1. 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.

  2. If not already performed, connect the device to your system. The necessary kernel module is automatically loaded for supported devices.

  3. Verify your device has an available interface:

    iwconfig
  4. Raise the interface to activate the radio, for example:

    ifconfig wlan0 up
  5. Configure your wireless interface as appropriate. See also firmware.

Troubleshooting

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

{i} 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

{i} 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).

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.

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.

See Also


CategoryHardware | CategoryWireless | CategoryNetwork