Anyone got a dual VARA FM / direwolf packet gateway Linux?

I am trying to move from RMS Packet + VARA FM on Windows to a Linux Mint v21.3 installation with direwolf and VARA FM under Wine. Naturally, the only thing that Linux talks to reliably is a digirig sound interface, as my other DRA-50’s have issues with PTT and VARA. I am able to individually PTT and send sound thru direwolf and VARA FM.

However, I am at an impasse with duplicating my dual-mode Windows 10 VHF Winlink gateway. In Windows, I just fire up Soundmodem, fire up RMS Packet to connect to the soundmodem KISS port 8100; RMS Packet also launches VARA FM internally and connects to its control port 8300. Both work fine and use the singular sound card.

In linux, it seems that each application stupidly gets an exclusive lock on the sound device, causing all other connections to the USB device to fail. This is apparently a function of ALSA, the low-level sound system of linux. I’ve been reading up on Pipewire and Pulseaudio which are like servers that sit on top of ALSA, but still have not found how to use these in my VARA / direwolf configs.

Anyone able to get multiple applications to use a single digirig in linux at the same time? One would think this is a completely obvious use case. I find it hard to believe that all these people only use one comms app at a time on a multi-tasking OS like linux.

You might try using the ALSA hack I described in another post. I think, but I have not verified, that both applications should be able to simultaneously use the digirig-tx and digirig-rx interfaces defined in the ALSA configuration example in that post.

Right now I am experimenting running JS8Call and FLDIGI simultaneously on the same Raspberry Pi through the same Digirig. It works so long as I open JS8Call first. I have no idea why it works. I’m using it on VHF without CAT control. I have tested this on Pi 2 (it’s struggling) and 3B+.

Although I’m not currently using this with FLRIG, that is one way to run multiple programs simultaneously without port errors. Of course all of the programs would need to be compatible with FLRIG.

So, it’s possible. But the conditions required to make it work are beyond me. All I know is that right now it’s working with the two programs I mentioned, so long as I open them in the right order.

Good luck and please let us know if you find out the solution.

Thanks @AG7GN your solution shows promise. At least with that I can now share the digirig with direwolf and fldigi (though I don’t know why I’d do that at the moment).

So performing your hack, I can set:

ADEVICE digirig-rx digirig-tx

in direwolf.conf.

However, the problem now lies with Wine and VARA FM. Wine only sees the hardware input and output selections, and does not distinguish between the ALSA PCM interfaces. Any program uses digirig-tx or rx, and the hardware resource is “Busy”. Native programs can apparently simultaneously select digirig-tx/rx but Wine apps cannot.

I did see that one can use winetricks to do something like:

winetricks sound=pulse

to set the dropdown in VARA FM for selecting Pulseaudio, but that only allows me to use PulseAudio on the default channel (the built-in mic/speaker). Now I need to figure if I can bind pulse to the USB PnP Sound Device instead of system default.

To get a complete list of what winetricks can set sound to do:

winetricks settings list | grep sound

@AD6DM I don’t use wine at all, but is winetricks sound=alsa an option? I guess I assume that’s the original option you chose, but I thought I’d ask anyway.

If you ran wine tricks sound=alsa and still only see the ALSA hardware devices and not the plugs (digirig-rx and digirig-tx) available in VARA, then I’m out of ideas.

That’s what it normally is. Doesn’t work for fine-tuning PCM selections in wine. Trying to figure out how to make pulse default to USB sound.

Something to try before giving up on ALSA:

From the Wine HQ web page:

ALSA

Wine does its best to probe your system for information about the available devices, but ALSA’s device enumeration does not work very well. Wine will detect your hardware devices, but it may not be able to find software devices you have configured. To tell Wine about these devices, please set the following registry keys:

HKCU\Software\Wine\Drivers\winealsa.drv\ALSAOutputDevices #Multi-string value containing output interface names 
HKCU\Software\Wine\Drivers\winealsa.drv\ALSAInputDevices #Multi-string value containing input interface names

You can specify them as defaults in the Audio tab in winecfg.

1 Like

Great success! You are the man, @AG7GN! I just applied the ALSA registry edits and tested both apps connected at the same time pinging to my primary QTH gateway station. It WORKS!

In review, here’s what I did:

  1. I did your ALSA hack.
  2. Configured direwolf.conf to have the line ADEVICE digirig-rx digirig-tx
  3. Applied ALSA device registry edits per your other reply.
  4. Selected the new rx and tx devices in VARA FM running in wine.
  5. Loaded direwolf and VARA FM, they didn’t complain, then loaded linbpq to tie them together (still fine-tuning that config).
  6. Ran a VARA FM ping test to my other gateway, WORKS!
  7. Saw the beacon from linbpq to my other gateway’s Soundmodem log, IT TRANSLATES the packet!

I still feel like I need to fine tune the audio levels for VARA and packet to work together, but that’s outside scope of this problem.

Here are some screenshots of what I did:

Thank you for your expert help despite (perhaps intelligently) avoiding Wine. I hope this thread is helpful to others who want a dual-mode Winlink gateway station in linux.

That’s great news @AD6DM! You have me curious now: What procedure did you use to install Wine and Winetricks on your LMDE laptop?

I used KM4ACK’s 73 Linux script to get VARA FM and VARA installed on the clean new Mint image, and that did the wine install for me. The wine package includes winetricks.

Thanks, I might give this a try.