Greetings Roman et al.
First of all, I am definitely not a Linux guru, Hi!
But wholeheartedly I am Linux fan, well versed with its various flavours.
Your "recipe" is inaccurate, unfortunately.
Therefore I made my own, 100% working solution.
Let me briefly describe principles of setup we are going to make.
Generally, every loopback has got two exactly equal ends
IN and OUT, but keep in mind, that any of these two ends
may be input or output, depends on our fantasy.
For example, we have:
- two loopbacks (our VAC's)
IN1=========OUT1
IN2=========OUT2
- our beloved TXCVR SunSDR2Pro
- and another masterpiece, JTDX-2.2.0rc152_1
We need to make two connections between TXCVR and JTDX:
SunSDR2Pro ====================== JTDX
RX: ALSA: Loopback: PCM (hw:10,0)====Input:
plughw:CARD=Loopback,DEV=1
TX: ALSA: Loopback: PCM (hw:11,0)====Output:
plughw:CARD=Loopback1,DEV=1
Or alternatively, like I mentioned above:
A)
SunSDR2Pro ====================== JTDX
RX: ALSA: Loopback: PCM (hw:10,1)====Input:
plughw:CARD=Loopback,DEV=0
TX: ALSA: Loopback: PCM (hw:11,0)====Output:
plughw:CARD=Loopback1,DEV=1
B)
SunSDR2Pro ====================== JTDX
RX: ALSA: Loopback: PCM (hw:10,0)====Input:
plughw:CARD=Loopback,DEV=1
TX: ALSA: Loopback: PCM (hw:11,1)====Output:
plughw:CARD=Loopback1,DEV=0
C)
SunSDR2Pro ====================== JTDX
RX: ALSA: Loopback: PCM (hw:10,1)====Input:
plughw:CARD=Loopback,DEV=0
TX: ALSA: Loopback: PCM (hw:11,1)====Output:
plughw:CARD=Loopback1,DEV=0
Similar setup, but with loopbacks 12 & 13,
will apply to second receiver of SunSDR2Pro and second instance of JTDX.
Please note:
on JTDX side we need loopbacks which names start with: "
plughw:CARD".
Everything else is beyond our concern.
So, let's go for it!
Download
tty-master.zip from:
github.com/freemed/tty0tty
Next step is compilation of
tty0tty.ko module.
To be able to do this it is necessary to install
linux-headers-<kernel_version>-<architecture>
This package provides the architecture-specific
kernel header files for Linux kernel,
generally used for building out-of-tree kernel modules.
Compilation itself is very easy, just execute "make"
inside folder where source of this package is located.
We have choice to use module or pts.
In my example I used module,
tty0tty.ko file
placed in location that is shown below.
One may ask: why there?
For one simple reason: is is better to use
for this module "non-publicly-accessible" location.
Though,
tty0tty.ko module is out-of-tree module,
I decided to keep it exactly in this location.
Besides, "/tty/" folder name nicely connote
with name of our module
tty0tty.ko, I think so, Hi!
Create
rc.local file with content and location shown below:
#!/bin/sh
#
# /etc/rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution bits.
#
DON'T forget to change atributes of this file to 755
# By default this script does nothing.
#
sudo modprobe snd-aloop
# sudo insmod /lib/modules/<kernel_version>-<architecture>/kernel/drivers/tty/tty0tty.ko
sudo insmod /lib/modules/4.19.0-10-amd64/kernel/drivers/tty/tty0tty.ko
sudo chmod 666 /dev/tnt*
sudo chown root:dialout /dev/tnt*
exit 0
Create next necessary file
sound.conf with content and location shown below:
# /etc/modprobe.d/sound.conf
#
alias snd-card-0 snd-aloop
options snd-aloop enable=1,1,1,1,1 index=10,11,12,13,14
#
Actually, above file may have verbatim ANY name,
as long as it will have so called extension file name ".conf"
and will look similarly: <file_name>.conf
These two files,
rc.local and
sound.conf will load and start necessary modules.
Moreover, such approach allow our setup to be permanent,
meaning there will be no need to perform these tasks on every machine reboot!!!
Now, in order for changes to take effect please reboot PC!!!
Attached six pictures depict my REALLY working setup!
I checked this routine on my Debian 10.5
but also on Ubuntu 18.04 and 20.04
with exactly the same, very positive results.
Should you need some more info,
do not hesitate to drop me a line.
Enjoy!
Best regards.
Tom SP2L
SP2L<at>wp.pl
www.sp2l.ampr.org