<HTML ><HEAD ><TITLE >Installation</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.63 "><LINK REL="HOME" TITLE="ATM on Linux HOWTO" HREF="index.html"><LINK REL="PREVIOUS" TITLE="Introduction" HREF="introduction.html"><LINK REL="NEXT" TITLE="Device Setup" HREF="device-setup.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >ATM on Linux HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="introduction.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="device-setup.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="INSTALLATION" >2. Installation</A ></H1 ><P >In order to install this package, you'll need <P ></P ><UL ><LI ><P >the package itself from <A HREF="http://linux-atm.sourceforge.net/dist.php" TARGET="_top" >http://linux-atm.sourceforge.net/dist.php</A ></P ></LI ><LI ><P >the Linux kernel, version 2.4.x, e.g. from <A HREF="ftp://ftp.kernel.org/pub/linux/kernel/v2.4/" TARGET="_top" >ftp://ftp.kernel.org/pub/linux/kernel/v2.4/</A ></P ></LI ><LI ><P >Perl, version 4 or 5</P ></LI ><LI ><P >if you want memory debugging: MPR, e.g. from <A HREF="ftp://ibiblio.org/pub/Linux/devel/lang/c/" TARGET="_top" >ftp://ibiblio.org/pub/Linux/devel/lang/c/</A ></P ></LI ></UL > </P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.THE-BINARY-RPMS" >2.1. The Binary RPMs</A ></H2 ><P >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: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN97" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >rpm -ivh <TT CLASS="REPLACEABLE" ><I >linux-atm-x.x.x-x.rpm</I ></TT ></PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV ></P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.THE-SOURCE-TREE" >2.2. The Source Tree</A ></H2 ><P >First, extract the ATM on Linux distribution: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN103" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >tar xzvf <TT CLASS="REPLACEABLE" ><I >linux-atm-x.x.x.tar.gz</I ></TT ></PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV > When extracted the distribution will create the <TT CLASS="FILENAME" >linux-atm-x.x.x/</TT > directory with several sub-directories. The following sub-directories are of note: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="FILENAME" >doc/</TT ></DT ><DD ><P >Documentation (including this HOWTO) in SGML DocBook format</P ></DD ><DT ><TT CLASS="FILENAME" >src/sigd/</TT ></DT ><DD ><P >UNI 3.0, UNI 3.1, and UNI 4.0 signaling demon: <SPAN CLASS="APPLICATION" >atmsigd</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/saal/</TT ></DT ><DD ><P >Signaling AAL library (SSCOP, SSCF, and SAAL)</P ></DD ><DT ><TT CLASS="FILENAME" >src/qgen/</TT ></DT ><DD ><P >Q.2931-style message handling</P ></DD ><DT ><TT CLASS="FILENAME" >src/ilmid/</TT ></DT ><DD ><P >ILMI address registration demon: <SPAN CLASS="APPLICATION" >ilmid</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/maint/</TT ></DT ><DD ><P >ATM maintenance programs: <SPAN CLASS="APPLICATION" >atmaddr</SPAN >, <SPAN CLASS="APPLICATION" >atmdiag</SPAN >, <SPAN CLASS="APPLICATION" >atmdump</SPAN >, <SPAN CLASS="APPLICATION" >atmloop</SPAN >, <SPAN CLASS="APPLICATION" >atmtcp</SPAN >, <SPAN CLASS="APPLICATION" >enitune</SPAN >, <SPAN CLASS="APPLICATION" >esi</SPAN >, <SPAN CLASS="APPLICATION" >sonetdiag</SPAN >, <SPAN CLASS="APPLICATION" >saaldump</SPAN >, and <SPAN CLASS="APPLICATION" >zntune</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/test/</TT ></DT ><DD ><P >Test programs: <SPAN CLASS="APPLICATION" >align</SPAN >, <SPAN CLASS="APPLICATION" >aping</SPAN >, <SPAN CLASS="APPLICATION" >aread</SPAN >, <SPAN CLASS="APPLICATION" >awrite</SPAN >, <SPAN CLASS="APPLICATION" >br</SPAN >, <SPAN CLASS="APPLICATION" >bw</SPAN >, <SPAN CLASS="APPLICATION" >isp</SPAN >, <SPAN CLASS="APPLICATION" >ttcp_atm</SPAN >, <SPAN CLASS="APPLICATION" >window</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/arpd/</TT ></DT ><DD ><P >ATMARP tools and demon: <SPAN CLASS="APPLICATION" >atmarp</SPAN >, <SPAN CLASS="APPLICATION" >atmarpd</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/led/</TT ></DT ><DD ><P >LAN Emulation demon: <SPAN CLASS="APPLICATION" >zeppelin</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/lane/</TT ></DT ><DD ><P >LAN Emulation servers: <SPAN CLASS="APPLICATION" >bus</SPAN >, <SPAN CLASS="APPLICATION" >lecs</SPAN >, <SPAN CLASS="APPLICATION" >les</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/mpoad/</TT ></DT ><DD ><P >Multi-Protocol Over ATM demon: <SPAN CLASS="APPLICATION" >mpcd</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/debug/</TT ></DT ><DD ><P >Debugging tools: <SPAN CLASS="APPLICATION" >delay</SPAN >, <SPAN CLASS="APPLICATION" >ed</SPAN >, <SPAN CLASS="APPLICATION" >encopy</SPAN >, <SPAN CLASS="APPLICATION" >endump</SPAN >, <SPAN CLASS="APPLICATION" >svctor</SPAN >, <SPAN CLASS="APPLICATION" >zndump</SPAN >, and <SPAN CLASS="APPLICATION" >znth</SPAN ></P ></DD ><DT ><TT CLASS="FILENAME" >src/lib/</TT ></DT ><DD ><P >Libraries for applications and demons</P ></DD ><DT ><TT CLASS="FILENAME" >src/man/</TT ></DT ><DD ><P >Miscellaneous man pages</P ></DD ><DT ><TT CLASS="FILENAME" >src/extra/</TT ></DT ><DD ><P >Extra packages and RPM spec files.</P ></DD ><DT ><TT CLASS="FILENAME" >src/config/</TT ></DT ><DD ><P >Configuration and rc file examples</P ></DD ><DT ><TT CLASS="FILENAME" >src/switch/</TT ></DT ><DD ><P >Switch fabric control (under construction)</P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.KERNEL-CONFIGURATION" >2.3. Kernel Configuration</A ></H2 ><P ><DIV CLASS="NOTE" ><P ></P ><TABLE CLASS="NOTE" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TH ALIGN="LEFT" VALIGN="CENTER" ><B >NOTE</B ></TH ></TR ><TR ><TD > </TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >If you are not familiar with building and installing a new kernel, please see the <A HREF="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html" TARGET="_top" ><I CLASS="CITETITLE" >The Linux Kernel HOWTO</I ></A ></P ></TD ></TR ></TABLE ></DIV ></P ><P >After unpacking the kernel distribution, do the usual <B CLASS="COMMAND" >make config</B >, <B CLASS="COMMAND" >make menuconfig</B >, or <B CLASS="COMMAND" >make xconfig</B > in the top-level of your Linux kernel source tree. First, enable <TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)</PRE ></FONT ></TD ></TR ></TABLE > You should then be able to find the following options: <TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >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)</PRE ></FONT ></TD ></TR ></TABLE ></P ><P >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.</P ><P >Note that the file <TT CLASS="FILENAME" >drivers/atm/nicstar.h</TT > contains a few configurable settings for the IDT 77201 driver.</P ><P >Some drivers can also be used with certain compatible cards. The latest information about compatible cards can be found at <I CLASS="CITETITLE" >ATM on Linux</I > <A HREF="http://linux-atm.sourceforge.net/info.php" TARGET="_top" >information</A > page.</P ><P >Then build your kernel and reboot.</P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.DRIVER-MESSAGES" >2.4. Driver Messages</A ></H2 ><P >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.): <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN252" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >eni(itf 0): rev.0,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56) eni(itf 0): FPGA,MMF</PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV ></P ><P >If you've configured the ZN1221/ZN1225 driver, you will get something like: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN255" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >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</PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV > Note that your board needs to be at least at revision level 3 if you want to use it in a Triton-based system.</P ><P >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 <B CLASS="COMMAND" >atmtcp</B > command.</P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.MEMORY-DEBUGGING" >2.5. Memory Debugging</A ></H2 ><P >If you want to enable debugging for options for memory allocations, you need to install MPR before compiling the ATM tools.</P ><P >If you chose to download the binary RPM package, you can install MPR like so: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN263" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >rpm -ivh <TT CLASS="REPLACEABLE" ><I >mpr-x.x-x.rpm</I ></TT ></PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV ></P ><P >If you chose to download the source, extract <TT CLASS="FILENAME" >mpr-x.x.tar.gz</TT > like so: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN268" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >tar xzvf <TT CLASS="REPLACEABLE" ><I >mpr-x.x.tar.gz</I ></TT ></PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV > Then do: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN271" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >cd <TT CLASS="REPLACEABLE" ><I >mpr-x.x</I ></TT > ./configure x86-linux make make install</PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV ></P ><P >Detection of some general mis-use of <TT CLASS="FUNCTION" >malloc</TT > and <TT CLASS="FUNCTION" >free</TT > is automatically performed if the program was compiled with MPR present. Tracing of allocations is enabled by setting <TT CLASS="FUNCTION" >MPRPC</TT > and <TT CLASS="FUNCTION" >MPRFI</TT >. See <TT CLASS="FILENAME" >doc/mpr.html</TT > or <TT CLASS="FILENAME" >doc/mpr.ps</TT > in the MPR distribution for details.</P ><P >Only little run-time overhead is incurred if memory debugging is included, but those environment variables are not set.</P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.ATM-TOOLS" >2.6. ATM Tools</A ></H2 ><P >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 <B CLASS="COMMAND" >./configure</B > script in the linux-atm distribution. <DIV CLASS="NOTE" ><P ></P ><TABLE CLASS="NOTE" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TH ALIGN="LEFT" VALIGN="CENTER" ><B >NOTE</B ></TH ></TR ><TR ><TD > </TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >Issue <B CLASS="COMMAND" >./configure --help</B > from the top-level directory of the linux-atm distribution to view all possible options.</P ></TD ></TR ></TABLE ></DIV ></P ><P >The ATM tools are built with the following commands: <DIV CLASS="INFORMALEXAMPLE" ><A NAME="AEN291" ></A ><P ></P ><TABLE BORDER="1" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="SCREEN" >cd <TT CLASS="REPLACEABLE" ><I >linux-atm-x.x.x</I ></TT > ./configure make make install</PRE ></FONT ></TD ></TR ></TABLE ><P ></P ></DIV > Unless otherwise specified when invoking <B CLASS="COMMAND" >./configure</B >, <B CLASS="COMMAND" >make install</B > will install executables in the directory <TT CLASS="FILENAME" >/usr/local/bin</TT > and <TT CLASS="FILENAME" >/usr/local/sbin</TT >, respectively. Configuration files (except for <TT CLASS="FILENAME" >hosts.atm</TT > which is installed in <TT CLASS="FILENAME" >/etc</TT >) are installed in <TT CLASS="FILENAME" >/usr/local/etc</TT >. Libraries and header files are installed in <TT CLASS="FILENAME" >/usr/local/lib</TT > and <TT CLASS="FILENAME" >/usr/local/include</TT >, respectively. Man pages are installed in <TT CLASS="FILENAME" >/usr/local/man</TT >.</P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="INSTALLATION.EXTRA-PACKAGES" >2.7. Extra Packages</A ></H2 ><P >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 <TT CLASS="FILENAME" >src/extra</TT > directory of the ATM on Linux distribution.</P ><P >Currently, the following extra packages are available: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><SPAN CLASS="APPLICATION" ><A HREF="http://www.tcpdump.org/" TARGET="_top" >tcpdump</A ></SPAN ></DT ><DD ><P >dumps network traffic (enhanced for ATM)</P ></DD ><DT ><SPAN CLASS="APPLICATION" >ANS</SPAN ></DT ><DD ><P >ATM name server (based on <SPAN CLASS="APPLICATION" >named</SPAN > 4.9.5)</P ></DD ></DL ></DIV ></P ><P >Note that <SPAN CLASS="APPLICATION" >text2atm</SPAN > automatically uses ANS if available, so <SPAN CLASS="APPLICATION" >ans</SPAN > only needs to be installed on systems providing name server functionality or if ATM-aware maintenance tools <SPAN CLASS="APPLICATION" >nslookup</SPAN >, etc.) are needed.</P ><P >A script <SPAN CLASS="APPLICATION" >hosts2ans.pl</SPAN > to convert a <TT CLASS="FILENAME" >/etc/hosts.atm</TT > file to ANS zone files are provided in the <TT CLASS="FILENAME" >src/extra/ANS/</TT > directory. Its use is described at the beginning of the file.</P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="introduction.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="device-setup.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Introduction</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Device Setup</TD ></TR ></TABLE ></DIV ></BODY ></HTML >