Linux AX.25 Configuration


Linux is the only operating system in the world that offers built-in support for AX.25 and amateur radio networking. With it, you can build packet systems using straight AX.25, NetROM, Rose, and TCP/IP.

The software is new, though, and is changing with some speed. The best place to keep up is to subscribe to the Linux Hams Mailing List. You can subscribe by sending mail to majordomo@vger.kernel.org. (Note: the mailing list used to be hosted at vger.rutgers.edu, but moved to kernel.org in mid-2000.)

What Do I Need, and Where Do I Find It?

To use Linux AX.25 you need to (a) build a kernel with the AX.25 networking options turned on (or load the appropriate AX.25 modules), and (b) install the AX.25 utility programs.

These days, many Linux distributions include the modules necessary to support AX.25 hardware, and they may also include the AX.25 packages described below. If you have one of these distributions, you can simply install the AX.25 .deb or .rpm packages and install the appropriate modules at runtime.

If you want to roll your own, the files you need and the steps you'll take depend on the kernel and system library versions you have. Here's a table that describes what goes with what:

Kernel Library Kernel Patch AX.25 Utilities
< 2.0.0 < libc.so.4 Obsolete! Obsolete!
2.0.0-2.0.34 libc5 ax25-modules-14f ax25-utils-2.1.42a
2.0.35 - 2.0.3x libc5 None ax25-utils-2.1.42a
2.2.x libc6/glibc2.1 None libax25-0.0.7
ax25-apps-0.0.4
ax25-tools-0.0.5

The primary archive for the Linux AX25 tools, now maintained by Craig Small, VK2XLZ, is http://hams.sourceforge.net. (Note that this is a new address.) The "node" program you will need to provide a G8BPQ/NetROM like user interface, as well as some other useful stuff, is available at ftp.hes.iki.fi/pub/ham/linux/ax25.

Other Info

The AX25 "HOWTO," which can be found at metalab.unc.edu/LDP/HOWTO/AX25-HOWTO.html, is must reading for anyone working with Linux AX.25. The current version is a bit out of date, but most of the information is still useful.

I also keep a local copy of the AX.25-HOWTO for my own convenience, but it's not guaranteed to be the most recent version.

Configuration

Once you've installed the new kernel and ax25 programs, you need to edit a bunch of configuration files.

There's an AX.25 configuration utility called (surprise!) ax25-config. The latest version is available by ftp from ftp://1409.org/pub/ax25-config I haven't used this tool myself, and it's still in "alpha" status, but it appears to have a lot of potential.

I've put together a mini-tutorial on Configuring Linux AX.25 that walks through these files and includes samples from a working configuration, including information on interfacing the Linux version of the F6FBB Linux PBBS software. I recently installed the CLX DX Cluster software for Linux, and I hope to add what I learned from that experience Real Soon Now.

More Goodies

I try to keep a copy of the current software, as well as some additional tools I've written, for ftp from ftp.febo.com/pub/linux_ham.

My Hacking

I've made a few very small software contributions to the cause (some or all of these tools may be in a future release of the ax-utils package).

If you use the Ottawa PI card, you need a program called piconfig. The version that is included with ax-utils has an ugly status display. I've cleaned it up a bit in piconfig-ag9v.tgz, which you can download from ftp.febo.com/pub/linux_ham. I hope to do some more hacking on this program to improve its data validation, but that work isn't finished yet.

G4KLX wrote a little script (axdispparms) to interrogate the /proc directory and return the parameters for each active port. I made a couple of minor changes so the display shows a couple of critical timers in milliseconds rather than seconds. No big deal, really, but it's here if you want it.

The AX.25 software requires you to set port parameters such as paclen, window size, etc., by modifying files in the /proc filesystem. There are a couple of ways you can do this, but I wrote a couple of scripts called axgetparms and axsetparms that might make it easier.

These scripts, as well as the axdispparms script, are described in more detail here.