Whichever user will be used for Winlink, be it a regular user or one dedicated to Winlink, will need proper permissions / groups to access devices.
$ sudo usermod -a -G dialout,tty <user>
First let's install all the required packages:
$ sudo dnf install libax25 ax25-tools direwolf kernel-modules-extra pavucontrol
Pat is not currently available from the Fedora repos so install manually.
Download the appropriate one for your arch, i386 or amd64 then extract and copy the binary into /usr/local/bin.
Edit /etc/ax25/axports and add the following at the bottom:
#portname callsign speed paclen window description wl2k <callsign> 0 128 2 Pat Winlink
The speed is set to 0 because we're using a soundcard based modem instead of a hardware TNC.
Copy the direwolf.conf file from /usr/share/doc/direwolf/examples to the home directory of the user that will run direwolf. Most of the settings are self explanatory such as setting up your callsign. The most important part, other than your callsign, is how you will key the PTT of your radio. Setting this up PTT is out of scope for this howto but the direwolf documentation is quite nice.
$ pat configure
Running manually and testing
$ sudo modprobe ax25 $ direwolf -p
Take note of the ptt assigned, we'll need below:
$ kissattach <tty from direwolf> wl2k $ sudo kissparms -p wl2k -t 300 -l 50 -s 100 -r 25 -f n $ pat
At this point pat should be running a http server on http://localhost:8080