Foundations: the Linux kernel and the AX.25 stack
Linux is the only operating system in the world with native AX.25 support directly in the kernel. AX.25, NET/ROM, and ROSE are all supported directly in the Linux kernel, which means a Linux system can act as a full packet node without relying on third-party software for the network layer.
On top of the kernel sit three fundamental packages (operating in user space), maintained by the community (active VE7FET fork on GitHub):
- libax25 — shared libraries for AX.25 applications
- ax25tools — configuration tools (kissattach, kissparms, axparms, mheardd…)
- ax25apps — user applications (call, listen, beacon, PMS…)
TNC Software (Modem/Soundcard)
Beyond the classic serial TNC, it is now far more convenient to use software equivalents that directly use the PC’s audio interfaces.
Dire Wolf (wb2osz)
The current reference for those who want a software TNC. It is an AX.25 “soundcard” modem/TNC and APRS encoder/decoder. It can be used independently to monitor APRS traffic, as a digipeater, APRStt gateway, or Internet Gateway (IGate). It supports 300, 1200, and 9600 bps, can interface with SDRs, and acts as a virtual TNC for dozens of external applications via KISS or AGWPE. It runs on Linux, Windows, and macOS, and is the most common choice on Raspberry Pi systems.
Note that 9600 baud operation is possible if the radio supports this mode.
Soundmodem (Thomas Sailer, HB9JNX)
A software TNC that connects directly to the Linux kernel AX.25 stack. Older than Dire Wolf, but still used in some contexts, especially for HF configurations at 300 bps (where it requires careful attention to tone frequencies due to a known bug).
TNC ↔ Kernel attachment
To operate with the Linux networking stack, the TNC must be logically connected to the kernel. For this purpose, the following tools are available:
kissattach
The classic tool (part of ax25tools) used to connect a KISS-mode TNC to a Linux AX.25 network interface (e.g. ax0). It creates a network interface that the system treats like any other network card. It works well but requires AX.25 kernel modules to be loaded.
tncattach
Removes the need for specific Linux kernel AX.25 packages and eliminates the overhead introduced by kissattach when Ethernet framing is not required. It also introduces the ability to send Ethernet frames over any TNC (including Dire Wolf), making full TCP/IP over amateur radio easier than ever. It is the modern alternative to kissattach, especially useful on distributions where kernel AX.25 support is reduced.
mkiss
Utility for multi-port TNCs (e.g. dual-channel KPC-9612): it splits the serial connection into multiple PTYs, one per port, each then attached via kissattach.
Terminal Client / Packet Chat
For those who want to operate packet in a traditional way:
LinPac
A console-oriented program for AX.25 keyboard-to-keyboard chat and PBBS, modular, using the Linux AX.25 stack. It includes support for multiple concurrent connected sessions, a screen for unconnected UI messages, and an automatic packet messaging client. A historic Linux packet client, now developed in version 2.0.
AX25_POPT (DerHirschi)
A modern, cross-platform packet terminal for AX.25. It supports flexible connections such as KISS over TCP/Serial, AXIP over UDP, and native Linux AX.25 devices. More recent than LinPac, it includes support for BBS, YAPP file transfer, and APRS.
call
A command-line client included in ax25apps. It allows direct AX.25 connections from the terminal, useful for testing and minimal operation.
listen
Also part of ax25apps: captures and displays all received AX.25 frames on the interface, the command-line equivalent of a TNC hardware MON ON mode.
APRS Clients
The most common use of packet radio today remains APRS (Automatic Packet Reporting System)
Xastir
A program for receiving and plotting APRS position packets. It supports 125 map formats, multiple TNC types and weather stations, Festival speech synthesis, AX.25 networks (Soundmodem/Baycom/SCC), and seven languages. It is the reference graphical APRS client on Linux, mature and highly configurable.
YAAC (Yet Another APRS Client)
A Java-based cross-platform APRS client. Modern interface, supports connection to Dire Wolf via KISS TCP, OpenStreetMap mapping, and APRS messaging. A good alternative to Xastir for those who prefer a more modern interface.
InfoBBS and Nodes
Packet radio BBS systems are now less useful than in the past, but some colleagues (myself included) still keep them active.
F6FBB (FBB)
The most widely used packet BBS in the Linux world. Debian includes the full FBB BBS software. FBB is somewhat unusual in configuration, as its startup script generates configuration files on first run. It supports automatic BBS forwarding, personal messages, and bulletins, and is compatible with the Linux AX.25 kernel stack.
LinBPQ / BPQ32
Linux port of the popular BPQ32 by John Wiseman (G8BPQ). It is a full AX.25 node/switch that can handle multiple ports simultaneously (KISS, AXIP, Winlink, VARA, ARDOP, Telnet) and integrate BBS, digipeater, RMS gateway, and DX cluster. Widely used for public nodes and Winlink gateways on Raspberry Pi systems.
Uronode
A front-end for AX.25/NET/ROM/ROSE nodes, designed as a modern replacement for the classic node. It integrates with the Linux stack and BPQ32, and presents the user with an interactive prompt for navigating the packet network (connect, nodes, links, routes…).
Routing and Tunneling
This is a somewhat borderline area with respect to pure radio operation, but the technology also makes it possible to use the Internet as a transport medium.
ax25ipd
Implements AXIP, a protocol for routing AX.25 frames over the Internet. It is not the same as Telnet: it is mainly used as a long-distance backbone link between AX.25 nodes, tunneling packet traffic over IP between geographically distant stations.
axudp / ax25ip
Variants of AX.25 tunneling over UDP/IP, used for backbone links between nodes when TCP latency is undesirable.
In summary
Linux provides a complete and modular ecosystem: every component is interchangeable, allowing the construction of anything from a simple packet client to a full multi-function public node with Winlink gateway, APRS digipeater, and BBS, even on low-cost hardware such as a Raspberry Pi.