Linux Installation.

** Contents **

Why use FBB with Linux ?
Info on Ax.25, NetRom and ROSE.
Install Ax.25, NetRom and ROSE.
Config Ax.25, NetRom and ROSE for KISS TNC.
Telnet installation (Appendix 24).

Why use FBB with Linux ?

LINUX is a true multitasking system where many applications may run
concurrently (RMS Gate, FPAC, NODE, BBS, CLUSTER, TCPIP, etc...) on the same CPU.

Most Linux kernels are compiled with Ax.25 included.
The Linux  kernel supports  NetRom, Rose, Ax.25, and TCPIP.
Linux supports both GUI (Graphical Usaer Interface} and CLI (Command Line Interface ) enviornments.

Info on AF_Ax.25, NetRom and ROSE.

To understand AX.25, NetRom and ROSE sockets go to 
 Amateur Radio AX.25 HOWTO.

Install Ax.25, NetRom and ROSE.

Ax.25, NetRom and ROSE protocols are built into the Linux kernel.
Most Linux distros include the basic modules needed for the ax.25 service.
In most cases they include the packages for the libax25 Run-time routines.
You will still need to install the ax25-tools and ax25-apps packages.
However, they may not be the most current versions.

Here is a script to install Ax.25

#!/bin/bash
# Color Codes
Reset='\e[0m'
Red='\e[31m'
Green='\e[30;42m'  # Black/Green
Yellow='\e[33m'
YelRed='\e[31;43m' #Red/Yellow
Blue='\e[34m'
White='\e[37m'
BluW='\e[37;44m'

echo -e "${BluW}\t\n\t Script provided by Charles S. Schuman ( K4GBB )   \t\n\t\t\t ${Red} 01/09/2014    \n \t\t${Yellow}       k4gbb1@gmail.com \n${Reset}"

  if ! uid=0
   then su
  fi

if [ ! -d /usr/local/etc ]; then
echo -e "${Green} Creating file folders for Config files${Reset}"
  mkdir /usr/local/etc
fi

mkdir /usr/local/etc/ax25

if [ ! -d /usr/local/var/ ]; then
echo -e "${Green} Creating file folders for Data files${Reset}"
  mkdir /usr/local/var
fi

mkdir /usr/local/var/ax25
rm -fr /etc/ax25

if [ ! -d /usr/local/src ]; then
echo -e "${Green} Creating file folders for source files${Reset}"
  mkdir /usr/local/src
  mkdir /usr/local/src/ax25
  mkdir /usr/local/src/ax25
fi

echo -e "${Green} Creating symlinks to standard directories${Reset}"
  ln -s /usr/local/var/ax25/ /var/ax25
  ln -s /usr/local/etc/ax25/ /etc/ax25

# Update Package list & Install Build resources
  echo -e "${Green} Updating the Package List ${Reset}"
  echo -e "\t${YelRed} This may take a while ${Reset}"
  apt-get update > /dev/null
  echo "  *"
  apt-get install build-essential libax25-dev libx11-dev zlib1g-dev libncurses5-dev -y -q

#if [ -f /usr/lib/libax25.a ]; then
echo -e "${Green} Moveing Old Libax25 files out of the way${Reset}"
  mkdir /usr/lib/ax25lib
  mv /usr/lib/libax25* /usr/lib/ax25lib/
#fi

# Download libax25 source file
  cd /usr/local/src/ax25
  echo -e "${Green} Getting Libax25 Source${Reset}"
  wget -qt3 http://linuxax25.googlecode.com/files/libax25-1.0.3.tar.gz && tar xf libax25-1.0.3.tar.gz
  if [ $? -ne 0 ]
   then
     echo -e "${Red}\t Libax25 Source files are Missing${Reset}"
     exit 1
  fi
# Download ax25-tools source file
  cd /usr/local/src/ax25/
echo -e "${Green} Getting Ax25-tools Source${Reset}"
  wget -qt3  http://linuxax25.googlecode.com/files/ax25tools-1.0.2.tar.gz && tar xf ax25tools-1.0.2.tar.gz
  if [ $? -ne 0 ]
    then
        echo -e "${Red}\t Ax25-tools Source files are missing ${Reset}"
     exit 1
  fi
# Download ax25-apps source file
  cd /usr/local/src/ax25/
  echo -e "${Green} Getting Ax25-apps Source${Reset}"
  wget -qt3 http://linuxax25.googlecode.com/files/ax25apps-1.0.2.tar.gz && tar xf ax25apps-1.0.2.tar.gz
 if [ $? -ne 0 ]
    then
        echo -e "${Red}\t Ax25-Apps Source files are missing ${Reset}" 
     exit 1
  fi

echo -e "${Green} Now Running Makeax25 ${Reset}"

# Libax25
  echo -e "${Blue}\t Compileing Runtime Lib files ${Reset}"
  cd /usr/local/src/ax25/libax25-1.0.3
 ./configure > liberror.txt 2>&1
  echo -e -n "\t  *"
# Compile
  echo -n "  *"
  make >> liberror.txt 2>&1
  if [ $? -ne 0 ]
    then
     echo -e "${Red}\t Libax25 Compile error - See liberror.txt ${Reset}"
     exit 1
  fi
 echo  "  *"
# Install
  make install >> liberror.txt 2>&1
  if [ $? -ne 0 ]
   then
     echo -e "${Red} Libax25 Install error - See liberror.txt${Reset}"
     exit 1
   else
     echo -e "${Green} Libax25 Installed${Reset}"
     rm liberror.txt
  fi

# AX25 libraries declaration (into ld.so.conf)
  echo "/usr/local/lib" >> /etc/ld.so.conf && /sbin/ldconfig

# AX25-APPS
  echo -e "${Blue}\t Compileing Ax25-apps ${Reset}"
  cd /usr/local/src/ax25/ax25apps-1.0.2
  ./configure > appserror.txt 2>&1
  echo -n -e "\t  *"
# Compile Ax25-apps
  echo -n "  *"
  make >> appserror.txt 2>&1
  if [ $? -ne 0 ]
   then
     echo -e "${Red}\t Ax25-Apps Compile Error - see appserror.txt ${Reset}"
     exit 1
  fi
# Install Ax25-apps
  echo "  *"
  make  install >> appserror.txt 2>&1
  if [ $? -ne 0 ]
  then
     echo -e "${Red} Ax25-Apps Install Error - see appserror.txt ${Reset}"
     exit 1
  else
     echo -e "${Green} Ax25-apps Installed ${Reset}"
     rm appserror.txt
  fi
  cd /usr/local/src/ax25/

# AX25-TOOLS
  echo -e "${Blue}\t Compiling Ax25-tools ${Reset}"
  cd /usr/local/src/ax25/ax25tools-1.0.2
  echo -n -e "\t  *"
  ./configure > toolserror.txt 2>&1
# Compile Ax.25 tools
  echo -n "  *"
 make >> toolserror.txt 2>&1
    if [ $? -ne 0 ]
      then
        echo -e "${Red}\t Ax25-tools Compile error - See toolserror.txt ${Reset}"
        exit 1
    fi
# Install Ax.25 tools
  echo -e "  *"
make install >> toolserror.txt 2>&1
  if [ $? -ne 0 ]
    then
      echo -e "${Red}\t Ax25-tools Install error - See toolserror.txt ${Reset}"
      exit 1
    else
      echo -e "${Green} Ax25-tools Installed  ${Reset}"
      rm toolserror.txt
    fi


# Add Modules to /etc/modules
  echo "ax25" >> /etc/modules
  echo "rose" >> /etc/modules
  echo "mkiss" >> /etc/modules


# Set permissions for /usr/local/sbin/
  cd /usr/local/sbin/
  chmod 2755 *
  echo -e "\t \e[030;42m    Ax25 is successfully installed \t ${Reset}"

# (End of Script)

Configure Ax.25, NetRom and ROSE.

Setup  Ax.25, NetRom and ROSE sockets.

      --------  axports -----------
# /etc/ax25/axports
#
# The format of this file is:
#
#name	call-ssid	speed	paclen	window	      description
#
0	SM6TKY-3	9600	256	7	Tx: 437.975 Rx: 434.000 MHz 9600bps
#
# No Blank lines.
	----- ( End axports ) ---------------

	------- nrports --------------

# /etc/ax25/nrports
# Name   Call          Alias    PacLen	Description
netrom SM6TKY-13     #TKYNODE 	 236 	Radio 9600bps
netbbs SM6TKY-0        BBSTKY 	 236 	NET/ROM<->XFBB

	-------- ( End nrports ) -----

	-------- nrbroadcast ---------

# /etc/ax25/nrbroadcast
#axport	MinObs	DefQ	WorstQ	Verbose
0	1	250	  0	 1
	------ ( End nrbroadcast ) ------

# /etc/ax25/ax25-up
#
# This file is called from /etc/rc.d/rc.local
#
# attach a TNC with KISS
#
# (/dev/ttyS0 = COM1)
#
/usr/sbin/kissattach /dev/ttyS0 ax0 44.140.208.129 
#
# set up default IP routings
# This is not needed if you don't want to run TCP/IP on Radio
#
/sbin/ifconfig ax0 44.140.208.129 netmask 255.255.255.0 broadcast 44.140.208.255 arp mtu 256
/sbin/route add -host sk6ba.ampr.org ax0
/sbin/route add -net 44.140.208.0 gw sk6ba.ampr.org netmask 255.255.255.0 ax0
/sbin/route add default gw sk6ba.ampr.org ax0
#
# Send ID every 10 min
#
/usr/sbin/beacon -t 10 ax0 "This Packet Radio Node is Powered by Linux GNU" &
#
# If you want to run LinFBB in X-Windows,
# comment out this below...
#
# Start up LinFBB deamon
#
/usr/local/sbin/fbb/ -d &
#

-------- ( End ax25-up ) -----------------------

Here is a port.sys example with one KISS TNC2 .

# /usr/local/fbb/port.sys
#
# Comments are deleted to save space
#
#Ports TNCs
 1     2
#
#
#Com Interface Adress (device) Baud
 1   9         ****            9600
#
# Same number of lines as TNCs:
#
#TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode  Freq
 1   8    1   ax0    250   7     2     10     30/01   XUWYL  ax0
 2   8    1   nr1    236   7     2     10     30/01   XUY    netrom
#
# Special callsigns and modes for some channels.
#
#TNC Nbs Callsign-SSID Mode
#1    2   SK6BA-0       B
#
# End of file.
#

--------------------------

# /etc/rc.d/rc.ax25
#
# This file is called from /etc/rc.d/rc.local
#
# attach a TNC2 with KISS
#
# (/dev/cua0 = COM1, /dev/cua1 = COM2, /dev/cua2 = COM3, /dev/cua3 = COM4)
#
 /usr/sbin/kissattach -i 44.140.208.129 /dev/cua1 ax0
#
# attach NET/ROM interface
 /usr/sbin/nrattach -i 44.140.208.129 nr0
#
# This is for LinFBB NET/ROM
 /usr/sbin/nrattach -i 44.140.208.129 nr1
#
# set up default IP routings
# This is not needed if you don´t want to run TCP/IP on Radio
#
 /sbin/ifconfig ax0 44.140.208.129 netmask 255.255.255.0 broadcast 44.140.208.255 arp mtu 256
 /sbin/route add -host sk6ba.ampr.org ax0
 /sbin/route add -net 44.140.208.0 gw sk6ba.ampr.org netmask 255.255.255.0 ax0
 /sbin/route add default gw sk6ba.ampr.org ax0
#
# Start up NET/ROM deamon
 /usr/sbin/netromd
 /usr/sbin/nrparms -parms -qual 192
#
# Send ID every 10 min
 /usr/sbin/beacon -t 10 ax0 "This Packet Radio Node is Powered with Linux Unix" &
#
# If you want to run LinFBB in X-Windows,
# comment out this below...
#
# Start up LinFBB deamon
 /home/xfbb/xfbb.sh -d &
#

Back to Contents