===========================================================
Agere Systems Inc.                               March 2004
Linux Driver Source/Library for Wireless PC Card
                                              Version: 7.18
===========================================================

This text file includes update information, installation
instructions, limitations to the current version of the
product, and suggestions to solve known issues or problems.


TABLE OF CONTENTS.

1.  SOFTWARE DESCRIPTION
2.  SYSTEM REQUIREMENTS
3.  NEW IN THIS RELEASE
4.  INSTALLATION NOTES
5.  TECHNICAL CONSTRAINTS
6.  KNOWN ISSUES
7.  TECHNICAL SUPPORT
        
-----------------------------------------------------------
1.  SOFTWARE DESCRIPTION

1.1 Description 

    This software supports the following network interface
    cards:
    * "Wireless PC Card Model 0104" ("Gold" and "Silver")
    * "Wireless PC Card Model 0106" ("Gold" and "Silver")
    * "Wireless Integrated Card Model 0202"
    * "Wireless Embedded Card Model 0504" (MiniPCI)
    * "Wireless PC Card Model 0110"
    * "Wireless PC Card Model 0111"
    * "Wireless MiniPCI Card Model 0506"
    * "Wireless MiniPCI Card Model 0508"
    * "Wireless CompactFlash Card Model 1401"
    * Other wireless adapters based on Agere's
      Hermes-I/Hermes-II chipset.

    This software is officially released and supported
    software of Agere Systems Inc.

1.2 Software Components

    This software for the Wireless PC Card is distributed
    in a compressed archive:
    * wl_lkm-7_18.tar.gz

    This archive contains driver source files. You can use
    these files to build and install a Wireless driver for
    your specific Linux kernel. 

    The current set of driver source files supports Linux 
    kernel versions 2.4.x, as included (for example) with
    the following Linux Distributions:
    * Red Hat version 7.0, 7.1, 7.2, 7.3, 8.0, 9.0
    * Suse    version 7.1, 7.2, 7.3, 8.0, 8.1

    In addition to the base driver source, the following
    source is also included:

    * HCF source - implements an interface to the Agere 
      Systems 802.11 Hermes-I/Hermes-II MAC Controller, as
      well as an interface to perform tertiary firmware
      downloads to the controller.
      Note that non-volatile downloads to the Hermes-I are
      NOT supported.
    * FW source - source files containing firmware images
      to allow the card to operate in either station (STA)
      or Access Point (AP) mode.

1.3 Software Versions

    The following software is included with this 
    distribution:
   
    General information:
    * README.wlags49              This file
    * wlags49.mk                  Top level Makefile
    * Build                       Script to build driver
    * Install                     Script to install driver

    Driver source and HCF library:
    * wireless/wlags49_cs.mk      Driver Makefile, PC Card
    * wireless/wlags49_pci.mk     Driver Makefile, PCI
    * wireless/*.c                Driver source code
    * include/hcf/debug.h         Driver debug support
    * include/hcf/hcfcfg.h        Header to configure HCF
    * include/wireless/*.h        Driver source headers
    * lib/Makefile                Header to build the
                                  HCF/DHF/FW library from
                                  corresponding source code
    * hcf/*                       HCF source code. DHF code
                                  is now in this directory
    * hostap/*                    Redistribution of the
                                  hostap project's source
                                  code
    * hostap/wpa_supplicant/*     A WPA supplicant, part of
                                  the hostap code

    Driver online manual page:
    * man/wlags49.4               Driver manual page

    PCMCIA configuration update:
    * etc/wlags49.conf            Add-on config file
    * etc/wlags49.mk              config update Makefile
    * etc/wlags49.patch           config update patch file

-----------------------------------------------------------
2.  SYSTEM REQUIREMENTS

2.1 Operating System

    This software can be compiled and installed with Linux 
    kernel versions 2.4.x. Unlike previous versions, which
    only built for x86 due to the pre-compiled HCF library,
    this driver should compile for other CPUs as well.
    However, as of the date of this release, no CPU
    architectures other than x86 have been verified.

2.2 Free Disk Space

    To compile the software you will need to have the full
    set of Linux kernel source files installed, as well as
    a sane build environment which includes all tools 
    necessary for compiling and linking code. Depending 
    on the exact version of the kernel, you will need 
    approximately 150 MB of free disk space.
    Once compiled, the driver will use about 150-200 KB.
    Please note, however, that this size is approximate and
    can vary depending on which version of the driver is
    built. In addition, adding debug tracing support will
    increase this size. 

-----------------------------------------------------------
3.  NEW IN THIS RELEASE

Version 7.17 - March 31, 2004
HCF6 Version 1.368
Hermes-I  Firmware Version: 9.48
Hermes-II Firmware Version: 2.26
    * Updated HCF6 code to latest release.
    * Fixed a problem with 32 char SSIDs.
    * Fixed a problem with setting more than one WEP key
      per profile in the Agere proprietary iwconfig-eth<x>
      file.
    * Fixed an interoperability issue with certain
      WPA-enabled access points whereby connections could 
      not be properly established.
      
      As mentioned below, for more information on WPA
      support, please refer to Section 4.10.

Version 7.17 - February 16, 2004
HCF Version: 1.365
Hermes-I  Firmware Version: 9.42
Hermes-II Firmware Version: 2.22
    * Updated the HCF code
    * Updated Hermes-II firmware
    * WPA support updates:
        - Updated the hostap code in the release, fixing an
          issue with the WPA supplicant running in a big
          endian environment.
        - Added support for Hermes-I based hardware.
        - Updated implementation of TKIP countermeasures
        - Reorganized Hermes specific code into its own
          "driver file" and added support for "hermes" in
          the -D option of the wpa_supplicant binary.
        - Fixed a bug hardcoding the supplicant to eth1,
          even if it didn't exist.
          
      For more information on WPA support, please refer to
      Section 4.10. 
      

Version 7.16 (Alpha) - January 23, 2004
HCF Version: 1.354
Hermes-I  Firmware Version: 9.42
Hermes-II Firmware Version: 2.16
    * Updated to new HCF and FW, removing the need for a
      seperate DHF module.
    * Added support for Wireless Extensions v15, including
      Wireless Events
    * Changed the format of the EnableEncryption module
      parameter and config file parameter, from a Y/N
      value to an ineger which supports values 0,1,2. This
      was necessary to support encryption options for WPA.
    * Added experimental (alpha) WPA support:
        - Included an development snapshot of the hostap
          project's source code under the directory
          'hostap'. This code contains a WPA supplicant
          which is needed to connect with any AP configured
          for WPA.
        - Only supports WPA-PSK (Pre-Shared Key)
        - Only supported in Hermes-II builds
        - Support for Big Endian platforms not yet complete
      
      Please refer to Section 4.10 on how to make use of
      the new WPA support included in this release. 
         

Version 7.14 - September 25, 2003
HCF Version: 1.2
Hermes-I  Firmware Version: 1.48
Hermes-II Firmware Version: 9.40
    * Code reorganization.
    * Began updating the wireless extensions.
    * Added support for Software AP mode.
    * Added support for tertiary firmware downloads.
    * Added support for CF (H1/H2) and PCI/Mini-PCI (H2)
      hardware.
    * Added support for Hermes-II based hardware.
    * Added build targets to the makefiles for all
      permutations which the driver can be built.
    * Replaced all references of 'wavelan2_cs' with
      'wlags49'.
    * Fixed a bug whereby the PCMCIA driver would cause a
      kernel panic when Card Services was stopped or
      restarted with the card inserted.
    * Integrated support for a newer version of the HCF/DHF
      modules. They are still built as a seperate library
      which is linked in at build time.
    * Bugfix related to a mismatch in the size of the
      wl_private structure from file to file.
    * Changed the PMEnabled parameter from a Y/N parameter
      to accept values 0,1,2. Done to allow support for
      Standard Power Management (Enhanced was already
      supported).
    * Added support for processing the mailbox data in the
      ISR.
    * Implemented new network scan method to match changes
      made to the Hermes-II firmware.
    * Provided interface for production (RTS) test.
    * Added queueing implementation on the Tx path to
      better handle conditions related to FID (card memory)
      exhaustion.
    * Added support for WDS in AP mode.
    * Added support for improved versions of the Hermes-I
      and Hermes-II firmware (v9.40 and v1.48, 
      respectively).
    * Made changes to support 802.1x; problems related to
      configuration of WEP and 
      Unicast/Multicast/Promiscuous mode.

Version 6.20  -  May 6, 2002
    * Added support for dynamic WEP key updates
      as required by 802.1x supplicants.
    * Fix to allow switching off encryption on the fly
      through the Wireless Extensions.

Version 6.16  -  Nov 23, 2001
    * Cleaned up enable/disable behavior to prevent 
      multiple associations. Initial card enable is now
      done when device is opened.
    * Improved suspend and card removal behavior to solve
      occasional transmit timeout.
    * Added wireless extension to get current BSSID
    * Enhanced wireless extension to get/set frequency
    * Agere-ized

Version 6.10  -  May 17, 2001
    * Solved hot unplug problem on 2.4 systems.
    * Changes to support older kernels.
    * Report version number of driver & firmware at startup
    * Changed wireless/wavelan2_cs.mk to fix different
      behavior of -MD option of newer (2.96) gcc.
    * pcmcia-cs package now on CD-ROM in Xtras/Linux/PCMCIA
    * Fixed "Card Services release does not match!" problem
      And added Build and Install scripts.
      Thanks to David Hinds.
    * Cleaned up some comments

Version 6.07 (Beta)  -  January 15, 2001
    * Added more support for wireless extensions
      Thanks to Dave Kristol.
    * Support for Linux kernel 2.4.x
      Thanks to Eric & Peter Whiting.
    * Moved driver from clients to wireless directory

Version 6.06  -  October 30, 2000
    * Updated README.wavelan2_cs and man page
    * Renamed ap_density to distance_between_aps for
      consistency with other products

Version 6.05 (Beta)  -  August 14, 2000
    * Added support for IBSS mode.

Version 6.03 (Beta)  -  August 8, 2000
    * Added support for Wireless MiniPCI Card in HCF
      Library.
    * Corrected writing of WEP keys. Keys were taken from
      module parameters instead of instance structure.
    * Corrected spinlock_t redefinition fix for 2.0.x 
      kernels in combination with PCMCIA package 3.1.13 and
      higher. Thanks to Dave Johnson.
    * Added device close code to adapter_release(). 
      Thanks to Donald Becker.

Version 6.02  -  June 13, 2000

    * Renamed from version 6.01 (Beta)
      Usage of the PCI adapter has positive results on 
      several PCI PCs. 

Version 6.01 (Beta)  -  April 19, 2000

    * Changed interrupt enable/disable code to support PCI
      Interrupts, thanks to David Hinds and feedback from
      the Linux community.
    * Solved redefinition of spinlock_.. and capable on
      2.0.x kernel in combination with PCMCIA package
      3.1.13 and higher.

Version 6.00  -  March 2, 2000

    * Corrected setting of mac_address parameter on 
      pre-2.1.0 kernels
    * Corrected number of IO Ports (=0x40)
    * Corrected dbm() function
    * Added support for Microwave Oven Robustness
    * Added iwspy support, thanks to Dan Forsberg and 
      Jim Binkley
    * Added support for 3.3/5 Volt cards
    * Added etc/wavelan2_cs.conf

Version 4.00  -  July 2, 1999

    * Added support for WEP encryption
    * Corrected string transfer of private ioctls used by 
      the Wireless extensions.
    * Support for signal levels in dBm; reported by the 
      Wireless extensions.
    * Support for CFG_DRV_IDENTITY moved from HCF to MSF.
    * Validate module parameters by default. This was only
      enabled in debug mode in the previous versions.
    * Fixed Card Power Management bug. 
      Version 3.10 did not enable PM on standard (2 Mbit/s)
      cards with STA firmware 2.00, when configured to 
      enable PM.
    * Corrected module parameter type of irq_mask 
      (h = short) and irq_list (1-4b = 1-4 bytes).

Version 3.10  -  April 28, 1999

    * Changes to allow for the module parameter differences
      between Linux 2.0 and Linux 2.1. 
      Linux 2.0 only allowed for 32-bit integer parameters,
      the 2.1 or later kernels allow for 8, 16 and 32 bit 
      parameters.
    * Added BSD clause to the GPL license.
    * Added support for Linux Wireless extensions.
    * Fixed the setting of the network_name and 
      station_name when the name was empty or set to ANY
      for network_name.
    * The user can now enable Card Power Management:
      PLEASE NOTE: This function should not be enabled 
                   until software that supports Card Power
                   Management will be installed on both:

                   - PC Card (Use Station Functions 
                              firmware v2.00 or higher) and

                   - WavePOINT-II Access Point 
                               (use AP software v2.03 or
                                higher) ,

                  In case you enable Card Power Management
                  without having updated the firmware to 
                  version levels listed above, the driver
                  will not effectuate Card Power
                  Management.
    * Added support for transmit timeout handling.
    * Re-added channel parameter.
    * Renamed parameter receive_all_multicast to 
      receive_all_multicasts
    * Changed the values of the parameters 
      card_power_management and receive_all_multicasts 
      to 'Y' for Enable and 'N' for Disable. 

Version 1.27 (Beta-2) - March 2, 1999

    First Source/Library distribution.
    * Changed module parameters names to better conform
      to the PCMCIA and 802.11 naming conventions.

Version 1.20 (Beta-1) - February 9, 1999

    Binary only version for Slackware 3.6 (linux 2.0.35)
    and RedHat 5.2 (linux 2.0.36).

-----------------------------------------------------------
4.  INSTALLATION NOTES

    The driver files for the Linux driver are not "ready" 
    for direct installation onto any Linux computer.
    To build and install the driver you will need some 
    expertise on the Linux operating system in general and
    the type and version installed of the kernel installed
    on your computer. 
    With this knowledge you can use the driver source files
    provided to build your own Linux driver for your 
    specific computer and kernel.

4.1 Before you start

    1) Determine the type and version of the Linux kernel
       of your computer and check whether it meets the 
       system requirements listed in section 2 of this
       README.

    2) If you're building for PC Card or Compact Flash,
       read the Linux PCMCIA-HOWTO by David Hinds. This
       document is probably provided on the CD-ROM of your
       Linux distribution. You can download the latest
       version from: 

           http://pcmcia-cs.sourceforge.net

       Please read the section titled "Prerequisites and
       kernel setup" of the PCMCIA-HOWTO.

4.2 Build the driver

  4.2.1 Build for PC Card / Compact Flash

    1) Obtain a copy of the Linux PCMCIA package from a 
       CD-ROM of your Linux distribution or download the
       latest version from: 

          http://pcmcia-cs.sourceforge.net

       For your convenience, the Agere Systems Wireless
       CD-ROM contains a copy of the PCMCIA package in sub-
       directory: Xtras/Linux/PCMCIA

    2) To unpack the Linux PCMCIA package, copy it to the
       current working directory and type:
       % tar -xzvf pcmcia-cs-3.2.1.tar.gz

       Note: If you use the archive supplied on the CDROM,
       use archive name "pc3_2_1.tgz" instead of 
       "pcmcia-cs-3.2.1.tar.gz".

    3) Extract the wlags49 distribution archive on top
       of the Linux PCMCIA package.
       % cd pcmcia-cs-3.2.1
       % tar -xzvf ../wl_lkm-7_18.tar.gz

    4) To build and install the driver, follow the
       procedure below:
       % ./Configure

       Answer the presented questions. Usually the default
       answers are OK and pressing "Enter" is enough.
       On newer RedHat systems, however, you should specify
       "/usr/src/linux-2.4" as the Linux source directory 
       instead of the default "/usr/src/linux".
       
       For more detailed information on configuration, 
       building and installing, see the PCMCIA-HOWTO.

       To build the default drivers, which support Hermes-I
       and Hermes-II in STAP mode (allowing the driver to
       dynamically switch between station (STA) and Access
       Point (AP) mode), run the Build script:
       % ./Build

       This script determines whether your system uses
       in-kernel PCMCIA and either builds the full PCMCIA
       package or just the driver.

       If you would like to build special versions of the
       Card Services driver which only operate in either
       STA or AP mode, any one of the following commands
       can be issued:
       % make -f wlags49.mk h1_cs_sta
       % make -f wlags49.mk h1_cs_ap
       % make -f wlags49.mk h2_cs_sta
       % make -f wlags49.mk h2_cs_ap

       Before installing the driver with the Install
       script, you must become 'root':
       % su
       ..

       % ./Install

       This script determines whether your system uses
       in-kernel PCMCIA and either installs the full PCMCIA
       package or just the driver.

    5) If it becomes necessary to clean the build, issue
       the following commands:
       % make clean
       % make -C lib clean

  4.2.2 Build for PCI

    1) Extract the wlags49 to the current working
       directory.
       % tar xzvf wl_lkm-7_18.tar.gz

    2) To build the default PCI driver (Hermes-II in STAP
       mode), issue the following command:
       % make -f wlags49.mk pci

       If you would like to build special versions of the
       Card Services driver which only operate in either
       STA or AP mode, any one of the following commands
       can be issued instead of the above 'Build' script:
       % make -f wlags49.mk h2_cs_sta
       % make -f wlags49.mk h2_cs_ap
       
    3) Install the driver using the following command:
       % make -f wlags49.mk pci_install

    4) If it becomes necessary to clean the build, issue
       the following command:
       % make -f wlags49.mk pci_clean

4.3 Configure your Wireless PC Card

    Before configuring the driver through module parameters
    (in /etc/pcmcia/config.opts), make sure that 
    /etc/pcmcia/wireless.opts file is either absent or
    contains blank parameter values as shown below.

    *,*,*,00:60:1D:*|*,*,*,00:02:2D:*)
        INFO=""
        ESSID=""
        MODE=""
        KEY=""
    ;;

    If you want to configure the driver through the
    wireless extension (in /etc/pcmcia/wireless.opts),
    please refer to section 4.6.

    In addition, there is another configuration method which
    can be used; please refer to section 4.7 for information
    on how to configure the card via the Agere configuration
    file.

    1) To configure the Wireless PC Card, please refer to:
       * The online manual page (wlags49.4)
         % man wlags49
       * The network adapter sections of the PCMCIA
         documentation. 
         % more PCMCIA-HOWTO

    2) Use an editor to configure the module parameters:
       # vi /etc/pcmcia/config.opts

       For example:
       a) To connect your computer to a wireless infra-
          structure that includes access points such as
          the AP-1000 or AP-500, you will need to identify
          the network name of the wireless infrastructure.

          For example if your infrastructure uses the 
          network name "My Network", edit the config.opts 
          file to include the following:
   
          module "<driver_name>" opts "network_name=My\ Network"
          
          where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI
   
          Notice that the space character needs to be 
          escaped with a backslash.
  
       b) To connect your computer to a Residential Gateway
          RG-1000, you will need to know the RG ID
          (=network_name) and the encryption key.
          You can find the RG ID on a small label on the
          rear of the unit.

          For example if your RG-1000 has ID 225ccf and you
          did not change the encryption key yet, edit the 
          config.opts file to include the following:
   
          module "<driver_name>" opts "network_name=\"225ccf\" key_1=\"25ccf\" enable_encryption=Y"
          
          where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

          If you changed your encryption key, you should
          specify this key as key_1 on the parameter line.
   
       c) To connect your computer to a peer-to-peer 
          network, in an environment without access points,
          the IBSS mode is recommended.

          For example to connect to a peer-to-peer network
          called "My Network", enter the following in the 
          config.opts file:

          module "<driver_name>" opts "create_ibss=Y network_name=My\ Network"
          
          where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

       d) Optionally you can also include a "Station Name" 
          value that can be used to indentify your computer 
          on the wireless network.

          For example if you wish to name your computer 
          "Wave1" when connecting it to a wireless 
          infrastructure,  edit the config.opts file to 
          include the following:
   
          module "<driver_name>" opts "network_name=Ocean station_name=Wave1"
          
          where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

       e) To connect your computer to an Ad-Hoc workgroup
          of wireless computers, enter the following in the
          config.opts file:

          module "<driver_name>" opts "port_type=3"
          
          where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

          Note that the "Ad-Hoc Demo Mode" is not the
          recommended mode for a peer-to-peer network. 
          The configuration of this  non-interoperable mode 
          is only explained here for special applications
          (e.g. research, or compatibility with other / 
          previous WaveLAN/IEEE products).

          The IBSS mode described in c) is the preferred
          and interoperable mode for creating a 
          peer-to-peer network. 

    3) Use an editor to modify the network options for your
       adapter. 
       # vi /etc/pcmcia/network.opts

       The parameters need to be correct for the connected
       network. Check with your system
       administrator for the correct network information. 
       Refer to the PCMCIA-HOWTO for more configuration 
       information.

       For example:
            *,*,*,*)
                IF_PORT=""
                BOOTP="n"
                IPADDR="10.0.0.5"
                NETMASK="255.255.255.0"
                NETWORK="10.0.0.0"
                BROADCAST="10.0.0.255"
                GATEWAY="10.0.0.1"
                DOMAIN="domain.org"
                DNS_1="dns1.domain.org"
                ;;

       Note that RedHat 7.1 doesn't use the network.opts
       to configure the driver. Instead it uses a GUI-
       based tool called 'netcfg' ('neat' in newer
       versions of Red Hat, 'YaST' in SuSE Linux) which 
       creates scripts, like ifcfg-eth0, in the directory 
       /etc/sysconfig/network-scripts.
       Using the default GNOME menu, you can start netcfg
       from: Programs->System->Network Configuration

    4) Restart the PCMCIA services.
       # /etc/rc.d/rc.pcmcia restart
         or
       # /etc/rc.d/init.d/pcmcia restart


    For a more detailed description about the various 
    configuration options and definitions, please consult
    the Wireless documentation in Adobe's Acrobat PDF
    format on the CD-ROM that came with your product . 

    Wireless User documentation is also available on the 
    Wireless Web Site: http://www...
    You can download the documentation in Adobe's Acrobat
    Portable Document Format (PDF). To view or print PDF
    files you will need the freeware Acrobat Reader that 
    can be downloaded from the Adobe Web Site:
    http://www.adobe.com/acrobat

4.4 Configuring your Wireless PCI card

    Note that the above method of configuring the card
    using /etc/pcmcia/config.opts is only valid for
    PCMCIA/CF cards. For miniPCI cards, refer to your
    system's documentation on modules.conf to load the
    driver with the proper options for a given wireless
    ethernet interface. In addition, network configuration
    tools like 'netcfg', 'neat', or 'YaST' (described above
    in Section 4.3, Step 3) can be used to configure the
    miniPCI card. Lastly, the Agere configuration file
    described in Section 4.6 may also be used for miniPCI
    devices.

4.5 Troubleshooting

    When the Wireless PC Card is inserted, the card manager
    will emit beeps in different tones to indicate success
    or failure of particular configuration steps.
      a) Two high beeps
         - The card was identified and configured 
           successfully.
      b) One high beep followed by a low beep
         - The card was identified, but could not be 
           configured.
         - Examine the system log (dmesg) for PCMCIA error
           or warning messages.
      c) One low beep
         - The card could not be identified.
         - Execute "cardctl ident" to display the adapter 
           PnP information.
           Verify the PnP information matches an entry in 
           the PCMCIA configuration file 
           (/etc/pcmcia/config).
         - Examine the system log (dmesg) for PCMCIA error 
           or warning messages.

    The Wireless PC Card has two LEDs that indicate the
    state of the adapter and network.
      * Power LED (toward the middle of the adapter)
        - This LED indicates power has been applied, and
          the card is functional. In normal operation mode
          with Card Power Management disabled, it will be 
          steady-on. With Card Power Management enabled, it
          will blink rapidly (several times per second).
      * Transmit/Receive LED (closer to the edge of the 
        adapter)
        - This LED will flash when it detects transmit or 
          receive packets.

      * Both LEDs blink at the same time every 10 seconds.
        - The adapter was unable to make contact with the
          named wireless network. Verify the network_name,
          in the config.opts file matches the network name
          of the access point.
      * LEDs indicate normal operation with the Power LED
        steady-on or blinking rapidly and Transmit/Receive
        LED flashing, but no traffic.
        - If the network is operating in normal mode (ie.
          port_type = 0 or not specified), and a 
          network_name has been specified, verify the
          workstation network parameters (ifconfig, route,
          etc.) are correct for the wireless network.
        - If the network is operating in Ad-Hoc (peer-to-
          peer) mode (ie. port_type = 3), the adapter needs
          another workstation/adapter to communicate with.
          Verify the network parameters on both of the
          workstations (ifconfig, route, etc.) are correct.

    Refer to the online manual page for additional 
    configuration, feature and support information.
       % man wlags49 
         or
       % man 4 wlags49 
         or
       % nroff -man wlags49.4 | more

4.6 Wireless extensions

    This driver has support for the "Wireless Extensions".
    This interface allows the "Wireless Tools" to get
    statistics from the driver and allows to change the
    configuration of the driver on the fly.

    The latest versions of the PCMCIA package contain
    scripts that use the wireless extension to configure
    the driver as an alternative to the configuration
    through module parameters as described in section 4.3.
    Read the /etc/pcmcia/wireless.opts file for the theory
    of operation.
    When the driver is configured, go to section 4.3 step
    3 to configure the network parameters.

    For more information, refer to the following WEB pages:
    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions.html
    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

4.7 Agere configuration file
    
    In addition to using either the module options or the
    wireless extensions methods to configure a wireless
    device, this version of the software also supports an
    Agere specific implementation. This was done because:

    * Module options will configure multiple devices the
      same.
    * Wireless extensions parameters do not cover all of the
      available options in the driver.

    For each wireless ethernet device (identified by eth<n>,
    where n is a positive integer), a file
    /etc/agere/iwconfig-eth<n> can be created which contains
    configuration information for a wireless device. For
    example, the file /etc/agere/iwconfig-eth1 is the config
    file for eth1. This file should contain Key/Value pairs in
    the format:

    <Key>=<Value>

    where <Key> is the parameter to configure and <Value> is
    the value to assign it. For example, if the config file 
    /etc/agere/iwconfig-eth1 described above contains the
    following:

    DesiredSSID=some_network
    EnableEncryption=Y
    Key1=net01
    TxKey=1

    this will configure eth1 to associate to the ESSID
    'some_network' with encryption on, where the the first
    encryption key is 'net01' and the key to use for encryption
    is Key 1.

    Note that this will only work on Agere hardware which
    uses this driver. For other wireless drivers, or
    non-wireless devices, this file can be present, but will
    have no effect.
   
    Please refer to the man page for more information on 
    this configuration file and the parameters that can be
    set.

4.8 Identifying the software

    This section explains how to identify the version of
    this software once it is unpacked or installed.

    The Linux Driver Source/Library distribution consist of
    two main components, the driver source and the HCF 
    library. 

    * To quickly identify the version of the source, type: 

      % grep DRV_VERSION_STR wl_version.h
      #define DRV_VERSION_STR	"7.18"

    * To identify the revision of the HCF library contained
      in the driver, type:

      % strings libstap-h1.a | grep Revision
      HCF$Revision: 5.15

      OR
    
      % strings libstap-h2.a | grep Revision
      HCF$Revision: 5.15

    To identify a compiled wlags49 driver, go to the
    directory where the driver is located. Card Services
    drivers (wlags49_h1_cs.o and wlags49_h2_cs.o) are
    located in:
    /lib/modules/<kernel-version>/pcmcia
    
    PCI drivers (wlags49_h2.o) are located in:
    /lib/modules/<kernel-version>/kernel/drivers/net

    * To retrieve the version of the source used to
      compile the driver, type:

      % strings <driver_name> | grep Agere
      <driver_name> v7.18 for PCMCIA, by Agere Systems, http://www.agere.com
      
      where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

    * To retrieve the revision of the HCF library used
      to compile the driver, type:

      % strings <driver_name> | grep Revision
      HCF$Revision: 5.15
      
      where <driver_name> is:
              wlags49_h1_cs - Hermes-I PCMCIA
              wlags49_h2_cs - Hermes-II PCMCIA
              wlags49_h2    - Hermes-II MiniPCI

    At startup the wlags49 driver reports its version
    in the system log file (/var/log/messages).

4.9 Driver Nomenclature
    Because this latest release supports more than one
    Hermes CPU, bus architecture, etc., a naming convention
    was devised for the resulting binaries that can be
    built from this source code. Driver binaries are named 
    according to the following convention:
    
    wlags49_<hermes_type>_<bus_arch>.o
    
    where 'wlags49' denotes an Agere WaveLan Linux build,
    
    <hermes_type> is:
            'h1' for Hermes-I 
            'h2' for Hermes-II
            
    and <bus_arch> is:
            'cs' for Card Services (PCMCIA, Compact Flash)
            nothing for PCI or MiniPCI.
            
    For example, a driver built for Hermes-I Card Services
    (PCMCIA/Compact Flash) will be named:
    
    wlags49_h1_cs.o
    
    whereas a driver built for Hermes-II MiniPCI will be
    named:
    
    wlags49_h2.o 

4.10 WPA Support
    Release (v7.16) introduced support for WPA in 
    Pre-Shared Key (WPA-PSK) mode. However, the setup and
    configuration required to provide this support is
    rather extensive. This section is an attempt to
    describe, as clearly as possible, the steps which need
    to be taken in oder to support WPA.
    
    a. Driver Configuration
       Aside from the actions described in previous
       sections on how to build the driver, no other
       configuration is required. The driver ships with WPA
       support included in the build, although it is not
       enabled by default. This, however, will be addressed
       by the WPA supplicant.
       
    b. Rebuild kernel to support Wireless Extensions
       This driver currently supports Wireless Extensions 
       v15, with backwards compatiblity to older versions.
       Version 15 extends the standard IOCTL interface, as
       well as providing additional support for Wireless
       Events, an interface for the driver to send
       notifications to listening processes in user space.
       The event support contained in v15 is required by
       the WPA supplicant in order to properly establish
       connections with an AP.
       
       However, not all linux kernels provide support for
       this interface. In the event the kernel does not
       support v15 of the Wireless Extensions, either:
       
       1. New kernel source supporting Wireless Extensions
          v15 must be built, OR
       2. The existing kernel source must be patched and
          rebuilt to include this support.
          
       The easiest way to check for compatibility is to run
       the following command: 'iwconfig -v'. The resulting
       output will indicate if the kernel provides the
       necessary support.
       
       Information on how to patch and rebuild the linux 
       kernel is not provided here; for more information on
       these topics, refer to the HOWTOs on Patching and
       Rebuilding the Linux Kernel. They are readily 
       available on the web, but here are a few links for
       reference:
       
       http://www.linux.org/docs/ldp/howto/Kernel-HOWTO/
       http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO.html
       
       http://www.linuxhq.com/patch-howto.html
       
       In addition, please visit the 'Wireless Tools for
       Linux' Official Website to obtain any necessary
       Wireless Extensions patches:
       
       http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
       
    c. Build wpa_supplicant
       Included in the driver's source tree, under the
       directory 'hostap/wpa_supplicant', is the source
       code for a WPA supplicant. This source uses its own
       Makefile and is not tied to the driver's build
       process in any way. It does, however, rely on some
       of the driver's header files to build.
       
       To build wpa_supplicant, simply type 'make' at a
       terminal prompt. If there are any errors during the
       build process, it probably means two of the key 
       libraries needed by the supplicant, libdnet and
       libpcap, are either old or not present on the
       system, and probably need to be built as well. For
       more information on where to obtain these packages,
       please refer to the README file in the
       'hostap/wpa_supplicant' directory.
       
    d. wpa_supplicant.conf
       Once wpa_supplicant is properly built, it must be
       configured. It's configuration typically consists of
       entries which specify a network name and either a 
       passphrase or a complete WPA pre-shared key. This
       file contains numerous example entries which can be
       used a template for configuration. Significant
       testing was performed using the first entry as a
       template for development. Using simply an SSID and
       passphrase implies WPA-PSK mode, which is the only
       mode of operation currently supported.
       
    e. Steps to establish a connection with an Access Point
       Once all of the above is complete, the following
       steps will establish a connection with an AP. Note
       that although most systems provide a way to bring
       up an interface automatically, these methods will
       not work, as the scripts used will have no
       knowledge of the wpa_supplicant. 
       
       1. Insert the PCMCIA card. If a PCI card is being
          used, make sure the driver is loaded. 
          
       2. Bring up the interface:
          
          > ifconfig eth<x> up
          
          where 'x' is the corresponding number of the 
          wireless ethernet interface. 
          
       3. Execute wpa_supplicant in the following manner:
       
          > wpa_supplicant -D hermes -i eth<x> -c wpa_supplicant.conf &
          
          where 'x' is the corresponding number of the 
          wireless ethernet interface. For more information
          on wpa_supplicant's command-line options, please
          refer to its README file.
          
       4. Once the wpa_supplicant is finished establishing
          the connection, assign an IP address to the
          interface. This can be done manually:
          
          > ifconfig eth<x> <IP address>
          
          or using the DHCP client:
          
          > dhclient eth<x>
          
       At this point the interface can be used to transmit
       and receive data. Note that due to connection
       re-negotiations which take place periodically,
       wpa_supplicant must continue to run on the interface
       as long as it is being used.
    
-----------------------------------------------------------
5.  TECHNICAL CONSTRAINTS

    At the time of release of this software, the following 
    constraints are identified:

5.1 Using the ISA adapter

    Description: To allow operation in desktop computers
                 Agere also provides an optional ISA bus
                 to PC Card adapter (also referred to as 
                 "swapbox").

                 This ISA Adapter can be configured
                 for two different I/O Address values:
                 * 3E2 (factory-set default)
                 * 3E0  

    Impact:      By default the i82365 module of the Linux
                 pcmcia package will only probe at 3E0. 

    Action:      1) Read the manual page on the probing 
                    of the i82365 module, by typing the 
                    command:

                    man i82365

                 2) Apply one of the two following options:

                    a) Change the I/O address strapping of
                       the ISA adapter by replacing the 
                       jumper on the ISA adapter.
                       The correct jumper setting is 
                       pictured in the electronic "Wireless
                       ISA Adapter, Getting Started Guide"
                       provided on the Wireless Software 
                       CD-ROM. This guide is provided in
                       Adobe's  Acrobat PDF format.

                    b) Alternatively, you can load the 
                       i82365 module with the 
                       "extra_sockets" parameter set to 1.

                       On a RedHat 5.x thru 7.x, system,
                       put this in the file 
                       "/etc/sysconfig/pcmcia":
                       PCMCIA=yes
                       PCIC=i82365
                       PCIC_OPTS="extra_sockets=1"
                       CORE_OPTS=
                       CARDMGR_OPTS=
                    
                       For other Linux distributions, you
                       are advised to consult the 
                       "PCMCIA-HOWTO" notes for information
                       about changing the I/O Address
                       probing.

5.2 Using the PCI Adapter

    Description: To allow operation in desktop computers
                 Agere also provides an optional PCI bus
                 to PC Card adapter (also referred to as 
                 "swapbox").

                 For correct interrupt assignment, the
                 system should support PCIBIOS 2.2.
                 It is recommended to use PCMCIA package
                 version 3.1.14 or higher.

                 The default configuration of the interrupt
                 routing method of the PCI Adapter's TI 
                 CardBus Controller is incorrect.

    Action:      1) Read the manual page on the "Options
                    specific for TI CardBus Controllers"
                    of the i82365 module, by typing the
                    command:

                    man i82365

                 2) Load the i82365 module with the 
                    "irq_mode" parameter set to 0.

                    On a RedHat 5.x thru 7.x system, put
                    this in the file 
                    "/etc/sysconfig/pcmcia":
                    PCMCIA=yes
                    PCIC=i82365
                    PCIC_OPTS="irq_mode=0"
                    CORE_OPTS=
                    CARDMGR_OPTS=
                    
                    For the location of the PCMCIA scripts
                    on other Linux distributions, you are
                    advised to consult the "PCMCIA-HOWTO",
                    "Notes about specific Linux
                    distributions".

-----------------------------------------------------------
6.  KNOWN ISSUES

    The only known issues are related to WPA support:
    
    1. Only WPA-PSK is supported.

-----------------------------------------------------------
7.  TECHNICAL SUPPORT

7.1 Finding Information

    On the Agere Systems Web Site you can find the most
    recent device drivers, software updates and user 
    documentation.

    World Wide Web:    http://www.agere.com

7.2 Contact Technical Support

    If you encounter problems when installing or using this
    product, or would like information about our other
    "Wireless" products, please contact your local
    Authorized "Wireless" Reseller or Agere Systems sales
    office.
    
    Addresses and telephone numbers of the Agere Systems
    sales offices are listed on our Agere Systems web site.

    When contacting Technical Support, please use the
    Problem Report Form and send it to us by Fax or E-Mail.
    The Problem Report Form 'REPORT.TXT' (Plain text
    format) is included on the disk. Alternatively, you can
    download the Problem Report Form from the Agere Systems
    web site.

    Include Product Name, Serial Number and software
    version number with each request to help the Support
    Group helping you.

===========================================================
                          END OF FILE
