                    	BreezeNet Pro.11 Series
            	      SA-PCR Wireless LAN Adapter
         	        Linux Driver version 1.0
  	  BreezeCOM Wireless Access Solutions Ltd. (18-01-2000)
==============================================================================
Original Linux specifics (C) Christian Olrog 1999
==============================================================================
Changes and add-ons by Alfred Cohen , BreezeCOM Ltd. January 2000
==============================================================================

Contents:
Section 1: What is this driver?
Section 2: Requirements and Prerequisites
Section 3: Installation
Section 4: Building the driver
Section 5: Configuration
Section 6: Operation

==============================================================================

Section 1: What is this driver?
-------------------------------

This driver enables Wireless LAN (802.11) over BreezeCom's PCMCIA adapter
BreezeNet Pro.11 Series.
The driver is based on BreezeCom's Win32 driver.

Currently it supports a single PCMCIA adapter, and WEP authentication
encryption is disabled (set your AP's to "Open system").

Power Save , International Roaming and microAP features are not available
in this driver release.

The hopping standard (Country Domain) is currently set at 3 (Europe ETSI),
but it may be changed by recompiling the driver (see section 4.3: Building
the driver).

This driver was tested with the following Linux distributions:
  *  RedHat 6.0       (kernel 2.2.5-15)
  *  Slackware 3.6.0  (kernel 2.0.35)
  *  Caldera          (version???)

and with the PCMCIA package versions 3.0.9, 3.0.5, 2.2.7, 2.2.5 and 2.0.36.

Specific Linux kernel / pcmcia package combinations tested:
  *  kernel 2.2.5-15  /  pcmcia 3.0.9
  *  kernel 2.0.35    /  pcmcia 3.0.5

Hopefully it is supposed to work under any Linux distribution .
For bug reports and comments please e-mail: alfred@breezecom.co.il
==============================================================================


Section 2: Requirements and Prerequisites
-----------------------------------------

Obviously, you need a Linux system and a PC that has a PCMCIA slot...

Software:
  *  Pre-installed Linux system with networking,
     and (optionally) building environment.
  *  Pre-installed pcmcia package.
  *  The BreezeNet driver (brzcom-x.x.tar.gz)

Hardware:
  *  BreezeNet Pro.11 SA-PCR adapter
     You need to have a firmware version of at least 4.4
     Firmware version upgrades can be found at http://www.breezecom.com
     NOTE: The Linux driver does _NOT_ support firmware updates,
           so you'll have to do that from Windows.
	   To check your current firmware version please see Section: 2.4
  *  BreezeNet Pro.11 AP-10 Access Point

The pcmcia package MUST be installed prior to using the Breezenet card:
(2.1) Install the package with the distribution's installation tool
    (e.g. Setup or pkgtool, etc.),
    -= OR =-
    Copy the package pcmcia-cs-x.x.x.tar.gz (e.g. pcmcia-cs-3.0.9.tar.gz)
    usually to the Linux kernel source directory (usually /usr/src/linux),
    and unpack it using:
        gzip -cd pcmcia-cs-x.x.x.tar.gz | tar xfv -

Example:
# gzip -cd pcmcia-cs-3.0.9.tar.gz | tar xfv -

(2.2) If you want to rebuild the pcmcia binaries (or rebuild the BreezeNet
    driver), you need to configure the kernel build environment.
    Change to the kernel source directory and make the configuration:
        cd /usr/src/linux
        make config        -= OR =-        make menuconfig
    Next configure the pcmcia build environment:
        cd pcmcia-cs-x.x.x
	(Where 'x.x.x' represents the PCMCIA card services version)
        make config
    Make sure that you specify the target directory correctly
    (usually /lib/modules/x.x.x, where 'x.x.x' is the kernel's version.
    To check the current kernel version see Section 2.5),
    or (safer approach!) use a temporary directory
    (usually /var/tmp/something).
    If you use a temporary directory don't forget to copy the built binaries
    to the "real" directory (e.g. /lib/modules/x.x.x/pcmcia).

(2.3) You can rebuild the pcmcia package with:
        make all
        make install

(2.4) Checking the current firmware version of your SA-PCR card.
      Please insert the card in any free PCMCIA slot.

(2.4.1) You can EITHER change to directory /usr/src/linux/pcmcia-cs-x.x.x ,
where you previously unpacked the PCMCIA Card Services.
cd to debug-tools and run ./dump_cis . At the output you should see a line like:

  vers_1 4.1, "BreezeCOM", "BreezeNET PC-Card", "Version 4.4.07 990608"

Where "Version x.x.xx" describes the current firmware version of the card. 

(2.4.2) -OR- If you previously have installed Card Services , simply run :
% cardctl ident
Look for line like :

  product info: "BreezeCOM", "BreezeNET PC-Card", "Version 4.4.07 990608"

Where "Version x.x.xx" describes the current firmware version of the card. 

(2.5) Checking the current kernel version
The command below will give you the version number of the current running kernel
# uname -r

For more details please see PCMCIA-HOWTO.
==============================================================================

Section 3: Installation
-----------------------

(3.1) Copy the BreezeCom driver archive to the pcmcia source directory:
        cp -fp brzcom-y.y.tar.gz /usr/src/linux/pcmcia-cs-x.x.x
	(where 'x.x.x' is the PCMCIA card services version 
	and 'y.y' is the breezeCOM driver version)

Example:
# cp -fp brzcom-1.0.tar.gz /usr/src/linux/pcmcia-cs-3.0.9

(3.2) Unpack the driver:
        gzip -cd brzcom-x.x.tar.gz | tar xfv -
    This will create a 'brzcom' directory.
 ( Where 'x.x' represents the BreezeCOM driver version)

Example:
# gzip -cd brzcom-1.0.tar.gz | tar xfv -

(3.3) To rebuild the driver please see Section 4: Building the driver.

(3.4) Copy the driver's binary file to the pcmcia modules library:
        cd brzcom
        cp -fp xbrzcom_cs.o /lib/modules/x.x.x/pcmcia
(Where 'x.x.x' is the kernel version. To check the kernel version see 2.5)

Example:
# cp -fp xbrzcom_cs.o /lib/modules/2.2.5-15/pcmcia

(3.5) Configure pcmcia, the driver and the network as explained in
    Section 5: Configuration.
        
==============================================================================

Section 4: Building the driver
------------------------------

(4.1) Make sure the kernel build environment and the pcmcia build environment
    were properly set (see Section 2).

(4.2) If you have previously built the driver, and want to rebuild it, you
may need to "clean" up with:
        make clean

(4.3)  Configuring the driver for different Hopping Standard (Country Domain)
       By Default this is set to Europe ETSI standard.

Edit the file brznet.c and find the next string:

   iprs.cs.countryCode=GetChangedWordFormat(3)

Change the number to your country code , save it and compile the driver.
-----------------------------------
Country Domain          Country Code
===================================
Netherlands             1
Site Proprietary  *     2
Europe ETSI             3
France                  4
US FCC                  5
Japan                   6
Australia               7
Israel                  8
Canada                  9
Korea                   10
Spain                   11

* NOTE: Site Proprietary is not supported in this release.

IMPORTANT!: Changing the Country Domain might be against local communication
regulations and it is considered illegal if improper setting is configured.

(4.4) Build the driver:
        make all

(4.5) Install the driver:
        make install

    NOTE: If your target build directory is NOT the "real" lib/modules
          directory, you will have to manually copy the file xbrzcom_cs.o
          from the target build to the "real" target (see Section 3.4).

(4.6) Checking the driver version of compiled module
% strings xbrzcom_cs.o |grep Version
      The output should look like:
      BreezeCOM Linux Driver Version 1.0
==============================================================================

Section 5: Configuration
------------------------

Before the driver can be used properly, you have to configure:
(5.1) The pcmcia handler
(5.2) The driver itself
(5.3) The network
(5.4) Example files

------------------------------------
(5.1) Configuring the pcmcia handler
------------------------------------

(5.1.1) Change to the pcmcia configuration directory:
        cd /etc/pcmcia

(5.1.2) Using a text editor, open the 'config' file for editing:
        vi config 
_OR_
	pico config
    (you may need to 'chmod' if the file is set as read-only).

(5.1.3) Look for the section labeled "Device driver definitions".
    Under this section you will see several declarations of "device"
    followed by "class".
    Add the following declaration:

        device "xbrzcom_cs"
          class "network" module "xbrzcom_cs"

(5.1.4) Look for the section labeled "Ethernet adapter definitions".
    Under this section you will see several declarations of "card"
    followed by "version" and "bind".
    Add the following declaration:

        card "BreezeCOM SA PCR-11 Pro"
          version "BreezeCOM"
          bind "xbrzcom_cs"

(5.1.5) Save your work and quit.

-----------------------------------
(5.2) Configuring the driver itself
-----------------------------------

(5.2.1) Change to the pcmcia configuration directory:
        cd /etc/pcmcia

(5.2.2) Using a text editor, open the options file for editing:
        vi config.opts
_OR_
	pico config.opts
    (you may need to 'chmod' if the file is set as read-only).

(5.2.3) Add the driver configuration options at the end of the file:

        module "xbrzcom_cs" opts "ess_id=your_ess_id irq_list=8,9,10 verbose=0"

    Parameters:

        ess_id          The ESS ID as defined in the AP.
                        The default ESS ID is 'ESSID1'
                        (omit the quotes).

        irq_list        A list of up to 4 IRQ (Interrupt Request) numbers
                        that may be used by the adapter.
                        Consult the adaptor's and your computer's docs for a
                        list of usable IRQs, or do a 'cat /proc/interrupts'
                        to see which IRQs are already taken.
                        If you are not sure of which IRQs to use, remove the
                        "irq_list" parameter.

        verbose         Controls diagnostic messages.
                        For full diagnostic messages set to 1 (one).
                        For minimal messages set to 0 (zero).

    Example:
    Using the default ESS ID, default IRQs and minimal diagnostic messages:
        module "xbrzcom_cs" opts "ess_id=ESSID1 irq_list=8,9,10 verbose=0"


    ============        If your kernel version mismatches, but is near you
    IMPORTANT!!!        _may_ be able to put a "-f" in the config.opts file:
    ============                module xbrzcom_cs opts "-f ess_id=..."


-----------------------------
(5.3) Configuring the network
-----------------------------

(5.3.1) Determine the network address, the Adapter's address and the
gateway address.
    In this section we shall use the following sample:
        Network:  169.254.200.0
        Gateway:  169.254.200.2
        Local IP: 169.254.200.100

(5.3.2) Configure the network using EITHER of the following methods:
(5.3.2.1) Using 'ifconfig' and 'route':

        ifconfig eth0 169.254.200.100
        route add -net 169.254.200.0 eth0
        route add default gw 169.254.200.2

      The file 'brzcfg' contains a script for network configuration;
      you may edit it, and then run it with:
        ./brzcfg               

(5.3.2.2) -OR- Edit the 'network.opts' file as follows:
      (you may need to 'chmod' if the file is set as read-only).

        IPADDR="169.254.200.100"
        NETWORK="169.254.200.0"
        BROADCAST="169.254.200.255"
        GATEWAY="169.254.200.2"
        NETMASK="255.255.255.0"

* NOTE: To configure the card to work with DHCP , please set in 'network.opts':
DHCP="y"
Make sure that you have installed dhcp (such as dhcpcd) client on your computer.
RedHat 6.0 and above has scripts that handle dhcp automatically 
(dhcpcd is included in the RedHat release).
For other distributions it might be needed to play around with the
configuration files to auto start up the dhcp client upon card insert detection.

(5.4) Example configurations of the above stated files can be found in 
./examples/
Please make sure to copy those to /etc/pcmcia directory.
==============================================================================


Section 6: Operation
--------------------

Once you have installed, built and configured the driver you may restart
the computer and pray... :)

Once the card is inserted you should see a version message:
        BreezeNet Pro.11 SA-PCR --- BreezeCOM Linux Driver Version 1.0
along with a high-tone "beep".
After a delay, you should hear a second high-tone "beep" and the
initialization message:
        BreezeNet Pro.11 SA-PCR ==> Initialized

If the above messages do not appear, and you hear a low-tone "beep",
your configuration was set improperly (check Section 4 above).

Once up, test it with ping or some other communication program.
--------------------------------------------------------

(6.1) Diagnostic Messages
The following diagnostic messages will be displayed even if the 'verbose'
option is set to zero (in /etc/pcmcia/config.opts):

        BreezeNet Pro.11 SA-PCR --- BreezeCOM Linux Driver Version x.x
                displayed when the card is inserted

        BreezeNet Pro.11 SA-PCR ==> Initialized
                displayed after the card is inserted and loaded

        BreezeNet Pro.11 SA-PCR ==> Unloaded
                displayed after the card is removed

        BreezeNet Pro.11 SA-PCR ==> IRQ x Request FAILED
                displayed if the IRQ (assigned to the driver by the pcmcia
                handler) could not be allocated to the driver.
                Do NOT expect the card to work after this message - you will
                have to find it a different IRQ.
	Please see Section 6.4 for more information.

--------------------------------------------------------
(6.2) LED Status

============================================================
Color		Description		Meaning
------------------------------------------------------------
Yellow		Link Status	Blink - Scanning
				Solid - Associated
------------------------------------------------------------
Green		Data Traffic	Blink -	According to Traffic
============================================================


(6.3) Site Survey
To check the adapter's status and signal levels (Site Survey):
        cat /proc/net/BreezeCOM

You shall see something similar to:

    BreezeCOM BreezeNET PRO.11 SA-PCR WLAN 802.11 - Site Survey
   ---------- Current signal levels for neighbor AP's ----------
                   Configured ESS-ID: ESSID1

      -- AP --  ---- HW MAC ADDR ----     -- Signal strength --
         #0       00:20:d6:81:62:29             -48 dBm   *
         #1       00:00:00:00:00:00               0 dBm    
         #2       00:00:00:00:00:00               0 dBm    
         #3       00:00:00:00:00:00               0 dBm    
         #4       00:00:00:00:00:00               0 dBm    
         #5       00:00:00:00:00:00               0 dBm    
         #6       00:00:00:00:00:00               0 dBm    
         #7       00:00:00:00:00:00               0 dBm    
         #8       00:00:00:00:00:00               0 dBm    
         #9       00:00:00:00:00:00               0 dBm    
     ----------------------------------------------------------
NOTE: "*" indicates the current AP that the SA-PCR card is associated with.
The screen is auto updated every one second or so.

(6.4) Checking the IRQ status.
You can check /proc/interrupts to see if interrupt conflicts are occurring:
        cat /proc/interrupts

           CPU0       
  0:     216722          XT-PIC  timer
...
  9:        155          XT-PIC  BreezeCom Card
...

If the number of interrupts (in the 2nd column) is zero, 
obviously the card (or driver) is not working...
==============================================================================
BreezeCOM LTD. - Wireless Access Solutions 1999(C)  - International
WEB Page:       http://www.breezecom.com
E-Mail:		support@breezecom.co.il
Tel:		+972-(3)-6456262
Fax:           	+972-(3)-6456222/290
Address:       	Atidim Technology Park, Bldg.1
		P.O.Box 13139 Tel-Aviv 61131 , Israel 

BreezeCOM Inc. - USA , Canada and South America
E-Mail:		support@breezecom.com
Tel:		+1-(760)-431-9880
Fax:		+1-(760)-431-2595
Address:	2195 Faraday Avenue, Suite A
		Carlsbad CA 92008 , USA
==============================================================================

