Linux FPAC mini-HOWTO

Bernard Pidoux, F6BVP, f6bvp at amsat dot org

v2.1, 2013-june-16 [ This version starts a new documentation cycle taking progressively into account Mageia distro -
                                A special page is dedicated to RaspBerry Pi project and Linux kernel 3.x
]


Packet radio is a way of connecting computers via Amateur Radio. This mini-HOWTO covers the installation and configuration of an Amateur Radio packet switch FPAC under Linux operating system.

The reader will be guided step by step through the process of configuring a FPAC node capable of automatically reach a destination via a network of interconnected node stations (either via radio or Internet ).

To illustrate the power of FPAC combined with Linux ROSE kernel module I give here an example of a connection to a remote station through three different routes and protocoles depending on destination callsign.

Another example explains how Linux kernels achieves frame routing via ROSE module through rose route and rose nodes tables set up by FPAC.

The user will be responsible for the HF radio interfaces configuration not described extensively here. However some examples and links will be provided.

If your Linux box is setup with a radio device, FPAC can provide inter connections between local packet-radio networks and remote nodes using AX.25 Packet Layer Protocol (AX.25 PLP) RATS Open Systems Environment, ROSE.

A network of FPAC nodes can transparently interconnect many applications such as BBS stations for bulletin or message forwarding, DX spots, and Terminal Chat user connections, etc..

For a complete description of FPAC software, please read this FPAC HOWTO (or from this mirror). 

This Linux FPAC mini-HOWTO document is also available in PDF format here : http://rose.fpac.free.fr/MINI-HOWTO/FPAC-MINI-HOWTO-2.1.pdf


1. Introduction

2. How to configure a Linux 2.6 kernel with AX25 modules

3. How to install AX25 libraries

4. How to install AX25 tools

5. How to install AX25 apps

6. A script for various directories and file rights setup

7. How to configure ax25ipd

8. How to install and configure FPAC 3.27

9. AX25 startup scripts

10.1 Router and Firewall configurations

10.2 Interfacing FPAC with application programs

10.3 Other Network Utility programs

11. More HOWTOs

12. Getting Help




1. Introduction

FPAC for Linux was written by Jean-Paul, F6FBB. An earlier FPAC version , written for DOS, was coded in assembly language by Antoine, F6DWJ, in collaboration with Rémy, F6ABJ. FPAC is based on Thomas A. Moulton W2VY implementation of the Radio Amateur  Telecommunications Society (RATS) Open Systems Environment (ROSE), based on X.25 CCITT standard,  in assembly language and "C" for packet radio Terminal Node controler TNC2. Jean-Paul also wrote the FPAC HOWTO  (or from this mirror) which covers the operation and setup of the FPAC node. An FPAC sysop's manual has also been written by Charles Schumann, K4GBB.

The purpose of this document is to assist the reader in the setup of an Amateur Radio Packet node from scratch. The process is based on my own experience using a Mandriva Linux distro. Before starting here are a few recommandations. Avoid using a brand new hardware with the most recent high performance graphic adapter or sophisticated Ethernet interfaces included on the mother board. Linux drivers like nVidia are proprietary and may not be included in Linux kernel.  You must know that Linux is very  performant  and does not need  high frequency microprocessors as opposed to a well known commercial operating system. Take the opportunity to recycle your old computer rejected by your children for low performance reasons. You will be surprised how fast Linux boots on this "old" machine.

With Linux 2.2 kernels, the last available being 2.2.26, AX25 applications were quite stable. It managed a packet radio system for weeks without needing intervention. However, you may want to use more recent Linux kernels which contain support for USB interfaces, serial ATA disks, Blue Tooth, and wireless LAN. Due to extensive changes in the kernel code, AX25 was not as well supported on 2.4 and early 2.6 kernels. Although you can run AX25 with kernel 2.4, Linux system often becomes unstable and will lock-up. Ralf DL5RB and other Linux network developpers worked intensively on AX25 code adaptation to 2.6 kernel. Versions number higher than 2.6.30 are fine to run HamRadio AX25 applications. With Mandriva distro you have a Linux system ready to run AX.25 applications in a few steps.

Previous versions (1.77) described step by step how to set up a packet radio FPAC node switch using Mandriva Linux distro considered as one of the most user friendly as well as  being highly professional. This is the one I have been using for more than ten years. However, Mandriva has now been forked and a lot of users have adopted new distro called Mageia. I will progressively update this page in order to take this into account. There has been another major event this time about hardware, since RapsBerry Pi project has produced an ultra low cost Linux computer (35 US$) that runs under Linux and on which I could install and run an FPAC node. Charley K4GBB came with a very complete documentation file here :  http://k4gbb.no-ip.info/docs/Raspberry.html 

A step by step procedure to set up an FPAC node, based on Mageia Linux distro with 3.x Linux kernel, will cover :

1. Installation of Linux 2.6 kernel with AX25 modules

2. Installation of AX25 libraries

3. Installation of AX25 tools

4. Installation of AX25 applications

5. Configuration of the ax25ipd daemon

6. Installation of the FPAC software

7. Installation of AX25 start-up scripts

8. Setting up the FPAC switch.


2. How to configure a Linux 3.x kernel with AX25 modules

  1. If you have good reasons to keep using old pseudo TTY standard follow these instructions. Be aware that some kernels do not support it. Edit /boot/grub/menu.lst file with vi editor in a terminal console. Command is : vi  /boot/grub/menu.lst 

  2. Duplicate paragraph begining with title linux. vi editor syntax is the following : move the cursor to the title line. Then type 4 and yy. Then move the cursor to the empty line created after the new paragraph. Type p and edit the new paragraph entry name (command i for insert). For example, replace 'title xx', by title xx-custom. At the end of line begining with kernel, add  pty.legacy_count=10 then save the file (<escape>  :  wq) and reboot. Be carefull not to write on next line with initrd or you would get a boot failure with a kernel panic. Believe me, I know what I am talking about.

Here is an exemple of /boot/grub/menu.lst entry with maxcpus=1 and pty.legacy_count=10 boot options

title desktop 2.6.34-maxcpus1

kernel (hd1,4)/boot/vmlinuz-2.6.34-desktop-2mnb BOOT_IMAGE=desktop_2.6.34 root=UUID=7d268bb1-5045-4ccc-92b7-28a228f7a484 maxcpus=1 pty.legacy_count=10 resume=UUID=4ee3102a-966b-4bb8-8bd5-53d37cf5a2e8 splash=silent vga=788

initrd (hd1,4)/boot/initrd-2.6.

Create the two following symbolic links to linux that you can use later when you download and apply a kernel patch.

ln -s linux  a

ln -s linux  b

make

make firmware_install (with kernel 3.x)

make install

3. How to install AX25 libraries

Like many other AX25 applications FPAC needs the AX25 libraries. When running various AX25 applications we call common subroutines that are included into ax25 libraries.

3.1 Using RPM package to install AX25 libraries

The easiest way to install AX25 libraries is by using an RPM archive package. I have build two packages depending on your Linux installation. If you installed a 32 bits Linux (usually for i586 or i686 CPU) you should download libax25-0.0.12-1mdv2010.1.i586.rpm archive file, while you should download libax25-0.0.12-1mdv2010.1.x86_64.rpm archive for a 64 bits Linux environment.

Here are the steps to follow once you have downloaded either of the above archives. The principles are the same for both archives install. First, you need to be root in order to perform archive install.

cd into the libax25 package directory and enter the command :

rpm -ivh libax25-0.0.12-1mdv2010.1.i586.rpm

or enter the command rpm -ivh libax250.0.121mdv2010.1.x86_64.rpm

You should get a message like :

Preparation...              ########################################### [100%]
   1:liblibax25_0           ########################################### [100%]

Due to my quite new experience with RPM packaging, AX25 library will not be installed in the final working directory :-(

Enter the following commands :  mv  /usr/lib/libax25*  /usr/local/lib/

You can then list the AX25 library files :  ls -la /usr/local/lib/

Ten lines will be displayed, with the same file names as below, but with probably different sizes.

In case of x86-64.rpm package the location of libraries will be slightly different and the command for moving the files to
/usr/local/lib also different :   mv  /usr/lib64/libax25*  /usr/local/lib/

Some other files need to be renamed or moved also with the commands :

mv  /usr/include/netax25   /usr/local/include

mv  /usr/local/include/netax25/ax25.h   /usr/include  (this is to put back ax25.h in the right place !)

mv  /usr/share/doc/liblibax25*   /usr/share/doc/libax25*

You will be pleased to see that you can read manuals for axports, nrports and rsports respectively via command like : man axports

Suppose you need to upgrade AX25 libraries, rpm manual will tell you how to do it. 
And finally, in case you want to uninstall the AX25 libraries, you can use the command : urpme liblibax25_0.

3.2 Ubuntu Linux users may use AX.25 libraries DEB package

Charlie K4GBB has built an AX25 libraries package for Ubuntu Linux system (Debian) that you may try if you installed that distro.
Please report your observations as this is K4GBB first attempt with deb package.
http://f6bvp.free.fr/logiciels/ax25/libax25-0.0.12_rc2-1_i386.deb

3.3 An AX.25 libraries RPM package has been prepared by Lee VE7FET (ve7fet.at.gmail.com) and can be downloaded from this site http://code.google.com/p/linuxax25/

        http://code.google.com/p/linuxax25/downloads/detail?name=libax25-1.0.1-2.i386.rpm

3.4 Option to install AX25 libraries from sources

If you prefere to install AX25 libraries from source then follow the following instructions.

Move the archive file into this directory then unpack it :

tar  xf  libax25-0.0.12-rc2.patched_f6bvp.tar.bz2 then change the directory

cd  libax25-0.0.12-rc2.patched_f6bvp and type the following set of commands :

./configure
make
make install
make installconf  
(this command, only if no previous configuration files exist. Otherwise they would be overwritten)   

This will copy the following configuration sample files into /usr/local/etc/ax25 directory : axports, rsports and nrports, include files into  /usr/local/include, documentation manual pages accessible with man program into /usr/local/man and it will install AX25 libraries into the /usr/local/lib/ directory.

        ls  /usr/local/lib should display the following files and symbolic links :

-rw-r--r--  1 root root 101464 déc  4 19:59 libax25.a
-rw-r--r-- 1 root root 20816 déc 4 19:59 libax25io.a
-rwxr-xr-x 1 root root 720 déc 4 19:59 libax25io.la*
lrwxrwxrwx 1 root root 18 déc 4 19:59 libax25io.so -> libax25io.so.0.0.0*
lrwxrwxrwx 1 root root 18 déc 4 19:59 libax25io.so.0 -> libax25io.so.0.0.0*
-rwxr-xr-x 1 root root 23090 déc 4 19:59 libax25io.so.0.0.0*
-rwxr-xr-x 1 root root 706 déc 4 19:59 libax25.la*
lrwxrwxrwx 1 root root 16 déc 4 19:59 libax25.so -> libax25.so.0.0.0*
lrwxrwxrwx 1 root root 16 déc 4 19:59 libax25.so.0 -> libax25.so.0.0.0*
-rwxr-xr-x 1 root root 76967 déc 4 19:59 libax25.so.0.0.0*

4. How to install AX25 tools

I patched official ax25-tools ax25tools-0.0.10-rc2 package in order to update it and remove some bugs. You may choose to use the RPM (or DEB) packages for easy install or the new source files and compile them.

To get the source files archive, right click on the following link and download the package into the directory of your choice

http://f6bvp.free.fr/logiciels/ax25/ax25-tools-0.0.10-rc2.patched_f6bvp.tar.bz2

4.1 Ubuntu Linux users may want to use AX.25 tools DEB package

Charlie K4GBB has built an AX25 tools package for Ubuntu Linux system (Debian) that you may try if you installed that distro.
Please report your observations as this is K4GBB first attempt with deb package.
http://f6bvp.free.fr/logiciels/ax25/ax25-tools-0.0.10_rc2-1_i386.deb

4.2 Another option is from AX.25 tools RPM package prepared by Lee VE7FET (ve7fet.at.gmail.com) that can be downloaded from this site http://code.google.com/p/linuxax25/

        http://code.google.com/p/linuxax25/downloads/detail?name=ax25tools-1.0.1-2.i386.rpm




5. How to install AX25 applications

Unlike the previous two packages, AX25 applications have evolved recently. Steve VK5ASF has provided an ax25ipd version with dynamic IP capability. As this version is not included into official ax25-apps release at the present time, I have provided the source of patched ax25-apps-0.0.8-rc2 package. You may choose to use the RPM (or DEB) packages for easy install or get the new source files and compile them. It is always preferable to compile software on your own system.

To get the source files archive, right click on the following link to download the newest version package into the directory of your choice : http://f6bvp.free.fr/logiciels/ax25/ax25-apps-0.0.8-rc2.patched_f6bvp.tar.bz2

Move the file into a directory, for example, /usr/local/src/ax25 then change to that directory.

tar xf ax25-apps-0.0.8-rc2.patched_f6bvp.tar.bz2 – Change directory

cd ax25-apps-0.0.8-rc2.patched_f6bvp and type the following set of commands :

5.1 Ubuntu Linux users may use AX.25 applications DEB package

Charlie K4GBB has built an AX25 applications package for Ubuntu Linux system (Debian) that you may try if you installed that distro.
Please report your observations as this is K4GBB first attempt with deb package.
http://f6bvp.free.fr/logiciels/ax25/ax25-apps-0.0.8_rc2-1_i386.deb

5.2 Another option is from AX.25 tools RPM package prepared by Lee VE7FET (ve7fet.at.gmail.com) that can be downloaded from this site http://code.google.com/p/linuxax25/

        http://code.google.com/p/linuxax25/downloads/detail?name=ax25apps-1.0.1-2.i386.rpm


6. A script for various directories and file setup

To run an FPAC node on a 2.6 Linux kernel we need to setup some directories and file rights. I wrote the following script to facilitate the job.

#!/bin/sh
# rc.init.script
# Part of http://rose.fpac.free.fr/MINI-HOWTO/
# by f6bvp at amsat dot org
#
# This script should be run only once after installation of
#
# - libax25
# - ax25-apps
# - ax25-tools
#
# and before installing FPAC fpac327 package
#
# AX25 libraries declaration (into ld.so.conf)
#
echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig
#
# Reserving UDP port 10093 for FPAC service
#
echo "fpad 10093/tcp # FPAC" >> /etc/services
echo "fpad 10093/udp # FPAC" >> /etc/services
#
# Making necessary AX25 directories
#
mkdir /usr/local/var
mkdir /usr/local/var/ax25
cd /var
ln -s /usr/local/var/ax25 ax25
mkdir /usr/local/etc
mkdir /usr/local/etc/ax25
cd /etc
ln -s /usr/local/etc/ax25 ax25
#
# Add some FPAC directories and files
#
mkdir /usr/local/var/ax25/fpac
/bin/chmod a+x /usr/local/var
/bin/chmod a+x /usr/local/var/ax25
/bin/chmod a+x /usr/local/var/ax25/fpac
/bin/touch /usr/local/var/ax25/fpac/loggedin
/bin/chmod a+w /usr/local/var/ax25/fpac/loggedin
#
mkdir /usr/local/var/ax25/mheard
/bin/chmod a+x /usr/local/var/ax25/mheard
/bin/touch /usr/local/var/ax25/mheard/mheard.dat
#
/bin/touch /usr/local/etc/ax25/axports
/bin/touch /usr/local/etc/ax25/nrports
/bin/touch /usr/local/etc/ax25/flexd.conf
/bin/touch /usr/local/etc/ax25/flexd.routes
#
echo "Do not forget to edit 'SYSOP=' and 'CONNECT='"
echo "in file /usr/local/sbin/fpac.sh"
echo "according to your own BBS callsign and sysop name"
#

# /usr/local/etc/ax25/axports
#
# The format of this file is:
# name  callsign speed paclen maxframes description
#
aprs   F6BVP-12  38400    256  2  144,800 (APRS)
uhf-1  F6BVP-13  38400    256  2  RX:430,325/TX:439,725 9600 Bauds
axudp  F6BVP-10  115200   256  2  Linux  (AX25<->UDP)
#


7. How to configure ax25ipd

# This file is in /usr/local/etc/ax25/ax25ipd.conf
# Configuration file for ax25ipd
#
socket udp 10093
#
# Operation mode (digi or tnc)
#
mode tnc
#
# Serial port or tunnel connected to kissattach
# slave pseudo tty /dev/pts/0 is attached to port ax0 (name axip in /etc/ax25/axports)
device /dev/ptmx
#
# Initialiser la vitesse du port pseudo tty
#
speed 115200
#
# loglevel 0 - pas de sortie
# loglevel 1 - info de config seulement
# loglevel 2 - evenement majeurs et erreurs
# loglevel 3 - evenements majeurs, erreurs et trace des trames AX25
# loglevel 4 - lister tous les evenements
#
loglevel 3
#
# Broadcast address. All listed address will be sent to routes with "b" flag
#
broadcast QST-0 NODES-0 FBB-0
#
# AX.25 routes declaration
# Format is route (callsign-ssid ) (destination host ip address or alias name)
# a 0 ssid will route all ssids (joker).
#
# route <dest_callsign> <des_address> [flags]
#
# Valid flags are :
# b - broadcast validated via this route
# d - default route
#
route f5kbw-0 ns1.f5kbw.org udp 10093 b
#
route vk2tv-0 115.70.139.149 udp 10093 b
route vk2xb-0 122.252.16.174 udp 10093 b
route vk7hdm-0 115.69.164.134 udp 10093 b
# Palm River KP4DJT
route kp4djt-0 w4bgh.no-ip.org udp 10095 b
#
route f1mvp-0 f1mvp.no-ip.org udp 10093 b
route f3kt-0 f3kt.dyndns.org udp 10093 b
#
route w4akh-0 198.172.211.163 udp 10093 b
#
route f6ggy-0 f6ggy.dyndns.org udp 10093 b
# Route to Citrus
route k4gbb-9 k4gbb.serveftp.com udp 10093 d
route k4gbb-14 k4gbb.serveftp.com udp 10093 b
# Route to LinuxLab
route k4gbb-12 k4gbb.serveftp.com udp 10094
#
route f6bvp-9 192.168.0.64 udp 10094 b
route f6bvp-8 192.168.0.64 udp 10094
route f6bvp-14 192.168.0.64 udp 10094
# F6BVP-7/6 Machine virtuelle 192.168.0.103
route f6bvp-7 192.168.0.103 udp 10097 b
route f6bvp-6 192.168.0.103 udp 10097
# F4BWT-0 = joker
route f4bwt-0 62.147.157.243 udp 10093 b
route kd4yal-0 kd4yal.servebbs.org udp 10093 b
route f6gov-0 f6gov.no-ip.org udp 10093 b
#
route va2bbs-0 va2bbs.homeip.net udp 10093 b
# route to Costa Rica
route ti2has-0 201.200.85.62 udp 10093 b
#
route f8coj-0 f8coj.no-ip.org udp 10093 b
# route to Aruba
route p43l-0 p43lfpac.no-ip.org udp 10093 b
# Route to Nicaragua
route yn1bbs-0 yn1bbs.no-ip.org udp 10093
#

8. How to install and configure FPAC 3.27

Jean-Paul F6FBB, the author of Linux FPAC, stopped its development with version 3.25 for Linux kernel 2.2, but released a compiled working version (3.26) on a floppy image that can be downloaded from F6FBB FTP site or from a mirror site. This Windows program , Rawrite, will help you to make a bootable floppy that will run Fpac. FPAC 3.26 was associated with Linux system glibc6 library compatible with 2.4 kernels. For our purpose we need to compile FPAC sources.

8.1 First install option from FPAC source package

make
make install
make installconf
(only if no previous FPAC configuration file exist, as they would be overwritten)

8.2 Second install option from FPAC package

    svn checkout https://fpac.googlecode.com/svn/branches/3.27/   fpac-3.27

    Then enter into fpac3.27 new directory

    cd fpac-3.27

    Run the following script (this is needed only the first time)

    ./autogen.sh

    Enter

     ./configure

    Then

     make

    and finally

    make install

    svn update

    If any file has been downloded, then perform make and make install and reboot your system. Really cool isn't it ?

8.3 FPAC configuration

# FPAC AX.25 packet node switch configuration file
# Fichier de configuration du node FPAC
# This file is in /usr/local/etc/ax25/fpac.conf
# Ce fichier doit etre dans /usr/local/etc/ax25/fpac.conf
# Node information
# Informations concernant le node
#
L2call = F6BVP-10
L3call = F6BVP-11
Trcall = F6BVP-15
DNIC = 2080
Address = 175502
#Coverage = 175202 175302 175402
InetPort = 10093
InetAddr = 44.151.75.15
Password = xxxxxxxxxx
City = Paris
State = 75017
Country = France
locator = JN18DV
UserPort = *
DefPort = axudp
#
# Additional commands
# Commandes supplementaires
#
Command
APRS = /usr/local/sbin/monitor -rt -p aprs
HRD = /usr/local/sbin/mheard -d m
BBs = connect fe6bvp-1 2080175502
# BBs = /usr/local/sbin/call_tcp f6bvp 1022
CLUster = /usr/bin/telnet 192.168.0.64 9000
CLSpider = /usr/bin/telnet 192.168.0.64 7300
CONVers = /usr/bin/telnet f4bwt.no-ip.org 3600
STHeure = /bin/cat /usr/local/var/ax25/fpac/fpacstat.dat
STJour = /bin/cat /usr/local/var/ax25/fpac/fpacstat.day
# Telnet =
IPLinks = /bin/netstat --ax25 --netrom
IPRoutes = /bin/netstat -nr
ROse = /bin/cat /proc/net/rose
RS_NEigh = /bin/cat /proc/net/rose_neigh
RS_NOdes = /bin/cat /proc/net/rose_nodes
RS_Routes = /bin/cat /proc/net/rose_routes
# NR_netrom = /bin/cat /proc/net/nr
# NR_NEigh = /bin/cat /proc/net/nr_neigh
# NR_NOdes = /bin/cat /proc/net/nr_nodes
MANuals = /usr/bin/man %1
TRace = connect f6bvp-15 2080175502
# KCK = connect f5kck-10
# KBW = connect f5kbw-8 2080833501
USA = connect kd4yal-8 3100727489
VERsions = /usr/local/bin/versions
End
# La commande BBs connectera l'utilisateur au BBS colocalise sur la meme
# machine via la couche rose.
# La commande CLu idem a BBs
# La commande STat affichera les statistiques des connexions
# La commande telnet etant vide elle ne sera pas affichee aux users
# Commandes reservees aux "sysops"
# Sysop commands
#
Sysop
DIsk = /bin/df -k
SYSop = /usr/local/sbin/fpacshell
YGET = /usr/local/sbin/yapp -u /usr/local/etc/ax25/%1
YPUT = /usr/local/sbin/yapp -d /usr/local/etc/ax25/%1
RM = /bin/rm /usr/local/etc/ax25/%1
LS = /bin/ls -l /usr/local/etc/ax25/%1
CP = /bin/cp /usr/local/etc/ax25/%1 /usr/local/etc/ax25/%2
CAT = /bin/cat /usr/local/etc/ax25/%1
MV = /bin/mv /usr/local/etc/ax25/%1 /usr/local/etc/ax25/%2
REBoot = /sbin/reboot
WEdit = /usr/local/sbin/wpedit %*
end
#
#
# Other applications
#
# TEST
#Application
#F6BVP-13 = /usr/local/bin/testcommande /home "-P 0" -a -d95
#End
#
# on donne au port d'acces utilisateur VHF l'adresse 175502
# will add a rose device like rose1
# AddPort = VHF
# Address = 175602
# Port = vhf-1
# End
# on donne au port d'acces utilisateur UHF l'adresse 175302
AddPort = UHF
Address = 175302
Port = uhf-1
End
# Port UHF 9600 via carte SCC4 et T7F (experimental)
#AddPort = UHF-9600
# Address = 175402
# Port = uhf-2
#End
#
# List of predifined users (to specify a non-default port)
#
# La commande USER est ici inutilisee car les trames sont achemin�es
# par la couche rose. Elle etait utile auparavant lorsqu'on utilisait
# le Kissnetd pour creer un reseau interne pour relier les applications
# entr'elles.
#User = BBS
# Path = F6KDS-1
# port =
#End
#
# Liste d'alias. Permet une connection facile a certains indicatifs
#
# Alias = F6BVP-2
# Path = F6BVP-2,175520
# End
#
# Alias = F6BVP-3
# Path = F6BVP-2,175520
# End
#
# All conf files in /usr/local/etc/ax25/
# FPAC nodes definis dans fpac.nodes
# FPAC nodes are defined in fpac.nodes
# ROSE routes are defined in fpac.routes
# ROSE routes definies dans fpac.routes
# AXIP routes are defined in ax25ipd.conf
# AXIP routes definies dans ax25ipd.conf
#
#

FPAC nodes configuration file is /usr/local/etc/ax25/fpac.nodes

The following example fpac.nodes may be downloaded from here

# FPAC ROSE adjacent nodes configuration file
# Fichier de configuration des Nodes adjacent ROSE FPAC
#
# This file is in /usr/local/etc/ax25/fpac.nodes
# Ce fichier doit etre dans /usr/local/etc/ax25/fpac.nodes
#
# List of adjacent nodes
#
Node = VK7HDM
Path = VK7HDM-5
DNIC = 5050
Address = 626300
Port = axudp
NoWP = 0
End
Node = TI2HAS
Path = TI2HAS-9
DNIC = 7120
Address = 282700
Port = axudp
NoWP = 0
End
Node = ARUBA
Path = P43L-4
DNIC = 3630
Address = 297585
Port = axudp
NoWP = 0
End
Node = VK2XB
Path = VK2XB-2
DNIC = 5050
Address = 699300
Port = axudp
NoWP = 0
End
Node = VK2TV
Path = VK2TV-2
DNIC = 5050
Address = 656200
Port = axudp
NoWP = 0
End
Node = KP4DJT
Path = KP4DJT-9
DNIC = 3100
Address = 813626
Port = axudp
NoWp = 0
End
Node = K4GBB
Path = K4GBB-9
DNIC = 3100
Address = 352726
Port = axudp
NoWp = 0
End
Node = MVP
Path = F1MVP-5
DNIC = 2080
Address = 886801
Port = axudp
NoWp = 0
End
Node = YAL
Path = KD4YAL-9
DNIC = 3100
Address = 727489
Port = axudp
NoWp = 0
End
Node = F5KBW
Path = F5KBW-9
DNIC = 2080
Address = 833501
Port = axudp
NoWp = 0
End
Node = F4BWT
Path = F4BWT-11
DNIC = 2080
Address = 428501
Port = axudp
NoWp = 0
End
Node = LAN520
Path = F6BVP-9
DNIC = 2080
Address = 175520
Port = axudp
NoWp = 0
End
Node = LAN521
Path = F6BVP-7
DNIC = 2080
Address = 175521
Port = axudp
NoWp = 0
End
Node = LAN522
Path = F6BVP-5
DNIC = 2080
Address = 175522
Port = axudp
NoWP = 0
End
Node = GGY
Path = F6GGY-9
DNIC = 2080
Address = 847501
Port = axudp
NoWP = 0
End
Node = F3KT
Path = F3KT-11
DNIC = 2080
Address = 444501
Port = axudp
NoWp = 0
End
Node = COJ
path = F8COJ-11
DNIC = 2080
Address = 854509
Port = axudp
NoWp = 0
End
Node = BBS
Path = YN1BBS-9
DNIC = 7100
Address = 505522
Port = axudp
NoWp = 0
End
#

FPAC routes configuration file is /usr/local/etc/ax25/fpac.routes

The following example fpac.routes may be downloaded from here

#
# FPAC ROSE route configuration file
# Fichier de configuration des routes ROSE FPAC
#
# This file is in /usr/local/etc/ax25/fpac.routes
# Ce fichier doit etre dans /usr/local/etc/ax25/fpac.routes
#
# Routes to adjacent nodes
#
# DNIC specify a default DNIC for the following addresses
#
# Address is for 1 to 6 digits, using hierarchy
#
Routes
DNIC = 0
2080 = F4BWT
2080 = F3KT
2080 = F5KBW
3020 = K4GBB
3100 = KP4DJT
3100 = YAL
3100 = K4GBB
3620 = TI2HAS
3620 = BBS
3620 = ARUBA
3630 = TI2HAS
3630 = BBS
3630 = ARUBA
5050 = VK2TV
5050 = VK2XB
5050 = VK7HDM
7120 = ARUBA
7120 = BBS
7120 = TI2HAS
7100 = ARUBA
7100 = TI2HAS
7100 = BBS
#
DNIC = 2080
# 175505 = KVP
175522 = LAN522
175521 = LAN521
175520 = LAN520
#
854509 = COJ
# 175 = LAN520
# 178 = LAN520
# 195 = LAN520
1 = LAN521
1 = LAN520
444 = MVP
444 = GGY
444 = F3KT
444501 = F3KT
7 = F5KBW
8 = F5KBW
8 = COJ
8335 = F5KBW
833501 = F5KBW
847 = F4BWT
847 = GGY
847501 = GGY
428 = F4BWT
428501 = F4BWT
886801 = MVP
9 = F5KBW
DNIC = 3100
352726 = K4GBB
727489 = YAL
813626 = KP4DJT
DNIC = 3630
297585 = ARUBA
DNIC = 5050
699300 = VK2XB
656200 = VK2TV
626300 = VK7HDM
DNIC = 7100
505522 = BBS
DNIC = 7120
282700 = TI2HAS
End
Address Port Description
2080,175302 uhf-1 RX:430,325/TX:439,725 9600 Bauds
ROSE routes :
DNIC Address Primary Route | 1st Alt Route | 2nd Alt Route |
7100,...... YN1BBS-9 Opened | TI2HAS-9 Closed | P43L-4 Opened |
7120,...... TI2HAS-9 Closed | YN1BBS-9 Opened | P43L-4 Opened |
5050,...... VK7HDM-5 Opened | VK2XB-2 Closed | VK2TV-2 Opened |
3630,...... P43L-4 Opened | YN1BBS-9 Opened | TI2HAS-9 Closed |
3620,...... P43L-4 Opened | YN1BBS-9 Opened | TI2HAS-9 Closed |
3100,...... K4GBB-9 Opened | KD4YAL-9 Closed | KP4DJT-9 Closed |
3020,...... K4GBB-9 Opened |
2080,...... F5KBW-9 Opened | F3KT-11 Opened | F4BWT-11 Closed |
2080,9..... F5KBW-9 Opened |
2080,8..... F8COJ-11 Closed | F5KBW-9 Opened |
2080,7..... F5KBW-9 Opened |
2080,1..... F6BVP-9 Opened | F6BVP-7 Closed |
2080,428... F4BWT-11 Closed |
2080,847... F6GGY-9 Closed | F4BWT-11 Closed |
2080,444... F3KT-11 Opened | F6GGY-9 Closed | F1MVP-5 Closed |
2080,8335.. F5KBW-9 Opened |
7120,282700 TI2HAS-9 Closed |
7100,505522 YN1BBS-9 Opened |
5050,626300 VK7HDM-5 Opened |
5050,656200 VK2TV-2 Opened |
5050,699300 VK2XB-2 Closed |
3630,297585 P43L-4 Opened |
3100,813626 KP4DJT-9 Closed |
3100,727489 KD4YAL-9 Closed |
3100,352726 K4GBB-9 Opened |
2080,886801 F1MVP-5 Closed |
2080,428501 F4BWT-11 Closed |
2080,847501 F6GGY-9 Closed |
2080,833501 F5KBW-9 Opened |
2080,444501 F3KT-11 Opened |
2080,854509 F8COJ-11 Closed |
2080,175520 F6BVP-9 Opened |
2080,175521 F6BVP-7 Closed |
2080,175522 F6BVP-5 Closed |

9. AX25 startup scripts

#!/bin/sh
# this script file is /etc/rc.d/rc.ax25
# after K4GBB ax25 scripts
echo 1 > /proc/sys/net/ipv4/ip_forward
#
echo "Installing ax25ipd Unix98 master pseudo tty"
/bin/date > /var/log/ax25ipd.log
/usr/bin/killall -KILL /usr/local/sbin/kissattach
/usr/bin/killall -KILL /usr/local/sbin/ax25ipd
/usr/bin/killall -KILL /usr/local/sbin/mkiss
/sbin/ifconfig /dev/ax0 down
/sbin/ifconfig /dev/ax1 down
/sbin/ifconfig /dev/ax2 down
/usr/local/sbin/ax25ipd > /tmp/unix98
echo $! > /var/run/ax25ipd.pid
export AXUDP=`tail -1 /tmp/unix98`
#
echo "Installing a KISS link on ethernet port"
/usr/local/sbin/kissattach $AXUDP axudp 44.151.75.15 > /tmp/ax25-config.tmp
awk '/device/ { print $7 }' /tmp/ax25-config.tmp > /tmp/ax25-config-tmp
read Device < /tmp/ax25-config-tmp
# Check for Device
if [ -d /proc/sys/net/ax25/$Device ]
then echo "Port axudp attached to $Device"
cd /proc/sys/net/ax25/$Device/
# ifconfig $Device parameters
ifconfig $Device netmask 255.255.255.255
ifconfig $Device broadcast 0.0.0.0
else echo "** Error setting $Device parms **"
fi
/bin/sleep 4
echo "Installing two KISS connections on serial port ttyS0"
# aprs & uhf-1 are ports names in /etc/ax25/axports
echo "Installing two KISS connexions on serial port ttyS0"
# -c enables a one-byte checksum on each incoming and outgoing KISS frame on
# the serial port. This checksum is used by G8BPQ KISS roms to maintain the
# integrity of KISS frames. Do not use -c with standard TNC KISS EPROM.
#/usr/local/sbin/mkiss -s 38400 -c -x 2 /dev/ttyS0 > /tmp/unix98
/usr/local/sbin/mkiss -s 38400 -x 2 /dev/ttyS0 > /tmp/unix98
export PTS0=`more /tmp/unix98 | grep -w /dev | cut -b -11`
export PTS1=`more /tmp/unix98 | grep -w /dev | cut -b 12-`
# Attach KPC9612 TNC in kiss mode - on primary PORT ttyS0 = 1200 bauds ---> ax1 = aprs
/usr/local/sbin/kissattach $PTS0 aprs f6bvp.ampr.org > /tmp/ax25-config.tmp
awk '/device/ { print $7 }' /tmp/ax25-config.tmp > /tmp/ax25-config-tmp
read Device < /tmp/ax25-config-tmp
# Install Parameter : P=250, W=10, TX-Delay=50
/usr/local/sbin/kissparms -p aprs -r 250 -s 10 -l 20 -t 220
# Check for Device
if [ -d /proc/sys/net/ax25/$Device ]
then echo "Port aprs attached to $Device"
cd /proc/sys/net/ax25/$Device/
# ifconfig $Device parameters
ifconfig $Device netmask 255.255.255.0
ifconfig $Device broadcast 0.0.0.0
else echo "** Error setting $Device parms **"
fi
# Port end
# Attach KPC9612 TNC in kiss mode - on secondary PORT ttyS0 = 9600 bauds ---> ax2 = uhf-1
/usr/local/sbin/kissattach $PTS1 uhf-1 f6bvp.ampr.org > /tmp/ax25-config.tmp
awk '/device/ { print $7 }' /tmp/ax25-config.tmp > /tmp/ax25-config-tmp
read Device < /tmp/ax25-config-tmp
# Install Parameter : P=250, W=10, TX-Delay=50
/usr/local/sbin/kissparms -p uhf-1 -r 250 -s 10 -l 20 -t 220
# Check for Device
if [ -d /proc/sys/net/ax25/$Device ]
then echo "Port uhf-1 attached to $Device"
cd /proc/sys/net/ax25/$Device/
# ifconfig $Device parameters
ifconfig $Device netmask 255.255.255.0
ifconfig $Device broadcast 0.0.0.0
else echo "** Error setting $Device parms **"
fi
# Port end
#

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
#
echo 60 > /proc/sys/kernel/panic
echo 60 > /proc/sys/kernel/panic_on_oops
echo 1  > /proc/sys/kernel/sysrq

#
/etc/rc.d/rc.ax25
/usr/local/sbin/fpac.sh -start
#
touch /var/lock/subsys/local
#

cd  /usr/local/bin

ln -s /etc/rc.d/rc.ax25  ax25


10.1. Router and Firewall configurations

If your Linux computer is directly connected to your DSL box without a router, the following applies to your DSL router settings.

A router not only performs the basic routing functions but it usally includes a firewall to protect your computer and LAN from Internet intruders. By default the traffic passing through the router may be filtered in both directions. IP packets going from LAN to Internet are routed only if you give the permission. You may already be setup to pass normal traffic. However AX25 applications are using ports that must be opened in both directions. Ports up to 1024 are reserved for Standard applications and must not be used. See /etc/services file. FPAC application needs port 10093 to be opened in both directions for UDP and TCP protocols. Check your router or DSL modem documentation to find out how to enable these ports and redirect these ports to your computer local IP address. Same for other AX25 applications such as port 6300 (TCP/UDP) for xfbbd (BBS), port 9000 UDP for DxNet, port 7300 for DxSpider.

Linux Mandriva is using a firewall appication to protect computer access via network ports. It is called shorewall. You may want to disable it (not recommanded) or if not, you need to allow traffic for some application protocoles  and specific ports. This is done via Mandriva control Center (MCC) menu Security. Select Configure your own firewall. Select all if you want to let all ports opened or select some applications like : SSH, FTP, Web server etc... Additionaly go into Advanced and write the following port numbers you will use for FPAC, BBS, Cluster etc.. : 6300/tcp 6300/udp 7300/tcp 7300/udp 10093/tcp 10093/udp


10.2. Interfacing FPAC with application programs

Some application programs that will run on the same Linux machine can listen to a local port and may be easily interconnected with fpac node.

FBB and DxNet can communicate with FPAC without additive programs. NetRomd needs ax25d to be connected internally with FPAC.


10.2.1. Interfacing FPAC with a BBS application

If your Linux box is running a BBS it can be internally connected to ROSE FPAC and interfaced with NetRom. This will give your BBS a worldwide access to AX25 stations
Important notice : in modern distros Linux kernel is customized for Simultaneous Parallel Multiprocessing (SMP), allowing the kernel to use multiple core CPUs when present. However LinFBB BBS sometimes does not work well when running with more than one CPU. In that case the trick is to tell the kernel to only use one CPU with maxcpus=1 argument in GRUB /boot/grub/menu.lst file.

Note : maxcpus=1 should replace nosmp argument that I recommanded previously. nosmp must not be used as it creates bad issues with interrupts leading to instable systems ! (technical reason is that ACPI is also disabled).

Edit /boot/grub/menu.lst file and add maxcpus=1 like in the following example :

title 2.6.37
kernel (hd0,0)/boot/vmlinuz-2.6.3
7 BOOT_IMAGE=2.6.37 root=/dev/hda1 splash=silent vga=788 maxcpus=1 initrd (hd0,0)/boot/initrd-2.6.37.img

Recommanded FBB version is always the last one as it is supposed to remove bugs present in earlier versions (...)

Follow this link : http://f6bvp.free.fr/logiciels/BBS-f6fbb/   and download latest source package like : xd705-src.tar.bz2

Lets now have a look at different FBB configuration files under Linux.
This is a partial listing from FBB BBS showing the port description file : /usr/local/etc/ax25/fbb/port.sys

#Com Interface Adress (Hex)   Baud
    1   9        *****        115200
    2   9        189C         0
#
#TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode  Freq
  0   0    0   0       0     0     0     0      00/01   ---- File-fwd.
  1   8    1   rose0   250   2     6     10     12/04   XULWY Rose0
  2   4    1   axudp   250   2     2     10     25/20   XUWY  AXUDP
  3   8    2   0       250   2     4     10     04/10   TUWY  Telnet
  4   4    1   uhf-1   250   2     2     10     05/06   XULWY UHF-1
#

MultCh represents pseudo TTY devices created by kissattach.
Here is again an example of the /etc/rc.d/rc.ax25 script I am using to initialize pseudo TTYs.
Devices names are declared in /usr/local/etc/ax25/axports.
Like in the above example Multch names can be different from 1, 2, 3,... More clearly identified names like vhf-1, vhf-2, uhf, axudp, aprs, are encouraged.
Remember, Multch device names must be identical to the names declared in axports file, or be a zero for Telnet device.

TNC 4 is linked to AX25 port named uhf-1 in /etc/ax25/axports file.

Telnet com port address 189C is decimal 6300. Connection command is : telnet <hostname> 6300 to enter the BBS.

Pseudo uhf-1 will interface the BBS directly with AX25 port.

Pseudo rose0 is the interface toward and from ROSE network handled by FPAC packet switch application.

There is a correspondance between above TNC numbers in port.sys and port letters in forward files : A=1, B=2,...D=4.
In the example above P A means that forward for F6BVP-1 will use TNC 1 and actually rose0 pseudo interface.

Line C C may refer to a forward via either symbolic or IP Internet address number. Example :

P C
C C K4GBB-0 3100352726

or

P A
C C F6CDD 88.171.57.115 23
V .F6BVP$WPASSWORD$W

Remember to declare BBS telnet port 6300 in /etc/services as explained earlier. Add the following lines at the end of the file.

xfbbd 6300/tcp  # FBB BBS daemon
xfbbd 6300/udp # FBB BBS daemon

Move the source package into /usr/local/src/ax25

cd /usr/local/src/ax25

tar  xf   xd705c3-src.tar.bz2
cd  fbbsrc.705c3
cd src
make
make install

urpmi lesstif
urpmi lesstif-devel
urpmi libopenmotif


Then enter fbb X11 subdirectory fbbsrc.705c3/src/X11

cd X11
make

cp xfbbX        /usr/local/sbin
cp xfbbX_cl    /usr/local/bin
cp xfbb          /usr/local/sbin

xfbb -a &

xfbbX &


To start BBS application, enter command fbb that will execute /usr/local/sbin/fbb script. The first time it will proceed to initialization of the necessary configuration files asking a few questions and create /usr/local/etc/ax25/fbb.conf and /usr/local/etc/ax25/port.sys if they did not exist yet. Next times it will start xfbbd the BBS daemon application. You may put a copy of fbb in /etc/rc.d with other startup scripts.

To help you configuring FBB there is a BBS keywords documentation provided by charlie K4GBB.

For local connections, edit sysop CALLSIGN and  PASSWORD in file /etc/ax25/fbb/passwrd.sys

# Passwords
123456789
PASSWORD OF ALL NON DEFINED CALLSIGNS.
CALLSIGN 63 1023 PASSWORD
44.151.75.15 *
#

You can start a console FBB client manually with the command :
xfbbC -c -i CALLSIGN -w PASSWORD

However is is more convenient to write a script to start a console FBB client :

#!/bin/sh
#
/usr/local/sbin/xfbbC -c -i CALLSIGN -w PASSWORD
#

Replace CALLSIGN and PASSWORD by the corresponding names in /etc/ax25/fbb/passwrds
Lets call the following script
file bbs and put it in /usr/local/bin and make it executable :

chmod +x bbs

Simple bbs command will now allow you the SYSOP to enter your local BBS by running the FBB client xfbbC.




10.2.2. Interfacing FPAC with DxCluster or DxSpider applications

DxCluster

Dxnet system/dxnet.cfg file will look like :

set/node +f8kgk-3 +f5mtz-3 +f5kbw-3 +f6cdd-3 +tu5ex-3 +kp4ig-5
set/call f6bvp-2
set/sys +F6BVP
set/ssid +2
set/port 0 1 3 4 rose0 inet:9000 netclu
set/tz +2


The Dx cluster can be accessed via either ax25 radio ports 0, 1, 3 and 4, via FPAC node port rose0, telnet port 9000 and NetRom port netclu.

DxSpider

If you want to provide FPAC users access to DxSpider (callsign F6BVP-2)  you can use ax25d daemon.

Install DxSpider following its documentation. Follow the examples for configuring telnet or radio ports user access. Don't forget to change the file name of startup.issue and rename it startup after editing it according to your needs, as it took me a long time since I found out why DxSPider did not work properly for it did not find startup file but did not complain about it !

For access through FPAC here is is the content of necessary /usr/local/etc/ax25/ax25d.conf file

# a ROSE port is declared between { }
{F6BVP-2 via rose0}
NOCALL * * * * * * L
default  * * * * * *  -   sysop  /spider/src/client client %u ax25
#

Replace %u with %f if you want to handle users or other nodes with SSID.
After editing this file you need to restart /usr/local/sbin/ax25d daemon.
If Spider main directory is not /spider, then change it accordingly in the above example configuration file.

Add the following lines at the end of /etc/services file

spdlogin 7300/tcp  # Spider
spdlogin 7300/udp # spider

Note : when starting ax25d from a script it must be started after fpac in order to have rose0 device already set up.
When a user issues a connect request to F6BVP-2 via ROSE FPAC network, it will be connected to the DX cluster.

You may add a command to give users access to a Dx Cluster from your FPAC node.
This command is to be added into fpac.conf at paragraph Command. Fo example :

Command
    APRS      = /usr/local/sbin/monitor -rt -p aprs
    MONitor   = /usr/local/sbin/monitor -art -p %1
    HRD       = /usr/local/bin/mheard -d m
    BBs       = connect f6bvp-1 2080175520
    CLUster   = /usr/bin/telnet 192.168.0.64 9000          
    CLSpider  = /usr/bin/telnet 192.168.0.64 7300
    VERsions  = /usr/local/bin/versions
End
 


10.2.3. Interfacing FPAC with NetRom

Creating NetRom devices

Run the following sample script during AX25 setup. It will create NetRom devices that will be used by the following applications and start NetRomd daemon.
Edit the file with your own ampr address (44.xxx.xx.xx) and adjacent NetRom nodes.

#!/bin/sh
# /etc/rc.d/rc.netrom
#
#echo "NETROM"
  /sbin/modprobe netrom
#
killall -KILL netromd
ifconfig nr1 down
ifconfig nr0 down
ifconfig nr2 down
# creating NET/ROM devices (please edit your own ampr.org network address)
/usr/local/sbin/nrattach -i 44.151.75.15 -m 236 netnod
/usr/local/sbin/nrattach -i 44.151.75.15 -m 236 netbbs
/usr/local/sbin/nrattach -i 44.151.75.15 -m 236 netclu
# adjacent NET/ROM nodes creation via port axudp = ax0 (ax25 over ip)
/usr/local/sbin/nrparms -nodes k4gbb-14  + CIT03 120 6 axudp k4gbb-14
/usr/local/sbin/nrparms -nodes kp4djt-14 + DJT14 120 6 axudp kp4djt-14
/usr/local/sbin/nrparms -nodes vk2tv-14  + KEMPC 120 6 axudp vk2tv-14
/usr/local/sbin/nrparms -nodes vk2vy-2   + VYNODE 120 6 axudp vk2vy-2
# start ax25d daemon to link NetRom and FPACnode application
/usr/local/sbin/ax25d
# Broadcast NET/ROM
/usr/local/sbin/netromd -lid -t 10
# Setup Netrom subnetmask
/sbin/ifconfig nr0 netmask 255.255.255.255
/sbin/ifconfig nr1 netmask 255.255.255.255
/sbin/ifconfig nr2 netmask 255.255.255.255
#

For deeper understanding see nrattach and nrparms manuals.

nrports file describes NetRom port names

Example of /usr/local/etc/ax25/nrports file

# /usr/local/etc/ax25/nrports
#
# The format of this file is:
# name callsign alias paclen description
#
netnod  F6BVP-10  BVPN10    236    F6BVP FPAC node
netbbs  F6BVP     BVPBBS    236    F6BVP BBS
netclu  F6BVP-2   BVPDX     236    F6BVP Dx Cluster
#

Note : for best FPAC routing do not set any SSID for BBS callsign in above file. This will allow
FPAC to choose the right protocol depending on the SSID when a user make a call request.
If call is C F6BVP or C BVPBBS then FPAC will use NetRom protocol.
If call is C F6BVP-1 then FPAC will use ROSE protocol.

Daemon /usr/local/sbin/ax25d should run to redirect NetRom protocol calls to FPACnode
This is the content of your /usr/local/etc/ax25/ax25d.conf file

#
<netrom>
parameters 1   10 * * * * *
NOCALL * * * * * * L
default  * * * * * * *    root /usr/sbin/fpacnode fpacnode -q %S
#


Add the letter b after UDP port number of the route description in /usr/local/etc/ax25ipd.conf to allow broadcast of NetRom routes.


10.2.4. Adding RMS link to FPAC

This page by Charley K4gbb describes how to configure user RMS gate access via FPAC network.


10.2.5. Allowing remote users access to FPAC node via Internet

This is how to configure Internet acces to your FPAC node using either a TELNET or SSH connection.
Note : this will not give users access to your Linux machine but only give them access to FPAC node.

If you did not already create a user named  fpacuser, create it with the following command :

# adduser -m fpacuser

Create user  fpacuser password fpac :

# passwd fpacuser
enter NEW UNIX password :
fpac
ignore the remark and retype
NEW UNIX password :
fpac

Edit file  /etc/group for adding users to fpacuser group

Use your usual editor, the following syntax is for vi

# vi /etc/group
Use arrow keys to get down to the last line comprising

fpacuser:x:150:

Note : the number may be different.

Type on key i to get into insert mode and add fpacuser and root

fpacuser:x:150:fpacuser,root

Type on key Esc then on key semicolon : then enter wq and press Enter key to leave the editor.
We now need to edit the users password file to change the shell program name invoked when a fpacuser user is connecting
 

vi /etc/passwd

Type on key i to get into insert mode use arrow keys to get down to the last line comprising user fpacuser
and replace existing  /bin/sh or /bin/bash by /usr/local/sbin/fpacnode

Type on key
Esc then on key semicolon : then enter wq and press Enter key to leave the editor.
It is now necessary to give users the rights for using fpacnode  :

#
chmod  4775 /usr/local/sbin
# chmod  4775 /usr/local/sbin/fpacnode

It is also necessary to change loggedin file permission :

# chmod a+w /usr/local/var/ax25/fpac/loggedin

You can now check that your configuration is working by making a local connection via telnet or ssh to your FPAC Linux :

# telnet localhost -l fpacuser
or
# ssh  -l  fpacuser localhost

and enter password fpac to get access to fpac node.


10.3. Other Network Utility Programs

Net-tools includes some usefull programs. Among them, netstat is interesting for it can display a list of Linux opened sockets, kernel route table and network statistics.

In present distro net-tools netstat handles NetRom and AX.25 sockets, but does not provide any information about ROSE sockets used by FPAC.

I wrote two patches for the newest package that can be downloaded from Berlios.de net-tools repository to make netstat know about ROSE sockets.

Open a terminal and type the following command lines :

cd    /usr/local/src/

cvs -d:pserver:anonymous@cvs.net-tools.berlios.de:/cvsroot/net-tools login

Type <return> when asked for a password.

cvs -z3 -d:pserver:anonymous@cvs.net-tools.berlios.de:/cvsroot/net-tools co net-tools

This will create net-tools sub directory with all net-tools modules including netstat.

Download the following patch with your browser and move it into /usr/local/src

http://f6bvp.free.fr/logiciels/netstat/netstat-CVS-1.70.patch

cd /usr/local/src and apply the patch :

patch -p0 < netstat-CVS-1.70.patch


Enter net-tools directory :

cd  net-tools


Compile net-tools utility programs :

make (you need to answer y (yes) or n (no) to a number of questions to customize net-tools compilation

            default response is Yes)
           
make install


You can now use netstat to display ROSE sockets information with the commands :

netstat --ax25
or netstat --netrom
or netstat --rose
[root@f6bvp-9 net-tools-1.60-23]# netstat --ax25
Active AX.25 sockets
Dest Source Device State Vr/Vs Send-Q Recv-Q
F6BVP-12 F6BVP-14 ax2 ESTABLISHED 006/003 0 0
F6BVP-11 F6BVP-9 ax2 ESTABLISHED 003/000 0 0
* F6BVP-1 ax2 LISTENING 000/000 0 0
* F6BVP-1 ax1 LISTENING 000/000 0 0
* F6BVP-1 ax0 LISTENING 000/000 0 0
* F6BVP-15* ??? LISTENING 000/000 0 0
* F6BVP-15 ??? LISTENING 000/000 0 0
* F6BVP-8 ??? LISTENING 000/000 0 0
* F6BVP-8* ??? LISTENING 000/000 0 0
* F6BVP-9* ??? LISTENING 000/000 0 0
[root@f6bvp-9 net-tools-1.60-23]# netstat --netrom
Active NET/ROM sockets
User Dest Source Device State Vr/Vs Send-Q Recv-Q
* * F6BVP-0 nr1 LISTENING 000/000 0 0
[root@f6bvp-9 net-tools-1.60-23]# netstat --rose
Active ROSE sockets
dest_addr dest_call src_addr src_call dev lci neigh state
2080175521 ROUTE-0 2080175520 F6BVP-9 rose0 0 0 LISTENING
2080175520 F6BVP-0 2080175520 F6BVP-15 rose0 0 1 LISTENING
* * 2080175520 F6BVP-1 rose0 0 0 LISTENING
2080428501 F4BWT-10 2080175520 F6BVP-0 rose0 0 0 LISTENING
* * 2080175520 ROUTE-0 rose0 0 0 LISTENING
* * 2080175520 F6BVP-15 rose0 0 0 LISTENING
2080175520 FPAD-0 2080175520 WP-0 rose0 0 0 LISTENING
* * 2080175520 WP-0 rose0 0 0 LISTENING
2080175520 WP-0 2080175520 FPAD-0 rose0 1 1 ESTABLISHED
* * 2080175520 ??????-? rose0 0 0 LISTENING

You may want to display kernel ROSE routing table :

[root@f6bvp-11 bernard]# netstat --route --rose

Table de routage ROSE du noyau
Destination neigh1 callsign device neigh2 callsign device neigh3 callsign device
2080175502 00001 RSLOOP-0 ???
2080175522 00016 F6BVP-5 ax0
2080175521 00015 F6BVP-7 ax0
2080175520 00014 F6BVP-9 ax0
2080854509 00012 F8COJ-11 ax0
2080444501 00013 F3KT-11 ax0
2080833501 00008 F5KBW-9 ax0
2080847501 00011 F6GGY-9 ax0
2080428501 00010 F4BWT-11 ax0
2080886801 00009 F1MVP-5 ax0
3100352726 00007 K4GBB-9 ax0
3100727489 00006 KD4YAL-9 ax0
3100813626 00005 KP4DJT-9 ax0
5050699300 00004 VK2XB-2 ax0
5050656200 00003 VK2TV-2 ax0
7120282700 00002 TI2HAS-9 ax0
2080833500 00008 F5KBW-9 ax0
2080444000 00013 F3KT-11 ax0 00011 F6GGY-9 ax0 00009 F1MVP-5 ax0
2080847000 00011 F6GGY-9 ax0 00010 F4BWT-11 ax0
2080428000 00010 F4BWT-11 ax0
3100772000 00006 KD4YAL-9 ax0 00007 K4GBB-9 ax0 00003 VK2TV-2 ax0
2080100000 00014 F6BVP-9 ax0 00015 F6BVP-7 ax0
2080700000 00008 F5KBW-9 ax0
2080800000 00012 F8COJ-11 ax0 00008 F5KBW-9 ax0
2080900000 00008 F5KBW-9 ax0
2080000000 00008 F5KBW-9 ax0 00013 F3KT-11 ax0 00010 F4BWT-11 ax0
3100000000 00006 KD4YAL-9 ax0 00007 K4GBB-9 ax0 00005 KP4DJT-9 ax0
5050000000 00003 VK2TV-2 ax0 00004 VK2XB-2 ax0 00006 KD4YAL-9 ax0
7120000000 00002 TI2HAS-9 ax0 00007 K4GBB-9 ax0 00006 KD4YAL-9 ax0
7100000000 00002 TI2HAS-9 ax0 00007 K4GBB-9 ax0 00006 KD4YAL-9 ax0




11. More HOWTOs

There are many other documents that relate to Linux networking in a general way. I strongly recommend you also read them. They will assist your efforts and provide a stronger insight into other possible configurations.

They are:

The Linux Kernel HOWTO

The AX25-HOWTO,

Tithe HAM-HOWTO,

The NET-3-HOWTO,

The Ethernet-HOWTO,

and:

The Firewall-HOWTO


12. Getting Help

Remember that FPAC is a network switch. You must be able to connected to at least one other FPAC node. The more adjacent nodes you are linked to the better your network will perform.

Stations already running an FPAC node is a good place to get help.

Reading messages from FPAC News list is a must.. To see the collection of prior postings to the list, visit the fpac Archives.

Subscribe to the FPAC list by going to this page.

An FPAC users group has been created recently here http://groups.google.com/group/fpac-operators

Global help about Linux and Ham radio can be requested via the Linux Ham list. First check the Linux-hams archive. or the actual Linux-ham list.
Linux-Hams is a mailing list for the discussion of the Linux operating system, and it's use in Amateur Radio. Anyone with an interest in both subjects is encouraged to subscribe. The discussion is mostly concentrated on the use and development of the AX.25 code in the Linux kernel. If you would like to subscribe to the Linux-hams mailing list and receive these messages in your own mailbox, send a message to majordomo@vger.kernel.org, placing the line

subscribe linux-hams

in the body of the message.