Amateur radio wiki National Amateur Radio Alliance

Member sign in

Sign in with your NARA account to continue on this page.

Forgot your password?
Not a member yet? Join today.

Linux and BSD software

Free, scriptable, and the natural home of Raspberry Pi stations.

32 pages in this section across 3 sub-sections

Linux runs most of the important amateur software natively, and it is what nearly every embedded and remote station runs. FreeBSD covers a smaller but real subset through its ports tree.

Distributions and ready-made images

  • Any mainstream distribution works; Debian and Ubuntu have the largest packaged selection.
  • Raspberry Pi OS — the standard for a portable digital-modes box, an
  • APRS igate, a remote receiver or an AllStar node.

  • DragonOS — Ubuntu preloaded with SDR and signal-analysis tools.
  • HamPi and Build-a-Pi — Raspberry Pi images with the ham stack already installed.

Logging

  • CQRLOG — the mature Linux general logger (MySQL/MariaDB backed, LoTW, cluster).
  • Klog — Qt, cross-platform, straightforward.
  • TLF — terminal contest logger for CW, SSB and digital, in the N1MM tradition.
  • Xlog, HAMRS — lighter alternatives.

Digital modes

  • WSJT-X, JTDX, fldigi, JS8Call, QSSTV — all packaged in most distributions.
  • Pat — the Go-based Winlink client; pairs with
  • ARDOP, Direwolf packet, or VARA under Wine.

  • Direwolf — the software TNC. It replaces a hardware TNC for packet, APRS and igates, and it
  • is the reason a $40 Pi can run a full APRS station.

Programming and control

  • CHIRP — packaged, or run from a Python virtual environment for the newest builds.
  • Hamlib / rigctld — native home of the project; nearly everything speaks to it.
  • Grig, flrig — graphical rig control front ends.

SDR

  • GQRX, SDR++, SDRangel, CubicSDR, welle.io (DAB).
  • GNU Radio and gr-satellites — the reference toolkit for building your own receivers.
  • rtl_433, dump1090, multimon-ng — decoding utilities worth knowing.

FreeBSD and OpenBSD

The ports tree carries hamlib, fldigi, wsjtx, gnuradio, gqrx, direwolf, xlog and chirp; audio goes through OSS rather than ALSA/PulseAudio, so set dev.pcm defaults and use the device names your program expects. It is a good fit for a headless igate or remote receiver, and a poor one if you need a specific GUI title that only ships as a Debian package.

Practical notes

  • Serial permissions. Add yourself to the dialout group (uucp on BSD) or every program will
  • report "cannot open /dev/ttyUSB0".

  • Audio. PipeWire and PulseAudio both work; pick the radio's USB codec explicitly in each
  • program rather than "default", and set 48 kHz.

  • Time. Install chrony and confirm it is actually syncing before blaming decodes. On a Pi
  • without a network, add a GPS or an RTC module.

  • Flatpak builds of WSJT-X are sandboxed — grant device and audio access or use the distribution
  • package.

Last updated Aug 27, 2026. Page history · Sign in to edit