I’ve been playing around with Direwolf soundcard packet radio decoder on Linux. On Windows I use the packet terminal app that comes with the UZ7 soundcard modem, which you can connect to Direwolf’s AGW port over a network. The only comparable app on Linux that I’ve found seems to be LinPac.
Linpac connects over an ax25 port. To get LinPac to connect to Direwolf there’s a few steps to jump through.
Install Direwolf
Download the source from: https://home.comcast.net/~wb2osz/site/?/home/
(or after Oct 8 2015, https://github.com/wb2osz/direwolf)
Install libasound2-dev:
sudo apt-get install libasound2-dev
Compile Direwolf:
make
sudo make install
If you get this error when compiling Direwolf then you missed the libasound-dev step:
audio.c:80:28: fatal error: alsa/asoundlib.h: No such file or directory
#include <alsa/asoundlib.h>
Copy the supplied direwolf.conf file (from the downloaded source) to your home dir. To find out what input and output sound devices you have, run
aplay - l
and
arecord -l
You’ll see something like this:
**** List of CAPTURE Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC1200 Analog [ALC1200 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 2: ALC1200 Alt Analog [ALC1200 Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Get the device numbers for the soundcard you are using and edit direwolf.conf. For device 0 subdevice 0, edit this line and set 0,0:
ADEVICE plughw:0,0
Using a Rigblaster Plug and Play on Ubuntu 14.04, it was automatically recognized and showed up per the docs on /dev/ttyUSB0. Direwolf will use this for PTT on your radio. I uncommented this line to enable this:
PTT /dev/ttyUSB0 RTS
To give my current user access to ttyUSB0 (and avoid running with sudo) I had to add my user to the dialout group (per post here):
sudo usermod -a -G dialout $USER
Start up alsamixer and make sure the mic inputs and outputs are not muted (M), and the volume levels are around 3/4.
Install the ax25 network suport:
sudo apt-get install libax25 ax25-apps ax25-tools
To enable an ax25port, edit /etc/ax25/axports, I added a line like this:
1 KK6DCT-1 1200 255 2 2m packet
The first column is the port name. Start up direwolf with the -p option to enable a KISS port, you’ll see something like this (-t 0 t0 suppress the colors):
kev@kevs-ubuntu:~$ direwolf -t 0 -p
Dire Wolf version 1.2
Audio device for both receive and transmit: plughw:0,0 (channel 0)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate.
Ready to accept AGW client application 0 on port 8000 ...
Ready to accept KISS client application on port 8001 ...
Virtual KISS TNC is available on /dev/pts/0
WARNING - Dire Wolf will hang eventually if nothing is reading from it.
Created symlink /tmp/kisstnc -> /dev/pts/0
Note the /dev/pts/X value, and use this with a kissattach command to connect Direwolf to ax25:
sudo /usr/sbin/kissattach /dev/pts/0 1 44.56.4.118
The 1 value following /dev/pts/0 is the port number from the axports file.
Per the Direwolf PDF doc, if you see this error:
kissattach: Error setting line discipline: TIOCSETD: Device or resource busy
Are you sure you have enabled MKISS support in the kernel
or, if you made it a module, that the module is loaded?
Then try this instead:
sudo /usr/sbin/kissattach /dev/pts/ptmx 1 44.56.4.118
Install LinPac
Download the LinPac source. Build and install:
./configure
make
make install
The first time you startup LinPac it creates a LinPac dir in your home folder. Edit macro/init.mac in this folder and change the port value to match the port name from your axports change (1 in the above example):
;; Default port
port 1
Start LinPac with:
linpac -m
(I’m not sure what the -m option is for, I found this in a post online, but without it I get errors on startup about ax25 port not found).
Connect to a node with :c nodename
Done!