[ HOME ]    [ RADIO ]    [ COMPUTERS ]    [ FIELD STATION ]    [ ABOUT ]    [ MODERN MODE ]
=== WINLINK ON LINUX: SETTING UP PAT, ARDOP, AND RMS TRIMODE ACROSS DISTROS ===

Winlink on Linux: Setting Up Pat, ARDOP, and RMS Trimode

While much of the amateur radio emergency communication and messaging ecosystem historically revolves around Windows software like Winlink Express, the Linux community has built an exceptional, lightweight, and robust alternative stack.

By pairing Pat - a modern, multiplatform Go-based Winlink client with soundcard modems like ARDOP or Dire Wolf, you can build a bulletproof Winlink station running entirely on Debian, Ubuntu, or Arch Linux.


1. The Core Stack: Pat and Soundcard Modems

To run Winlink on Linux without relying on Windows virtual machines or Wine, your station relies on two primary components:

  • Pat (The Client): A feature-rich Winlink client written in Go. It operates via a local web interface (accessed through your web browser) or a command-line interface, managing your messages, outbox, and RMS gateway connections.
  • The Modem (ARDOP / VARA / Dire Wolf): Software soundcard TNCs that handle the audio tones sent to and from your transceiver (such as your Yaesu FTDX10 or mobile rig).

2. Installation Across Distributions

On Debian / Ubuntu

Debian and Ubuntu stable repositories often carry older package versions, but Pat and its dependencies can be easily installed via Go or pre-compiled binaries:

sudo apt update
sudo apt install golang git portaudio19-dev

You can then install Pat directly via Go:

go install github.com/la5nta/pat@latest

On Arch Linux

Arch users enjoy up-to-date packages directly from the Arch User Repository (AUR):

yay -S pat-winlink ardopc

3. Common Distro Pitfalls and Troubleshooting

A. Serial Port Permissions (“Permission Denied”)

When connecting your rig’s CAT control or a hardware USB-to-serial adapter for PTT, Linux kernel security restricts direct access to /dev/ttyUSB0 or /dev/ttyACM0 by default.

  • The Fix on Debian / Ubuntu: Add your user to the dialout group, then log out and back in:
    sudo usermod -aG dialout $USER
    
  • The Fix on Arch Linux: Arch uses the uucp group instead of dialout for serial devices:
    sudo usermod -aG uucp $USER
    

B. Configuring Pat as a Systemd Background Service

If you are running Pat on a dedicated shack computer or a headless server node, you want Pat running continuously in the background. You can create a native systemd user service (~/.config/systemd/user/pat.service):

[Unit]
Description=Pat Winlink Client Daemon
After=network.target

[Service]
ExecStart=/home/YOUR_USERNAME/go/bin/pat http
Restart=always

[Install]
WantedBy=default.target

Enable and start the service with:

systemctl --user enable --now pat.service

You can now access your full Winlink dashboard locally or via your local network at http://localhost:8080.


Conclusion

Running Winlink on Linux gives you total control over your station’s architecture, removing unnecessary bloatware and opening up seamless integration with your shack’s logging and automation workflows.




W4DXR Retro Terminal | Station Log & Technical Notebook