Updated 2 March 2016Charles S. Schuman, K4GBB
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.
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
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.
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.
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, .
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/.
mv /usr/lib/libax25* /usr/lib/ax25lib/
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.
ln -s /usr/local/etc/ax25/ /etc/ax25
ln -s /usr/local/var/ax25/ /var/ax25
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
Enter the following commands from the command line as root.
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
Set permissions for /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.
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.
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
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.
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)
[n4tpo-10 via 0 ]
NOCALL * * * * * * L
default * * * * * * - rmsgw /usr/local/bin/rmsgw rmsgw -P 0 %U
# End /etc/ax25/ax25d.conf
At the command line.. enter
/usr/local/sbin/kissattach /dev/ttyS0 0 22.214.171.124
/dev/ttyS0 is the first serial device (com1)
0 is the port name (from axports)
126.96.36.199 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 188.8.131.52 to 184.108.40.206.
/usr/local/sbin/kissparms -p 0 -r 128 -s 10 -t 250
-p is the Port name from axports,
-r is the Persistence value,
-t is the TxDelay
See the manual file for more info.
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.
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.
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.
Use (ax)listen to check the receiver monitoring process.
The screen will go blank and print received frames as the are
decoded by the TNC.
Use Ctl-C to close the listen screen.
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
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.
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
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
chmod 755 ax25-down
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."
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.
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.
Create a user account – with out a home directory.
adduser rmsgw –no-create-home
Install the packages needed for compiling the RMS Gate software.
apt-get install xutils-dev libxml2 mysql-client libmysqlclient15-dev libxml2-dev python-requests
apt-get install xml utilities
Download the RMS Gate .tar file into /usr/local/src/ax25 and unpack the
Change directory into the Directory that was created by the unpacking of the tar file.
wget -qt 3 http://k4gbb.no-ip.info/docs/scripts/rmsgw-2.4.0-181.tgz
tar xf rmsgw-2.4.0-181.tgz
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....
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.
Once you have installed the code and have your credentials you
are ready to configure the RMS Gate
Edit the following files:
Replace the example entries with your own information.
Test your Automatic Check In (ACI)
- Ax25 Must be running.
You should receive a status message saying that your Ax.25 port is up and running.
(see Troubleshooting the RMS Gate if you get an error message)
Go to the WL2K position website and check on your information and position. The position may not be 100% accurate, but should be close enough to supply locals with information about your service.
Check your Crontab file to be sure you are running rmsgw_aci at least twice a hour.
Changing the frequency or call-ssid will generate an additional tab. The old information will remain on the map for 24 hours and then disappear.
Run rmsgw to test the configuration files,
The Syntax is:
rmsgw -P <portname> <call>
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
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.
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.
[k4gbb-10 via 1 ]
NOCALL * * * * * * L
default * * * * * * - rmsgw /usr/local/bin/rmsgw rmsgw -l notice -P 0 %U
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.
Click HERE for the RMS Trouble Shooting Page.
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