How to install RMS Gate.

Updated 2 March 2016

Charles S. Schuman, K4GBB
k4gbb1@gmail.com

Introduction

I service and administer Linux Packet Servers for several other Sysops. To keep up with changes and and speed up new installations I have streamlined the various processes with scripts. Here is my scripted process with explanations and hints.

Since I do this via remote access, SSh, this document is written from the command line view.

Setting up a Server is easy.

  1. Install the Operating System.
  2. New Linux Kernel?
  3. Building_the_AX.25_System
    File Structure
    Ax.25 Sources
    devfs and udev
  4. Configuring the Basic AX.25 Service
  5. Starting AX25 at Boot up
  6. Installing and Configuring a RMS Gate
  7. Troubleshooting The RMS Gate

1. Install the Operating System.

For Ubuntu or Kubuntu, (Server or Desktop) download the ISO files and burn the CD. For Debian the process is pretty much the same. Best results are achieved by burning at a low speed. Even when your burner is capable of higher speeds use X4.

I use the Ubuntiu LTS (Long Term Support) Server version. The Server version is the Desktop less the GUI. This lowers the FS size by about 200 Mb. I use the LTS version to make maintenance easier. The current Ubuntu 14.04 LTS is a 3.13.0 Kernel

Set your computer to boot from the CD and reboot. Choose the Install option and follow the prompts. During the installation you will be asked for a user name and password. If you are installing a Server version you want to include the SSH server. When installation is complete – reboot and you will be running under a Linux operating system.


2. A New Kernel?

The Generic Kernel is a one size fits all compromise made to work on MOST systems. It is customized for the distro.  I am using Ubuntu 14.04LTS straight out of the box. If you need to compile a custom kernel jump to New Kernel.


3. Building the Ax.25 Service

Ax.25 is a Network service. The Run Time Library routines and various modules are included in most Linux distros. However, you have to configure the service in order to make use of it. You will need to install the Support applications and Tools to make Packet Radio Programs operational.

Installing the Build Tools.

The first step is to install the tools that will allow us to compile the programs and utilities that we need.
Build support is the GC Compiler and the compiler support libraries.

We are going to execute all of the following as root.
You can download the Install Script and run it as root or execute commands one at a time.

First we need to update the package list and the upgrade the distribution.

apt-get update && apt-get dist-upgrade

Next get the Compiler Package and the development Libraries for Ax.25.

apt-get install build-essential libax25-dev libx11-dev zlib1g-dev libncurses5-dev autoconf autogen libtool

We now have the tools to compile our ax.25 sources.

Install the AX.25 Support.

The Ubuntu HAM Radio packages do not include the latest Ax.25 files.

The basic Ax.25 support packages are :

Ubuntu uses the “Stable” version which I have discovered is 10 month to a year behind the development curve. I use an “Unofficial” version that is close to the development process and somewhat customized. You may choose to use files from the "Official" Ax.25 archive, .

IMPORTANT NOTE

    If you use the Unofficial source, check to be sure that there are no libax25 files installed in the /usr/lib/ directory.
    If they are - move them! The new RT Lib files will be placed in /usr/local/lib/.

mkdir /usr/lib/ax25lib
mv /usr/lib/libax25* /usr/lib/ax25lib/

File structure

The Debian policy for Ax.25 file locations would have ax25 binary files placed in /usr/sbin/ or bin, configuration files in /etc/ax25, and data files in /var/ax25.

I find that these file locations are already heavily populated and finding the needed file in the crowded directory is sometimes difficult. Most developers agree and have moved the binary files to /usr/local/sbin, the configureation files to /usr/local/etc/ax25 and the data files to /usr/local/var/ax25.

To make sure the two file structures work I placed everything in the /usr/local/..... directories and symlinked the Debian locations.

/etc/ax25/ >/usr/local/etc/ax25/

ln -s /usr/local/etc/ax25/ /etc/ax25

/var/ax25/ >/usr/local/var/ax25/

ln -s /usr/local/var/ax25/ /var/ax25

Get the AX.25 source files.

We will be working out of the /usr/local/src/ax25/ directory.

As root execute the following commands via the command line.

mkdir /usr/local/src/ax25 && cd /usr/local/src/ax25

wget https://github.com/ve7fet/linuxax25/archive/master.zip
unzip master.zip

Compile & Install Ax.25 Runtime Lib files.

Enter the following commands from the command line as root.

cd /usr/local/src/ax25/linuxax25-master/libax25/
./autogen.sh
./configure
make
make install

Enable the New RT Lib files so that the ax25 apps and ax25 tools may use the new library functions.

echo "/usr/local/lib" >> /etc/ld.so.conf && /sbin/ldconfig

Compile Ax25 Apps

cd /usr/local/src/ax25/linuxax25-master/ax25apps/
./autogen.sh
./configure
make
make install

Compile Ax25-tools.

cd /usr/local/src/ax25/linuxax25-master/ax25tools/
./autogen.sh
./configure
make
make install

Prepare Files System.

Set permissions for /usr/local/sbin/.

cd /usr/local/sbin
chmod 2755 *

The AX.25 modules (drivers) ax25, rose, mkiss, 6pack, netrom, etc .. are already installed, but need to be loaded into RAM.

modprobe ax25
modprobe rose
modprobe mkiss

You can preload the ax25, rose, and mkiss modules by adding them to the /etc/modules file.

The Command lsmod will display the list of modules modules that are loaded.

Ax25 is now installed.

4. Configuring the Ax.25 Service.

A word about devfs and udev

There were two system device managers in use.... devfs and udev. Udev is also referred to as Unix98. Devfs is the older of the two and in current distros has been replaced by udev. The two are not compatible and Ax.25 code has been updated to use Unix98. The source code I have referenced above supports Unix98.

If you don't have a copy of the AX25 How to.. this would be a good time to make a bookmark to Terry Dawson's Ax25-HowTo

I reference it so much that I have worn out three hard copies of this document.
I also use F6FBB, Bernard Pidoux's, How to http://rose.fpac.free.fr/MINI-HOWTO/
This site has a lot of good info for Mandrovia Systems and Configurations for FPAC & FBB BBS.

axports

Let's start with the axports file. This is the base for the configuration of all of the ax.25 devices.

Edit the axports file located in /etc/ax25/

Here is an example:

#Port Call Baud PacLen Window Description
0 K4GBB-15 19200 256 7 Radio - 145.030 MHz
1 K4GBB-13 19200 256 7 Radio - 145.630 MHz
# (End of axports file)

Note:

  1. Use Numbers for Port names. You can give them names like radio or UHF1.
    That means more key strokes when you need to specify a Port name.
  2. The Call-ssid does not have a valid HAM Call. The ssid should be in the range of 0 - 15. This is a default and OK for ports that will never send over a radio link.
  3. The PacLen and the Window or MaxFrame values are set at max. All of these values are Defaults, including the baud rate, and are usually modified by the using Applications.
  4. DO NOT leave any Blank Lines

ax25d.conf

Create or Edit /etc/ax25/ax25d.conf..
It should look something like this.

# /etc/ax25/ax25d.conf
[n4tpo-10 via 0 ]
NOCALL * * * * * * L
default * * * * * * - rmsgw /usr/local/bin/rmsgw rmsgw -P 0 %U
# End /etc/ax25/ax25d.conf

Create a port

  1. The first step is is to attach the Port hardware to an ax(x) socket using the KISS protocol.
    For this example I am using a TNC2 type TNC, set in the Kiss mode and attached to the first Serial Port. For other TNC configurations see Configuring an Ax.25 Port

    At the command line.. enter

    /usr/local/sbin/kissattach /dev/ttyS0 0 44.128.1.10

    Where:
    /dev/ttyS0 is the first serial device (com1)
    0 is the port name (from axports)
    44.128.1.10 is an IP Address.

    The RMS Gate software requires EACH ax25 device to have a unique ip address. Do not use the address of your server or the loop back address (127.0.0.1). It is safe to use Amprnet addresses in the range of 44.128.100.0 to 44.128.0.0.

  2. If it does not not return an error message – The next step is to set the Kiss parameters

    /usr/local/sbin/kissparms -p 0 -r 128 -s 10 -t 250

    Where :
    -p is the Port name from axports,
    -r is the Persistence value,
    -t is the TxDelay

    See the manual file for more info.

    man kissparms

Testing Ax Ports

Stop a minute and test your device!

Be Sure that your TNC is in the KISS mode.

NOTE: The ax25-tools package from my source still uses the old file names for call and listen.
They are the same as axcall and axlisten.

Calibrate

The Calibrate utility is from the FPAC package.
You can use it to see if you have control of the TNC's PTT.

Download calibrate and place it in /usr/local/sbin/.

For those installing on a 64 bit system - download calibrate.64 and rename the file calibrate.

The command is calibrate <portname>

Use the portname from the axports file.

calibrate 0

This will send a full frame (256 chars) of alternating 1s & 0s to port 0.
Press Return to stop the test. The PTT will stay active until the TNC's transmit buffer is emptied.
If you get a error message about frame length being too long - check your axports file. The value for PacLen must be 256 and MaxFrames 7.

Listen

Use (ax)listen to check the receiver monitoring process.

listen -cart

The screen will go blank and print received frames as the are decoded by the TNC.
Use Ctl-C to close the listen screen.

Call

The (ax)call command can be used to check the port's ability to connect and pass data. Call is a simple Term program.
The syntax is call <port> <call>v<path>

call 0 n1pdq v kp4djt-8

5. Starting Ax.25 at boot up

If everything is good you will need a script to start the ax.25 service at boot up.

It has four options [ start | stop | restart | status ]
The ax25 script points to /etc/ax25/ax25-up to start and /etc/ax25/ax25-down to stop the ax25 service.

Start by placing the script in /etc/init.d/ and making it executable.

cd /etc/init.d
wget http://k4gbb.no-ip.info/docs/scripts/ax25
chmod 755 /etc/init.d/ax25

Update the start-up links with the command

update-rc.d ax25 defaults 95 5

Here is a start up script... ax25-up
Download into /etc/ax25/ and make it executable

cd /etc/ax25
wget http://k4gbb.no-ip.info/docs/scripts/ax25-up
chmod 755 ax25-up

and another for shutdown... ax25-down

Shut down is as important as start up when you need to restart.
Download into /etc/ax25/ and make it executable

cd /etc/ax25
wget http://k4gbb.no-ip.info/docs/scripts/ax25-down
chmod 755 ax25-down


Installing and Configuring a RMS Gate

Authorization

As of January 25, 2013, all sysops must obtain an authorization for gateway connections. If you previously operated a gateway and your station has been on-line less than 24/7/365 at any time in the past, you need to ask for an authorization. To request gateway station authorization contact Steve Waterman, K4CJX."

RMS Credentials

If you are setting up a New station you will need need a set of credentials. These credentials will allow to you to access the CMS.
The credentials consist of call and password.
Go to http://www.winlink.org/ContactByEmail and contact the person under request a Password for RMS Packet software.




Installing the Linux RMS Gate

The INSTALLING file in the RMS package is pretty straight forward. Brian & Hans have done an excellent job on the install process and documentation.

The Installation instructions are in a file named INSTALLING.

Read through the instructions before going any farther.

Set-up

  1. Create a user account – with out a home directory.

    adduser rmsgw –no-create-home

  2. Install the packages needed for compiling the RMS Gate software.

    apt-get install xutils-dev libxml2 mysql-client libmysqlclient15-dev libxml2-dev python-requests

    Optional

    apt-get install xml utilities

  3. Download the RMS Gate .tar file into /usr/local/src/ax25 and unpack the file.
    Change directory into the Directory that was created by the unpacking of the tar file.

    cd /usr/local/src/ax25/
    wget -qt 3 http://k4gbb.no-ip.info/docs/scripts/rmsgw-2.4.0-181.tgz
    tar xf rmsgw-2.4.0-181.tgz
    cd rmsgw-2.4.0-181/

Compiling and Install the RMS Package

make

When compiling the Gate code you may encounter a problem with no stack smashing (Stack Protection) support being missing. Some kernels are created with stack protection enabled and some with stack protection disabled. The package is distributed with the libwl2k.a for enabled stack protection. You will need to go to the Linux-RMS web site and download the version for no stack protection. The libwl2k.a file for 64 bit kernels is also available at the same source....

http://groups.yahoo.com/group/LinuxRMS/files/Software/libwl2k/.

Another stumbling stone is the lack of makedepend.
Debian (etch) has included it in the xutils-dev package.

Recently Ubuntu has also moved makedepend to the xutils-dev package.

Configure the RMS Gate.

make install

Once you have installed the code and have your credentials you are ready to configure the RMS Gate
Edit the following files:
/etc/rmsgw/gateway.conf
/etc/rmsgw/channels.xml
/etc/rmsgw/banner

Replace the example entries with your own information.

Testing the Gate

Test your Automatic Check In (ACI)
- Ax25 Must be running.

rmsgw_aci.


Run rmsgw to test the configuration files,

The Syntax is:
rmsgw -P <portname> <call>

Example:

rmsgw -P 1 k4gbb

That is a Uppercase P.

If your configuration is correct you will connect to the CMS and receive a > prompt. You will not be able to send anything. The line end characters of Linux and Windows are different and only work with the proper terminal setup. Disconnect with a Ctl-C.

If you have setup the logging properly you should see entries in /var/log/rms




Running RMS Gate

Ax.25 must be initialized so that at least one ax socket is available.

The RMS Gate program only runs when called and closes when a User Disconnects.

ax25d

The ax25d program listens for a connect request and when it detects the request causes rmsgw to run.
Ax25d is setup by the /etc/ax25/ax25d.conf file and is usually started as part of the start up of the ax25 service.

ax25d.conf

[k4gbb-10 via 1 ]
NOCALL * * * * * * L
default * * * * * * - rmsgw /usr/local/bin/rmsgw rmsgw -l notice -P 0 %U
#
# (End)




On Air Test

Now connect to the Linux RMS gate via RF. If your ax25d.conf is configured properly you should get a connect and be able to send commands and messages to the CMS.




Trouble Shooting RMS

Click HERE for the RMS Trouble Shooting Page.




Sysop Tools

There are a set of tools to allow the sysop to update the Sysop Info DataBase at WinLink.

Click HERE for the Sysop Tools Page