Table of Contents

HOWTO: Use WhatsPac with the Linux Kernel AX.25 Stack

The Linux Kernel AX.25 stack works very well for RF connections with multiple TNCs, but it does not have native support for the RHP2 protocol used by the WhatsPac client. Up until such time as someone decides to add such support, the simplest way to connect is to enable localhost AXIP traffic and configure a simple “black box” BPQ instance (without node or BBS) to talk to your Linux node over that localhost connection. This AXIP does not use an external network connection at all; rather it provides an Inter Process communication mechanism by which the BPQ process can communicate with the Linux node.

This document will present the example of GB7WEM, a node in Wembley NW London, which uses so-configured BPQ instance to provide a WhatsPac bridge for G3KEY.

Step 1: Configure Localhost AXIP on Linux

There are a number of stages to adding localhost AXIP to your Linux node. First, we need to create a socat socket for the kissattach process to use:

socat pty,link=/dev/ttyq0,raw,echo=0 pty,link=/dev/ptyq0,raw,echo=0 &

Next we need to attach a kiss interface to the socat socket:

kissattach -l /dev/ptyq0 AXIP kissparms -c 1 -p AXIP

Now we need to configure and run the ax25ipd process to use the interface. Create /etc/ax25/ax25ipd.conf as follows:

socket udp 10098
mode tnc
mycall GB7WEM-9
device /dev/ttyq0
speed 19200
loglevel 2
route G3KEY 127.0.0.1 udp 10099

The GB7WEM-9 interface also needs to be added to /etc/ax25/axports:

# name  callsign        speed   paclen  window  description
AXIP    GB7WEM-9        19200   256     4       Local IP Link

and to /etc/ax25/ax25d.conf:

[GB7WEM-9 via *]
NOCALL   * * * * * *  L
default  * * * * * *  0         wemusr  /usr/sbin/uronode uronode

Now when we run the ax25ipd service, a network interface called GB7WEM-9 will be created which is only available on localhost udp port 10098, and tries to communicate with a peer AX.25 stack on localhost udp port 10099.

Step 2: Configure a BPQ WhatsPac Bridge

The BPQ Bridge configuration is a single file, bpq32.cfg:

SIMPLE
NODECALL=G3KEY
LOCATOR=IO91un
NODEMAPSERVER=127.0.0.1
CHATMAPSERVER=127.0.0.1
BBS=0
NODE=0
PASSWORD=<password>
AUTOSAVE=0
SAVEMH=0
PORT
  PORTNUM=1
  ID=Telnet Server
  DRIVER=TELNET
  CONFIG
  LOGGING=1
  DisconnectOnClose=0
  TCPPORT=8010
  HTTPPORT=8008
  LOGINPROMPT=user:
  PASSWORDPROMPT=password:
  LOCALECHO=YES
  MAXSESSIONS=10
  CTEXT=G3KEY BPQ32 WhatsPac Bridge\nEnter ? for list of commands\n\n
  USER=szymon,<password>,G3KEY,NODE,SYSOP
  LOCALNET=192.168.10.0/24
ENDPORT
PORT
 ID=AXIP Local
 DRIVER=BPQAXIP
 QUALITY=200
 MAXFRAME=4
 FRACK=7000
 RESPTIME=1000
 RETRIES=10
 PACLEN=120
 CONFIG
 UDP 10099
 MAP GB7WEM 127.0.0.1 UDP 10098
ENDPORT

This file does the following:

Now you just need to run the minimal BPQ bridge at the end of your AX.25 startup script.

Step 3: Configure WhatsPac

Finally you need to configure WhatsPac on your client browser to communicate with the BPQ Bridge. In my case the node and bridge run on a system called radio.local, so the configuration looks like this:

Notice that the connect script uses standard BPQ statements for the first hop (to connect to the bridge's RHP server), and then has the Linux Kernel AX.25 Stack as the second hop over localhost AXIP (to GB7WEM).