ATM on Linux HOWTO
Prev |  | Next

# 2. Installation

In order to install this package, you'll need

- the package itself from http://linux-atm.sourceforge.net/dist.php

- the Linux kernel, version 2.4.x, e.g. from ftp://ftp.kernel.org/pub/linux/kernel/v2.4/

- Perl, version 4 or 5

- if you want memory debugging: MPR, e.g. from ftp://ibiblio.org/pub/Linux/devel/lang/c/

## 2.1. The Binary RPMs

If you do not wish to futz with extracting and building the source yourself, the ATM tools are also distributed in RPM format. The RPM can be installed as follows:

    rpm -ivh linux-atm-x.x.x-x.rpm

## 2.2. The Source Tree

First, extract the ATM on Linux distribution:

    tar xzvf linux-atm-x.x.x.tar.gz

When extracted the distribution will create the `linux-atm-x.x.x/` directory with several sub-directories. The following sub-directories are of note:

`doc/`

  Documentation (including this HOWTO) in SGML DocBook format

`src/sigd/`

  UNI 3.0, UNI 3.1, and UNI 4.0 signaling demon: atmsigd

`src/saal/`

  Signaling AAL library (SSCOP, SSCF, and SAAL)

`src/qgen/`

  Q.2931-style message handling

`src/ilmid/`

  ILMI address registration demon: ilmid

`src/maint/`

  ATM maintenance programs: atmaddr, atmdiag, atmdump, atmloop, atmtcp, enitune, esi, sonetdiag, saaldump, and zntune

`src/test/`

  Test programs: align, aping, aread, awrite, br, bw, isp, ttcp_atm, window

`src/arpd/`

  ATMARP tools and demon: atmarp, atmarpd

`src/led/`

  LAN Emulation demon: zeppelin

`src/lane/`

  LAN Emulation servers: bus, lecs, les

`src/mpoad/`

  Multi-Protocol Over ATM demon: mpcd

`src/debug/`

  Debugging tools: delay, ed, encopy, endump, svctor, zndump, and znth

`src/lib/`

  Libraries for applications and demons

`src/man/`

  Miscellaneous man pages

`src/extra/`

  Extra packages and RPM spec files.

`src/config/`

  Configuration and rc file examples

`src/switch/`

  Switch fabric control (under construction)

## 2.3. Kernel Configuration

| NOTE
| If you are not familiar with building and installing a new kernel, please see the The Linux Kernel HOWTO

After unpacking the kernel distribution, do the usual make config, make menuconfig, or make xconfig in the top-level of your Linux kernel source tree. First, enable

    Prompt for development and/or incomplete code/drivers
      (CONFIG_EXPERIMENTAL)

You should then be able to find the following options:

    Asynchronous Transfer Mode (ATM, EXPERIMENTAL) (CONFIG_ATM)
      Use "new" skb structure (CONFIG_ATM_SKB)
      Classical IP over ATM (CONFIG_ATM_CLIP)
        Do NOT send ICMP if no neighbour (CONFIG_ATM_CLIP_NO_ICMP)
      LAN Emulation (LANE) support (CONFIG_ATM_LANE)
        Multi-Protocol Over ATM (MPOA) support (CONFIG_ATM_MPOA)
    ATM over TCP (CONFIG_ATM_TCP)
    Efficient Networks ENI155P (CONFIG_ATM_ENI)
      Enable extended debugging (CONFIG_ATM_ENI_DEBUG)
      Fine-tune burst settings (CONFIG_ATM_ENI_TUNE_BURST)
        Enable 16W TX bursts (discouraged) (CONFIG_ATM_ENI_BURST_TX_16W)
        Enable 8W TX bursts (recommended) (CONFIG_ATM_ENI_BURST_TX_8W)
        Enable 4W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_4W)
        Enable 2W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_2W)
        Enable 16W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_16W)
        Enable 8W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_8W)
        Enable 4W RX bursts (recommended) (CONFIG_ATM_ENI_BURST_RX_4W)
        Enable 2W RX bursts (optional) (CONFIG_ATM_ENI_BURST_RX_2W)
    ZeitNet ZN1221/ZN1225 (CONFIG_ATM_ZATM)
      Enable extended debugging (CONFIG_ATM_ZATM_DEBUG)
      Enable usec resolution timestamps (CONFIG_ATM_ZATM_EXACT_TS)
    IDT 77201 (NICStAR) (CONFIG_ATM_NICSTAR)
      Use suni PHY driver (155Mbps) (CONFIG_ATM_NICSTAR_USE_SUNI)
      Use IDT77015 PHY driver (25Mbps) (CONFIG_ATM_NICSTAR_USE_IDT77105)
    Madge Ambassador (Collage PCI 155 Server) (CONFIG_ATM_AMBASSADOR)
      Enable debugging messages (CONFIG_ATM_AMBASSADOR_DEBUG)
    Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)
      Enable debugging messages (CONFIG_ATM_HORIZON_DEBUG)
    Interphase ATM PCI x575/x525/x531 (CONFIG_ATM_IA)
      Enable debugging messages (CONFIG_ATM_IA_DEBUG)

The burst settings of the ENI driver can be fine-tuned. This may be necessary if the default settings lead to buffer overruns in the PCI chipset. See the on-line help on "CONFIG_ATM_ENI_TUNE_BURST" for a detailed discussion of the implications of changing the burst settings.

Note that the file `drivers/atm/nicstar.h` contains a few configurable settings for the IDT 77201 driver.

Some drivers can also be used with certain compatible cards. The latest information about compatible cards can be found at ATM on Linux information page.

Then build your kernel and reboot.

## 2.4. Driver Messages

If you've configured the ENI155p-MF driver, you should see two lines like these (512kB for the -C version, 2048kB for the -S version.):

    eni(itf 0): rev.0,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56)
    eni(itf 0): FPGA,MMF

If you've configured the ZN1221/ZN1225 driver, you will get something like:

    zatm(itf 0): rev.3,base=0xf800,irq=11,mem=128kB,MMF (00-20-D4-10-2A-80)
    zatm(itf 0): uPD98401 0.5 at 30.024 MHz
    zatm(itf 0): 16 shapers, 32 pools, 2048 RX, 3958 VCs

Note that your board needs to be at least at revision level 3 if you want to use it in a Triton-based system.

Note that if you've configured only the ATM over TCP driver, there are no messages at startup, because ATM over TCP devices are created later using the atmtcp command.

## 2.5. Memory Debugging

If you want to enable debugging for options for memory allocations, you need to install MPR before compiling the ATM tools.

If you chose to download the binary RPM package, you can install MPR like so:

    rpm -ivh mpr-x.x-x.rpm

If you chose to download the source, extract `mpr-x.x.tar.gz` like so:

    tar xzvf mpr-x.x.tar.gz

Then do:

    cd mpr-x.x
    ./configure x86-linux
    make
    make install

Detection of some general mis-use of `malloc` and `free` is automatically performed if the program was compiled with MPR present. Tracing of allocations is enabled by setting `MPRPC` and `MPRFI`. See `doc/mpr.html` or `doc/mpr.ps` in the MPR distribution for details.

Only little run-time overhead is incurred if memory debugging is included, but those environment variables are not set.

## 2.6. ATM Tools

Now, as the final step, configure and build the ATM tools. Configuration is only necessary if your switch uses UNI 3.1 or 4.0, or if it has certain bugs. The configuration options selected by passing the appropriate options to the ./configure script in the linux-atm distribution.

| NOTE
| Issue ./configure --help from the top-level directory of the linux-atm distribution to view all possible options.

The ATM tools are built with the following commands:

    cd linux-atm-x.x.x
    ./configure
    make
    make install

Unless otherwise specified when invoking ./configure, make install will install executables in the directory `/usr/local/bin` and `/usr/local/sbin`, respectively. Configuration files (except for `hosts.atm` which is installed in `/etc`) are installed in `/usr/local/etc`. Libraries and header files are installed in `/usr/local/lib` and `/usr/local/include`, respectively. Man pages are installed in `/usr/local/man`.

## 2.7. Extra Packages

Some programs are based on large packages that are already distributed outside of the ATM context. For some packages, patches are contained in the ATM on Linux distribution. They are contained in the `src/extra` directory of the ATM on Linux distribution.

Currently, the following extra packages are available:

tcpdump

  dumps network traffic (enhanced for ATM)

ANS

  ATM name server (based on named 4.9.5)

Note that text2atm automatically uses ANS if available, so ans only needs to be installed on systems providing name server functionality or if ATM-aware maintenance tools nslookup, etc.) are needed.

A script hosts2ans.pl to convert a `/etc/hosts.atm` file to ANS zone files are provided in the `src/extra/ANS/` directory. Its use is described at the beginning of the file.

Prev | Home | Next
Introduction |  | Device Setup