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 ==============================================================================