AX25 Linux

Martin Hebnes Pedersen edited this page Jul 2, 2017 · 8 revisions

The recommended method of packet operation with Pat under Linux is to use Linux's AX.25 kernel support with a TNC in KISS-mode.

Preparing your system

For a more in-depth article on how to configure AX.25 under Linux, see

Installing ax25-tools

Use your distributions package manager to install the ax25-tools package.

On Debian/Ubuntu/Mint/Raspbian run sudo apt-get install ax25-tools.

Configuring an AX.25 port

Each of the AX.25 applications (including Pat) read a particular configuration file to obtain the parameters for the various AX.25 ports on your Linux machine. For AX.25 ports the file that is read is the /etc/ax25/axports file.

To prepare a new AX.25 port on your system, add this line to your /etc/ax25/axports:

wl2k MYCALL 9600 255 7 Winlink

The fields you should pay attention to:

  • wl2k is the unique identifier of the port. This must be equal to the "axport" definition in Pat's config, default is wl2k.
  • MYCALL is the callsign of the physical interface to bind to. Set this to your callsign.
  • 9600 is the tty (serial port) baudrate of your TNC. Set this to your TNC's serial speed, or 0 if you are using a softmodem (direwolf/soundmodem).

Do not insert any blank lines in /etc/ax25/axports, otherwise kissattach may fail with a parse error.

Bring up the AX.25 interface (via systemd)

The deb-package comes with a set of scripts to help you manage the AX.25 interface. If you're not running a systemd capable system or did not install Pat via apt, you should skip this section.

Before you start, ensure that your TNC is in KISS mode.

# Install the systemd script
sudo /usr/share/pat/ax25/install-systemd-ax25-unit.bash

# Edit the device settings
sudo nano /etc/default/ax25

# Bring up the device
sudo systemctl start ax25

# Check status/error log
sudo systemctl status ax25 -l

# (optional) Enable the AX.25 interface on startup
sudo systemctl enable ax25

If everything went fine, you should be ready to use Pat with your newly configured axport. Have fun!

Psst: Execute sudo systemctl stop ax25 to bring down the interface.

Bring up the AX.25 interface (manual)

Before you start, ensure that your TNC is in KISS mode.

# Attach axport wl2k to the KISS TNC at /dev/ttyXX
sudo kissattach /dev/ttyXX wl2k

# Set kiss params (txdelay 300ms, txtail 10ms, persist 80 and half duplex) for port wl2k
sudo kissparms -p wl2k -t 300 -l 10 -s 12 -r 80 -f n

The AX.25 port should now be ready for use. When you're done, execute sudo killall kissattach to bring down the interface.

Monitoring AX.25 traffic

axlisten is an excellent AX.25 monitoring tool allowing you to debug/monitor sent and received AX.25 packets.

The application is part of the ax25-apps package:

sudo apt-get install ax25-apps # Use your distro's package manager
sudo axlisten -cart

axlisten will print any received and transmitted packets to the console, allowing you to verify that your AX.25 interface is properly configured.

Using Pat with an AX.25 interface

All Linux binary releases of Pat includes support for AX.25. If you're building Pat from source use the libax25 build tag.


For detailed documentation on the AX.25 config attributes, see

Ensure Pat is configured to use the axport defined in /etc/ax25/axports. Example configuration:

  "ax25": {
    "port": "wl2k",
    "beacon": {
      "every": 3600,
      "message": "Winlink P2P",
      "destination": "IDENT"

Pay extra attention to the "port" attribute, this must match the intended axport defined in /etc/ax25/axports.


The connect URL schema ax25:// is used for Linux AX.25 operation. For a complete overview of the URL syntax, see pat help connect.

Connect URL examples:

url description
ax25:///LA1B-10 Connect to the packet RMS node LA1B-10 using the axport defined in the configuration.
ax25:///LD5GU/LA1B-10 Connect via digipeater LD5GU.
ax25://thd72/LA1B-10 Connect to LA1B-10 using axport thd72.
ax25:///LA1B-10?freq=433725 Connect to LA1B-10 after QSY to 433.725MHz*.

*QSY (?freq) on connect requires a configured hamlib rig, see Rig Control for more details on this topic.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.