After multiple failed attempts to trigger Quisk PTT via CAT on a virtual serial port, I discovered later Direwolf versions include support for Hamlib. This itself was also not straightforward as by default, Direwolf is not compiled with Hamlib support.
Firstly, we need to ensure Hamlib development packages are installed (or alternatively, compile from source ourselves). I took the lazy option, so under Fedora:-
sudo dnf install hamlib-c++-devel
I then recompiled Direwolf to include Hamlib support:-
[snetting@rhlap direwolf]$ make clean
rm -f direwolf decode_aprs text2tt tt2text ll2utm utm2ll aclients atest log2gpx gen_packets ttcalc kissutil cm108 gen_fff tune.h fsk_fast_filter.h *.o *.a direwolf.desktop
[snetting@rhlap direwolf]$ make
... output snipped, but watch for the following:
\t>\tThis does NOT include support for gpsd.
\t>\tThis includes support for hamlib. <<<---- HAMLIB!
\t>\tThis does NOT include support for CM108/CM119 PTT.
[snetting@rhlap direwolf]$ sudo make install
Then, direwolf.conf is updated to configure basic settings, the only setting of specific note is the PTT:-
PTT RIG 2 127.0.0.1:4532
This matches the configuration in Quisk, Config -> Radio -> IP for Hamlib, Port for Hamlib
We then start Direwolf with debug options (-dhk) and a virtual KISS TNC port specified (-p), run kissattach plus modify kiss parameters to avoid a current bug in Direwolf (related to incorrect KISS channels being used):-
direwolf -c ./direwolf.conf -dhk -p &
sudo kissattach /dev/pts/6 dw0
sudo kissparms -c 1 -p dw0
In the lines above, /dev/pts/6 needs to be set to the pseudotty created by the Direwolf (check the output). Where dw0 is mentioned you need to substitute the name of the port defined in /etc/ax25/axports.
Standard Linux ax25 commands should then function normally:-
[snetting@rhlap ~]$ axcall dw0 m0spn
GW4PTS AX.25 Connect v1.11
Trying...
<<< Data frame from KISS client application, port 0, total length = 18
000: c0 00 9a 60 a6 a0 9c 40 e0 9e 90 66 a6 a0 9c 61 ...`...@...f...a
010: 3f c0 ?.
[0L] OH3SPN>M0SPN:(SABM cmd, p=1)