f6bvp
at amsat dot org
V1.1.2, 2007-01-26
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 version 3.27) under Linux operating system with kernel 2.6. The reader will be guided step by step through the process of configuring a FPAC node capable of connecting to other nodes via the Internet. The user will be responsible for the radio interface configuration.. 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 PLP (ROSE) protocol. A network of FPAC nodes can transparently interconnect many applications such as BBS stations for bulletin or message forwarding, DX spots, Terminal Chat connections, etc.. For a complete description of FPAC software, consult FPAC HOWTO.
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 the W2VY implementation of ROSE in assembly language and "C" for packet radio Terminal Node controler TNC2. Jean-Paul also wrote the FPAC HOWTO which covers the operation and setup of the FPAC node.
The purpose of this document is to assist the reader in the setup of an Amateur Radio Packet node. The process is based on my own experience using Mandrake Linux distributions.
With Linux 2.2 kernels, the last available being 2.2.26, AX25 applications are quite stable. They operate 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 is not as well supported on the 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 worked intensively on AX25 code adaptation to 2.6 kernel. Versions later than 2.6.13 are fine for stable when running HamRadio AX25 applications.
This step by step procedure to set up an FPAC node, based on Mandriva Linux 2007 distro with 2.6 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.
Installing Mandriva Linux is out of the scope of this MINI HOWTO. I order to familiarize yourself with Linux, there is a Live version available on one bootable CD. Mandriva Linux live distro is called “One”. There are sixteen different medias (CD ISO images) for the 2007 "One" edition: for each architecture (i586, x86_64), for various selection of languages, with either a KDE or GNOME desktop. Download the version you need from an FTP mirror site, most often the version will be the Mandriva One Free KDE iso. Then burn the CD and boot with it. This is the fastest and simplest way to get a working Linux with the most recent kernel including AX25 capability.
If you download Mandriva One live version, the kernel is already 2.6.17-1 and you dont need to change it. To add AX25 applications and FPAC this live version must be installed on your hard disk by clicking the corresponding icone on your Desktop. You can then proceed by going to chapter 3. for AX25 libraries installation. However, in the next chapters you will have to choose the options of binary packages installation, for the live distro does not have any gcc compiler by default.
If you already know Linux a bit, and want a more complete system, you can install a full Mandriva Linux 2007 by yourself. In my experience this is one of the easiest Linux distro to install. It can be freely downloaded from a Mandriva mirror site. It is available as one DVD ISO image or three CD ISO (about 700 Mb each).
For Mandriva Linux 2007, download the ISO files and burn the CDs. Then boot your computer from CD #1. The installation is straightforward. You should select install options : development, network servers and network client and other options of your choice. Near the installation end you will be asked for root password and a user name. It will be useful to create another user account with name 'fpacuser' and password 'fpac'. We will see why later.
During the installation, there are two important things to complete: graphic configuration and network configuration. Be sure that graphics are well configured by performing the proposed test. Configure your network, with a fixed IP address for your Ethernet interface. Example 192.168.0.200. Create a user account for daily use.
After installation is complete
you will have a Linux Operating System with 2.6.17-5 kernel that is
perfectly well suited for AX25 although it does not included the very
last updates. It has all AX25 already enabled with
AX25 modules and drivers (ax25, rose, kiss, 6pack, netrom, etc..).
Thus you can now proceed by going
directly to chapter 3 for installing AX25 libraries.
However, you may want to look if
there is a new compiled kernel available on a Mandriva mirror sites.
Select an FTP mirror site from your country and browse back from
directory "/iso/2007.0/" into the directory named :
official/2007.0/i586/media/main/updates
Or you may want to build a custom kernel youself from a source package. Instructions for compiling a kernel are documented in the Linux Kernel HOWTO.
Open a console Terminal (Konsol window) on your Desktop. Switch to a root session, by entering command su and enter the root password you provided when you installed Mandriva Linux.
Kernel source may be found on a mirror site. Find a file like linux-2.6.18.5.tar.bz2 (avoid kernel 2.6.19 for the present time) :
http://kernel.org/pub/linux/v2.6/linux-2.6.18.5.tar.bz2
Click onto the above link to
download the file. Move this file into the /usr/src/
directory and go into this directory with cd /usr/src
Unpack the archive :
tar xvf linux-2.6.18.5.tar.bz2 this will create a linux-2.6.18.5 directory.
Create a symbolic link to linux
ln -s linux-2.6.17.8.5 linux and go into the linux directory
cd linux
Prepare to compile the kernel sources. For help consult the LINUX KERNEL HOWTO. Open a console terminal and switch to a root session by typing the command su root and enter the root password. Next, change directories, cd /usr/src/linux and type make xconfig.
You can also build a non graphical menu with command make menuconfig from the command line in a console terminal. A menu will pop-up and you will be able to select or de-select the different items, depending on the hardware present on your computer. Some items are selected by default.
Compiling the kernel plus all modules can take a lot of time on a slow computer. For example, it can take a few hours on a 500 MHz Pentium III. You will start the script for building a kernel configuration menu with the command make menuconfig or make xconfig. For Linux an FPAC server you will select timer frequency 250 Hz option into processor type and features menu. If you compile more modules than actually needed, Linux will find the necessary drivers and load them at boot time. To compile AX25 modules, you need to select the sub menu Networking and enable Amateur Radio Support. Enabled modules are indicated by a letter M (menuconfig) or by a dot (xconfig). To disable an item, type N (menuconfig) or click on the item box (xconfig). Select sub menu Amateur Radio Support and enable all the protocols. Select the AX25 Network Device Drivers menu and enable All items : serial port KISS driver, serial port 6PACK driver, BPQ Ethernet driver, Highspeed (DMA) SCC driver for AX.25, Z8530 SCC driver, all the BAYCOMs, YAM driver for AX.25.
Save the configuration by answering yes at the end of the config menu.
To compile the source of the new kernel, change directory cd /usr/src/linux and type make.
The compilation will take a while depending on the number of files to be compiled and the speed of your CPU. When compilation is done type the following commands :
make modules
make modules_install
make install
If everything went well you can now reboot your system. The choice for the new kernel will not appear in the boot menu under the label Linux (default) but rather something like 26185 ( if you compiled 2.6.18.5 kernel). If the system reboots correctly you will have now a Linux system with AX25 driver modules. You can verify the availability of AX25 modules by loading some of them:
modprobe ax25
modprobe rose
modprobe mkiss
Command lsmod will display the driver list.
When you are satisfied that the new kernel is working you can make it the default kernel. Using in the Mandrake Control Center, the system configuration tool.
For the next steps, use a character mode console. It is more convenient than using the Graphic User Interface (GUI). To open a graphic console simultaneously press the CONTROL, ALT and F1 keys. Log in as root and provide the root password. You can open up to 6 console sessions and switch between them by pressing ALT and Fn keys, with 'n' being between 1 and 6 (ALT+F1,..., ALT+F6). You may also return to graphic console by typing both ALT and F7 keys simultaneously.
We are now ready 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. To optimize performances, I have provided the source of libax25-0.0.11 package, with changes to allow compilation under kernel 2.6. It is always preferable to compile softwares on your own system.
Right click on the following link http://f6bvp.free.fr/logiciels/ax25/libax25-0.0.11src_f6bvp.tgz
and download the package into the directory of your choice.
Make directory :
mkdir /usr/local/src/ax25 and change directory
cd /usr/local/src/ax25 Move the archive file into this directory then unpack it :
tar xvfz libax25-0.0.11src_f6bvp.tgz Change directory
cd libax25-0.0.11 and type the following set of commands :
./configure
make
make install
This will compile and install binary files into the /usr/local/lib/ directory.
If you prefer to download compiled library files download http://f6bvp.free.fr/logiciels/ax25/libax25-0.0.11_i386_f6bvp.tgz
Move the file into a directory, for example, /usr/local/src/ax25 and change to that directory. Unpack the package :
tar xvfzP libax25-0.0.11_i386_f6bvp.tgz
This should unpack ax25 libraries into /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*
I modified some #include headers in order to aid the compilation of ax25tools-0.0.11 package with 2.6 kernel. You may choose to get the compiled tool binary files or the source files and compile them. It is always preferable to compile software for your system.
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.8src_f6bvp.tgz
Move the file to /usr/local/src/ax25/ then change to that directory.
Unpack the downloaded package
tar xvfz ax25-tools-0.0.8src_f6bvp.tgz change directories
cd ax25-tools-0.0.8 and type the following set of commands :
./configure
make
make install
The binary executable files will be placed in /usr/local/sbin
Optionally you can download the already compiled AX25TOOLS
http://f6bvp.free.fr/logiciels/ax25/ax25-tools-0.0.8_i386_f6bvp.tgz
Unpack the package:
tar xvfzP ax25-tools-0.0.8_i386_f6bvp.tgz
Note : flag P is upper case.
This will put some binary files into /usr/local/sbin and others in /usr/local/bin .
Unlike the previous two packages, AX25 applications have evolved recently. Steve VK5ASF has provided a dynamic IP capability. Although there is no official release at the present time, I have provided the binary and source files of modified ax25-0.0.6 packages. You may choose to use the compiled applications or get the source files and compile them. It is always preferable to compile software on your own system. However you can download compiled AX25 applications :
To get the source files archive, right click on the following link to download the package into the directory of your choice : http://f6bvp.free.fr/logiciels/ax25/ax25-apps-0.0.6src_f6bvp.tgz
Move the file into a directory, for example, /usr/local/src/ax25 then change to that directory.
Unpack the package :
tar xvfz ax25-apps.src_f6bvp.tgz – Change directory
cd ax25-apps-0.0.6 and type the following set of commands :
./configure
make
make install
The binary executable files will be placed in /usr/local/sbin
The second option is to download compiled AX25 applications :
http://f6bvp.free.fr/logiciels/ax25/ax25-apps-0.0.6_i386_f6bvp.tgz
Move this file into a directory, for example, /usr/local/src/ax25 then change to that directory.
Unpack the package :
tar xvfzP ax25-apps-0.0.6_i386_f6bvp.tgz
Note : flag P is upper case.
This will put some binary files into /usr/local/sbin and others in /usr/local/bin .
We now
need to do some housekeeping.
To run an FPAC node on a 2.6 Linux kernel we need to setup some directories and file rights. This should have been done automatically when the AX25 libraries, tools and application packages were installed, but this was not the case. I wrote the following script to facilitate the job.
You can cut and paste rc.init.script into a directory of your choice -
modify the file permissions chmod a+x rc.init.script and run it with the command ./rc.init.script
Or download the script from here into your chosen directory and use the same commands above.
#!/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/node.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"
#
Next we need to edit /etc/ax25/axports, a very important file for the declaration of AX25 port names. Replace F6ZZZ with your call sign.
Port 0 will be attached by kissattach to pseudo tty ptyq1. I used a speed of 115200 baud, but I am not sure it is used.
Paclen is the upper limit permitted in AX25. ROSE routing protocol has a three byte overhead, so applications that use ROSE declare a Paclen of less than 253. For example in the xfbb port.sys file I set paclen at 250.
It is critical that stations talking together use the same Maxframe parameter. AX25 protocol will allow up to 7 frames but, I am convinced that a small Maxframe is better, especially on radio links. For AXIP I suggest that we set Maxframes to 4.
In the following example of /etc/ax25/axports I commented-out the entries for ports. They could be used to connect dual ports TNCs or single port TNCs using the mkiss driver.
#
/etc/ax25/axports
#
# The format of this file is:
#
#
name callsign speed paclen maxframes description
#
0
F6ZZZ-8 115200 256 4 Linux
(AXIP)
#1 F6ZZZ-4 38400 256
2 Linux (VHF-1)
#2 F6ZZZ-5
38400 256 2 Linux (UHF-1)
#3
F6ZZZ-6 38400 256 2 Linux
(VHF-2)
#4 F6ZZZ-7 38400 256
2 Linux (UHF-2)
#
If you plan to use KPC9612 TNCs, you may download from here a sample initialization script for two dual radio ports KPC9612 (1200 & 9600 baud). The script should be run after rc.ax25 script presented in chapter 9.
When installing ax25-apps we have compiled ax25ipd. This application runs as a daemon in the background. The configuration file is /etc/ax25/ax25ipd.conf. It tells ax25ipd the name of the port where to get or put AX25 packet frames, the name of the port toward the Internet world, and the Internet Protocol address (IPv4) plus UDP port numbers of the remote stations. Given this, ax25ipd daemon routes frames in both inward and outward direction between UDP port 10093 and slave pseudo tty device ttyq1. Master pseudo tty device ptyq1 and slave pseudo tty ttyq1 are the two extremities of a virtual tunnel. When a character is written at one extremity it can be read at the other and vice versa. Remember that kissattach links ttyq1 device to AX25 port 0 of /etc/ax25/axports (ax0) in our example. Thus AX25 ax0 port is connected to Internet via this complicated chain. Ax25ipd does another important work. It performs an encapsulation of AX25 frames into Internet Protocol frames (AXIP). AX25 frames are embedded into standard IP frames that Internet can handle. On the other direction, IP frames arriving on UDP port 10093 are stripped by ax25ipd and finally AX25 frames are presented to ax0 device. When ax25ipd daemon is running, any local AX25 application can discuss transparently via Internet with another remote application by writing or reading on ax0 port without knowing the operations performed after that step.
Our sample ax25ipd.conf listing follows. It can also be downloaded from here.
#
/etc/ax25/ax25ipd.conf
#
ax25ipd configuration file for station f6zzz
#
#
Select axip transport. 'ip' is what you want for compatibility
#
with most other gates ...
#
socket
ip
socket
udp 10093
#
#
Set ax25ipd mode of operation. (digi or tnc)
#
mode
tnc
#
#
If you selected digi, you must define a callsign. If you selected
#
tnc mode, the call sign is currently optional, but this may change
#
in the future! (2 calls if using dual port kiss)
#
#mycall2
vk5xxx-5
#
#
In digi mode, you may use an alias. (2 for dual port)
#
#myalias2
svwdn2
#
#
Send an ident every 540 seconds ...
#
#beacon
after 540
#btext
ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
#
#
Serial port, or pipe connected to a kissattach in my case
#
master /dev/ptyq1 is attached to port ax0 ( 0 in
/etc/ax25/axports)
device
/dev/ttyq1
#
#
Set the device speed
#
speed
115200
#
#
loglevel 0 - no output
#
loglevel 1 - config info only
#
loglevel 2 - major events and errors
#
loglevel 3 - major events, errors, and AX25 frame trace
#
loglevel 4 - all events
#
log 0 for the moment, syslog not working yet ...
#
loglevel
2
#
#
If we are in digi mode, we might have a real tnc here, so use param
to
#
set the tnc parameters ...
#
#param
1 20
#
#
Broadcast Address definition. Any of the addresses listed will be
forwarded
#
to any of the routes flagged as broadcast capable routes.
#
broadcast
QST-0 NODES-0
#
#
ax.25 route definition, define as many as you need.
#
format is route (call/wildcard) (ip host at destination)
#
ssid of 0 routes all ssid's
#
#
route <destcall> <destaddr> [flags]
#
#
Valid flags are:
#
b - allow broadcasts to be transmitted via this route
#
d - this route is the default route
#
#route
vk2sut-0 44.136.8.68 b
route
f5mtz-0 f5mtz.no-ip.org udp 10093 b
route
kp4djt-0 24.129.134.206 udp 10093 b
route
f1hci-0 f1hci.org udp 10093 b
route
f5kbw-0 147.210.91.241 udp 10093 b
route
f6bvp-0 f6bvp.org udp 10093 b
#
#delay
f5mzn-0 35
#
As can be seen on the above route lines, with the present version, ax25ipd can handle permanent IP as well as dynamic IPs, thanks to Steve VK5ASF.
Jean-Paul F6FBB, the author of Linux FPAC, stopped its development with version 3.25, 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 is associated with Linux system glibc6 library compatible with 2.4 kernels. For our purpose we need to compile FPAC sources.
Compiling FPAC from sources and using recent GCC compiler and kernels gave errors. With the help of Jean-Paul F6FBB, I included changes to enable you to compile FPAC sources. The new release presented here is FPAC-3.27-2 version for 2.4 and 2.6 kernels.
Download FPAC327-2src.tar.gz from here.
Move the archive file into /usr/local/src/ax25 then cd /usr/local/src/ax25
then tar xvfz fpac327-2src.tar.gz
then cd fpac327.2
Apply the following patch to /usr/include/netax25/axlib.h
--- axlib.h 2007-01-26 19:34:51.000000000 +0100
+++ axlib.h 2007-01-26 20:12:22.000000000 +0100
@@ -26,8 +26,8 @@
#define _AXLIB_H
#ifndef AX25_KERNEL_H
-#include <netax25/ax25.h>
-#include <netrose/rose.h>
+#include <netax25/kernel_ax25.h>
+#include <netax25/kernel_rose.h>
#endif
#ifndef TRUE
If you prefer you can edit axlib.h by hand, as there are only two lines to add.
Enter the two lines preceded by a single + sign (without writting it !).
Then run the commands :
make
make
install
Binary executable files are installed into /usr/local/sbin
The FPAC configuration file is /etc/ax25/fpac.conf and FPAC HOWTO explains how to configure it.
The example fpac.conf configuration file is setup for a FPAC station connected via Internet.
#
#
Configuration file for FPAC node
#
#
This file is /etc/ax25/fpac.conf
#
#
Node Informations
#
L2call
= F6ZZZ-10
L3call
= F6ZZZ-11
Trcall
= F6ZZZ-14
DNIC
= 2080
Address
= 175522
Coverage
=
InetPort
= 10093
InetAddr
= 44.151.75.153
Password
= abcdefghi
City
= PARIS-17
locator
= JN18DV
UserPort
= *
DefPort
= 0
#
#
Additional commands
#
Command
BBs
= connect f6bvp-1 2080175502
#
BBs = /usr/local/fpac/bin/call_tcp f6bvp 1022
CLu
= connect f6bvp-3 2080175502
STat=
/bin/cat /var/ax25/fpac/fpacstat.dat
/var/ax25/fpac/fpacstat.day
Telnet
=
IPLinks
= /bin/netstat --ip
IPRoutes=
/bin/netstat -r
TRace
= connect f6bvp-14 2080175502
HCI
= connect f1hci-10 2080191601
End
#
Bbs command will connect the user to the BBS on the same machine
#
via rose level
#
idem for command CLu that will connect the user to local DxNet
server
#
STat command will display connexion statistics
#
Empty command telnet will do nothing
#
Sysop reserved commands
#
Sysop
DIsk
= /bin/df -k
SYSop
= /usr/local/fpac/bin/fpacshell
YGET
= /usr/local/fpac/bin/yapp -u /tmp/%1
YPUT
= /usr/local/fpac/bin/yapp -d /tmp/%1
RM
= /bin/rm /tmp/%1
LS
= ls -l /etc/ax25/%1
CAT
= sh -c cat /etc/ax25/%1
WEdit
= /usr/local/fpac/bin/wpedit %*
Hci
= telnet f1hci.org 3282
end
#
#
#
Port specific to an address
#
#
VHF user access port has address 175502
#
AddPort = VHF
#
Address = 175302
#
Port = 0
#
End
#
UHF user access port has address 175502
#AddPort
= UHF
#
Address = 175502
#
Port = 1
#End
#
Port UHF 9600 via carte SCC4 et T7F (experimental)
#AddPort
= UHF-9600
#
Address = 175402
#
Port = 4
#End
#
#
List of predifined users (to specify a non-default port)
#
#
USER command was used to send frames via rose network level.
#
This was when Kissnetd was used to create an internal network
#
in order to link applications together. But now, ax25d, xfbb,
#
or dxnet are able to listen to rose connexions, so may be directly
#
connected via rose0 port issuing a Level 3 command.
#
#User
= BBS
#
Path = F6KDS-1
#
port =
#End
#
#
Liste of alias for easy connexions to some address
#
#Alias
= F6BVP-3
#
Path = F6PTT-1,191501
#End
#Alias
= F6BVP-4
#
Path = F5KCK-1,178504
#End
#Alias
= F6BVP-4
#
Path = F6KDS-1,194501
#End
#
#
List of adjacent nodes
#
#
NoWP = 1 means no White Page
#
for FPAC DOS does not know how to handle white pages
Node
= DJT
path
= KP4DJT-9
DNIC
= 3100
Address
= 813626
Port
= 0
NoWP
= 0
End
Node
= XEO
path
= N4XEO-9
DNIC
= 3100
Address
= 772467
Port
= 0
NoWP
= 0
End
Node
= BVP
path
= F6BVP-11
DNIC
= 2080
Address
= 175502
Port
= 0
NoWp
= 0
End
Node
= HCI
path
= F1HCI-11
DNIC
= 2080
Address
= 191601
Port
= 0
NoWp
= 0
End
Node
= KBW
path
= F5KBW-9
DNIC
= 2080
Address
= 833501
Port
= 0
NoWp
= 0
End
#
#
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
3100
= DJT
DNIC
= 3100
772
= DJT
772
= XEO
DNIC
= 2080
*
= BVP
8
= HCI
8
= KBW
177202
= HCI
End
Note that more than one adjacent node may use the same route. In the case of link failure, this sets up an alternate route.
In case you prefer to use already
compiled FPAC 3.27, I provided a compiled archive for 2.6 kernels.
However, due to glibc version dependancies (/lib/libc.so.6 -->
libc-2.3.5.so) it will probably not run with 2.4
kernels having installed C library version different from 2.3.5.
Download http://f6bvp.free.fr/logiciels/rose-fpac/fpac327-2_i386.tgz
tar xvfjP fpac327-2_i386.tgz
Note : Flag P is upper case.
Executable files will be placed in the /usr/local/sbin/ directory.
It is not uncommon to have several home computer interconnected on a Home networking LAN. The LAN gets it's Internet connection via a router which provides the gateway. For FPAC it is not a good idea to use an address assigned by a DHCP. We need to use a fixed IP address for our Linux host. For the purpose of this document our LAN address is 192.168.0.0. and the gateway address is 192.168.0.1.
The following script should be placed in /etc/rc.d/rc.ax25 file and the file given the execute rights.
chmod a+x /etc/rc.d/rc.ax25
We do not have a network initialization script, so network interfacing and routing is not initialize. This script will do the job until we find a way to start network service in Mandriva Linux 2006 distro.without preempting AX25 network interfaces. IP address for eth0 (192.168.0.200) and gateway (192.168.0.1) were arbitrarily chosen and should be edited to fit your installion. Nodal ampr.org address (44.151.75.153) and callsign (F6ZZZ) must also be replaced by your own call/addresses.
The following shell script can be downloaded from here.
#!/bin/sh
# /etc/rc.d/rc.ax25
#
# This script will start AX25 FPAC switch application on a Linux 2.6 system
# at boot time with a sample callsign F6ZZZ.
# rc.eth0 : setup Ethernet eth0 device LAN address and initialize a route to Internet
# through a gateway ;
# rc.tnc : attach ax0 device to pseudo device ptyq1 ;
# rc.axip : install a tunnel between ptyq1 and ttyq1 pseudo tty devices ;
# run ax25ipd daemon that performs AX25 frame encapsulation in IP frames ;
# routes encapsulated packets from ax0 to Internet rose FPAC address;
# rc.fpac : start FPAC suite of programs and mheardd daemon;
# rc.beacon : start listen application on console 2 listening to port 0
# and install a beacon broadcast on ax0 port ;
#
echo 15 > /proc/sys/kernel/panic
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# The following is an example for eth0 fixed IP address
# not necessary if protocol DHCP is used
#
#/sbin/ifconfig eth0 192.168.0.200
#/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 eth0
#/sbin/ifconfig lo 127.0.0.1
#/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
#/sbin/route add default gw 192.168.0.1
#
# /etc/rc.d/rc.tnc
#
/usr/local/sbin/kissattach /dev/ptyq1 0 44.151.75.153
/bin/sleep 2
#
#/etc/rc.d/rc.axip
#
/bin/date > /var/log/ax25ipd.log
/usr/local/sbin/ax25ipd -l4 >> /var/log/ax25ipd.log 2>&1
#
#/etc/rc.d/rc.fpac
#
/bin/date > /var/log/fpac
/usr/local/sbin/fpac.sh
/usr/local/sbin/mheardd
#
#/etc/rc.d/rc.beacon
#
#/usr/local/bin/listen -char >> /dev/tty2 &
/usr/local/sbin/beacon -c F6ZZZ -d QST -t 10 0 'Nodal Rose FPAC F6ZZZ'
#
AX25 system can be started automatically at boot time if script /etc/rc.d/rc.ax25 is called by /etc/rc.d/rc.local. Here is a sample of /etc/rc.d/rc.local that will initialize AX25 and FPAC node each time he computer is started.
#!/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 30 >
/proc/sys/kernel/panic
#
#/etc/rc.d/rc.eth0
#
/etc/rc.d/rc.ax25
#
touch
/var/lock/subsys/local
#
If you prefer not to start AX25 automatically, edit rc.local and put a # at the beginning of the line with
/etc/rc.d/rc/ax25. Also remove the # on line with /etc/rc.d/rc.eth0.
I like to start a task without typing a lot of characters, so I made a shortcut to start AX25.
cd /usr/local/bin
ln -s /etc/rc.d/rc.ax25 ax25
Now type ax25 on a command line to start the FPAC application.
You can also make a shortcut with symbolic name fpac that will run fpacnode
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 function 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. Our FPAC 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.
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 perform the interface with FPAC.
Run the following script during AX25 setup. It will create NetRom devices that will be used by the following applications and start NetRom daemon.
#!/bin/sh
#
/etc/rc.d/rc.netrom
#
#echo "NETROM"
/sbin/modprobe netrom
#
killall -KILL netromd
ifconfig nr1
down
ifconfig nr0 down
ifconfig nr2 down
ifconfig nr3 down
#
creating NET/ROM devices (please edit your own ampr.org network
address)
/usr/local/sbin/nrattach -i 44.151.75.15 -m 256
netnod
/usr/local/sbin/nrattach -i 44.151.75.15 -m 256
netbbs
/usr/local/sbin/nrattach -i 44.151.75.15 -m 256 netclu
#
adjacent NET/ROM nodes creation via port 4=ax4 (ax25 over
ip)
/usr/local/sbin/nrparms -nodes k4gbb-14 + CIT03 120 6 4
k4gbb-14
/usr/local/sbin/nrparms -nodes kp4djt-14 + DJT14 120 6 4
kp4djt-14
/usr/local/sbin/nrparms -nodes vk2tv-14 + KEMPC
120 6 4 vk2tv-14
/usr/local/sbin/nrparms -nodes vk2vy-2
+ VYNODE 120 6 4 vk2vy-2
# start ax25d daemon to link NetRom and
FPAC node
/usr/local/sbin/ax25d
# Broadcast
NET/ROM
/usr/local/sbin/netromd -lid -t 10
# remove default
routes
/sbin/route del -net 44.0.0.0/8 nr0
/sbin/route del -net
44.0.0.0/8 nr1
/sbin/route del -net 44.0.0.0/8 nr2
/sbin/route
del -net 44.0.0.0/8 nr3
/sbin/route del -net 44.0.0.0 netmask
255.255.255.255 eth0
#
For deeper understanding see
nrattach and nrparms manuals.
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.
This is a partial listing from FBB BBS showing the port description file : /etc/ax25/port.sys file.
#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 20 1 rose0
250
2 6
10
15/10 XULWY Rose0
2
4 1 3
250 2 2
10 08/10 XULWY UHF
3 10 2
0
250 7 8
10 15/15 TUWY Telnet
4 4 1 netbbs
250
7 2
10
15/15 XULWY NetRom
#
The BBS is connected to fpac node via rose0 port.
There is a TNC linked to AX25 port 3 defined in /etc/ax25/axports file.
Telnet port 189C is decimal 6300. Command is : telnet <hostname> 6300 to enter the BBS.
Port netbbs will interface the BBS with NetRom.
By the way. Dealing with 2.6 kernels, F6FBB's xfbbd source file needs to be patched in order to be compiled without problem and run correctly.
You can download via FTP from
here a patch to apply to the BBS source file of xd704-jsrc.tgz
. The new version label is 704l.
You may also find the patch here
for downloading via http.
If your Linux box computer is running a DxNet cluster you can interface it with ROSE FPAC.
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-3
set/sys +F6BVP
set/ssid +3
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.
The following will give the necessary instructions to interface FPAC with a NetRom net.
Example of /etc/ax25/nrports file
#
/etc/ax25/nrports
#
# The format of this file is:
# name
callsign alias paclen description
#
netnod F6BVP-10
BVPNOD 235 F6BVP FPAC node
netbbs F6BVP-1 BVPBBS
235
F6BVP BBS
netclu F6BVP-3 BVPDX
235 F6BVP Dx Cluster
#
This is the content of your
/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 /etc/ax25ipd.conf to allow broadcast of NetRom
routes.
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:
and:
More general Linux information may be found in other Linux HOWTO documents.
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.
Global help about Linux and Ham
radio can be requested via the Linux Ham list. First check the
Linux-hams archive.
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.
Other useful links are :
Florida Amateur Digital Communication Association
The most recent version of this FPAC MINI HOWTO may be found here : http://rose.fpac.free.fr/MINI-HOWTO/
I would appreciate any error report or remarks about this documentation. Please contact Bernard F6BVP at the address mentioned in the title.
Happy networking !