[:DebianWiki/EditorGuide#translation:Translation(s)]: none

(!) [:/Discussion:Discussion]


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.

?TableOfContents(3)

Driver

The [http://w1.fi/ 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"] instead).

{i} These chipsets are alternatively supported by the ["orinoco"] and ["linux-wlan-ng"] drivers. Prism54 chipsets (802.11g) are supported by the [:prism54:p54] drivers.

The Host AP driver is included in the mainline kernel since 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 based do not have firmware in flash, firmware is required to be downloaded to these devices prior to operation.

Installation

The Host AP driver is in the mainline Linux kernel since 2.6.14. It is included as modules in Debian kernel images.

  1. Install the hostap-utils and wireless-tools packages:

    aptitude update
    aptitude install hostap-utils wireless-tools

    Note that installation of hostap-utils will [:KernelModuleBlacklisting:blacklist] the ["orinoco"] drivers.

  2. If not already performed, connect the device to your system.
  3. The necessary kernel module should be [:Modules:automatically loaded]. If necessary, it can be manually loaded via either:

    modprobe hostap_cs

    or

    modprobe hostap_pci

    or

    modprobe hostap_plx
  4. Verify your device has an available interface:

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

    ifconfig wlan0 up
  6. [:WiFi/HowToUse:Configure] your wireless interface as appropriate. See also [#firmware firmware].

Troubleshooting

See [#firmware firmware] below.

?Anchor(firmware)

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 [http://linux.junsun.net/intersil-prism/ Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets].

Checking

The primary and station (aka secondary) firmware versions on your device can be queried by examining the kernel ring buffer (dmesg):

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)

?Anchor(firmware_prism3ssf)

Prism 3 SSF

Prism 3 SSF (Small Serial Flash) devices require firmware to be provided, as this is not stored in the device's flash memory. The hostap-utils package provides [http://manpages.debian.net/man/8/ifup ifupdown] 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 2/2.5/3 firmware can be acquired from http://linux.junsun.net/intersil-prism/firmware/ and http://www.red-bean.com/~proski/firmware/

See also [#firmware_nicrename 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 [#firmware_prism3ssf 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 barbaz
    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 [#firmware_nicrename 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 the 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 [http://linux.junsun.net/intersil-prism/ Jun Sun's mini-HOWTO on flashing Intersil Prism chipsets], do not attempt to flash secondary/station firmware without an associated primary 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 [#firmware_nicrename network interface renaming] below.

?Anchor(firmware_nicrename)

Network interface renaming

You may receive the following message when using prism2_srec against a Host AP interface:

# prism2_srec wlan1 pk010101.hex
srec summary for pk010101.hex
Component: 0x0015 1.1.1 (primary 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 (Lenny) or /etc/udev/rules.d/z25_persistent-net.rules (Etch) and reassign the rules to ensure the relevant Host AP driver is assigned the wlan0 interface. Run udevadm trigger (Lenny) or udevtrigger (Etch) to immediately apply these changes.

Once resolved, use prism2_srec with the wlan0 interface:

# prism2_srec wlan0 pk010101.hex
srec summary for pk010101.hex
Component: 0x0015 1.1.1 (primary firmware)


Verifying update compatibility and combining data:
Plug record length mismatch (PDR=0x0001): 14 != 16
==> extend from default
OK.

Supported Devices

?Anchor(supported_hostap_cs)

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 [http://hostap.epitest.fi/releases/hostap-driver-0.4.9.tar.gz hostap-driver-0.4.9] (old stable release).

?Anchor(supported_hostap_pci)

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 on Lenny.

?Anchor(supported_hostap_plx)

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 on Lenny.

See Also


CategoryHardware | CategoryWireless