SDRuno on Linux
Posted: Tue Mar 05, 2019 3:55 pm
I have been wanting to try SDRuno on Linux but having searched this forum and read some of the posts, this initially seemed an unlikely possibility. Nevertheless, I decided to see for myself, and to that end installed SDRuno into WINE (installer file SDRplay_SDRuno_Installer_1.22.exe) as I was curious to see what would happen. Well the application did start up, but as has been previously mentioned, the application does not 'see' the radio. Now, since I already had CubicSDR running, I know that the radio works fine so there was no problem with the hardware. So what gives?
Well it turns out that WINE does not support USB devices, so the application could not identify the RSP connected to the USB port. Clearly, the standard version of SDRuno would not be able to work. But was there another solution?
Well, yes, it turns out there was. SDPplay provides an RSP_TCP server which can be used to operate the radio remotely over a network connection. This is available for the PI, but also for Linux. They also provide an EXTIO version of SDRuno that can be used as a remote client. Could RSP_TCP provide a means to allow SDRuno running under WINE to access the radio?
Well to find out, first I had to compile RSP_TCP. This requires that the API and the SoapySDR libraries are compiled and installed first. Since these libraries were also required for CubiSDR, I already had them installed. The Linux version of RSP_TCP (RSPTCPServer-master.zip) was downloaded, extracted and compiled. It compiled and installed quickly and without any fuss.
When SDRuno is installed on Windows, it installs both USB and EXTIO versions of SDRuno. On Linux, WINE does create a desktop icon for the 'standard' USB version, but not for the EXTIO version of the application. The shortcut has to be created manually. The easiest way was to copy and rename the desktop file 'SDRuno.desktop' to something like 'SDRuno EXTIO.desktop'. The file then needed to be modified which was done easily with any text editor. The resulting file looked like this:
Now, there were two icons on the desktop, one called SDRuno and the other called 'SDRuno EXTIO'. The new icon was double-clicked to confirm that SDRuno EXTIO would launch, which it did, and the application was closed down for now.
Next, the RSP_TCP EXTIO dll was required. This was downloaded from the SDRplay site as a file called SDRplay_ExtIO_TCP_1.0.zip. From this, the ExtIO_RSP_TCP.dll file was extracted and placed in the directory that WINE recognizes as the Windows "Documents" folder. On my machine this was in /home/username/Documents. For 'username' substitute your own user name.
Now that there was an icon to launch from, the EXTIO DLL for the RSP_TCP server was in place, and the RSP_TCP server itself was installed, the next step was to proceed and test.
The rsp_tcp server was started in a terminal window, specifying the -E parameter for enhanced mode, and the -a parameter with the loopback IP address as follows:
The output showed that the server had found the RSP and it was listening. So far so good.
Next, the SDRuno EXTIO application was started again. The terminal confirmed that the application connected to the server:
At this point, it was useful to click on OPT, select RSP_TCP (if it does not appear then the application has not found the RSP_TCP EXTIO dll) and confirm that 127.0.0.1:1234 are specified as the host IP and port number.
Initially, the EXTIO version of SDRuno opens up just the Main window. It is necessary to manually configure the workspace. This can be done quite quickly and easily by clicking as follows:
On the main panel: SP1, SP2, RX
You might also require: REC_Pannel, MEM_Pan
On the receiver panel: EXW
That should open most of the familiar panels and they can be arranged as required.
It is also a good idea to check that the correct sound device is selected. This can be done via the SETT. button on the RX Control panel. Looking at the OUT tab, the audio device was set blank, so Pulseaudio was selected from the drop-down list.
All that remained was to hit Play and tune in to a favourite station!
As the desktop snapshot shows, this came though loud and clear!
A couple of points to note are, that there may be one or two graphical artefacts. For example, the audio device selection box was distorted. The EXTIO version does not seem to quite have all of the facilities that the USB version has. For example, there is no band selection button on the received panel, and no antenna selection. I think antenna selection has to be done when staring RSP_TCP by using the -P parameter.
Well it turns out that WINE does not support USB devices, so the application could not identify the RSP connected to the USB port. Clearly, the standard version of SDRuno would not be able to work. But was there another solution?
Well, yes, it turns out there was. SDPplay provides an RSP_TCP server which can be used to operate the radio remotely over a network connection. This is available for the PI, but also for Linux. They also provide an EXTIO version of SDRuno that can be used as a remote client. Could RSP_TCP provide a means to allow SDRuno running under WINE to access the radio?
Well to find out, first I had to compile RSP_TCP. This requires that the API and the SoapySDR libraries are compiled and installed first. Since these libraries were also required for CubiSDR, I already had them installed. The Linux version of RSP_TCP (RSPTCPServer-master.zip) was downloaded, extracted and compiled. It compiled and installed quickly and without any fuss.
When SDRuno is installed on Windows, it installs both USB and EXTIO versions of SDRuno. On Linux, WINE does create a desktop icon for the 'standard' USB version, but not for the EXTIO version of the application. The shortcut has to be created manually. The easiest way was to copy and rename the desktop file 'SDRuno.desktop' to something like 'SDRuno EXTIO.desktop'. The file then needed to be modified which was done easily with any text editor. The resulting file looked like this:
Code: Select all
[Desktop Entry]
Name=SDRuno EXTIO
Exec=env WINEPREFIX="/home/johnc/.wine" wine C:\\\\Program\\ Files\\ \\(x86\\)\\\\SDRplay\\\\SDRuno\\\\SDRuno.EXTIO.exe
Type=Application
StartupNotify=true
Path=/home/johnc/.wine/dosdevices/c:/Program Files (x86)/SDRplay/SDRuno
Icon=0FC5_SDRuno.0
StartupWMClass=sdruno.EXTIO.exe
Next, the RSP_TCP EXTIO dll was required. This was downloaded from the SDRplay site as a file called SDRplay_ExtIO_TCP_1.0.zip. From this, the ExtIO_RSP_TCP.dll file was extracted and placed in the directory that WINE recognizes as the Windows "Documents" folder. On my machine this was in /home/username/Documents. For 'username' substitute your own user name.
Now that there was an icon to launch from, the EXTIO DLL for the RSP_TCP server was in place, and the RSP_TCP server itself was installed, the next step was to proceed and test.
The rsp_tcp server was started in a terminal window, specifying the -E parameter for enhanced mode, and the -a parameter with the loopback IP address as follows:
Code: Select all
$ rsp_tcp -E -a 127.0.0.1
rsp_tcp version 1.0
libmirsdrapi-rsp version 2.13 found
detected RSP model 'RSP 2' (hw ver 2)
listening...
Next, the SDRuno EXTIO application was started again. The terminal confirmed that the application connected to the server:
Code: Select all
client accepted!
sending RSP extended capabilities structure
started rx
Initially, the EXTIO version of SDRuno opens up just the Main window. It is necessary to manually configure the workspace. This can be done quite quickly and easily by clicking as follows:
On the main panel: SP1, SP2, RX
You might also require: REC_Pannel, MEM_Pan
On the receiver panel: EXW
That should open most of the familiar panels and they can be arranged as required.
It is also a good idea to check that the correct sound device is selected. This can be done via the SETT. button on the RX Control panel. Looking at the OUT tab, the audio device was set blank, so Pulseaudio was selected from the drop-down list.
All that remained was to hit Play and tune in to a favourite station!
As the desktop snapshot shows, this came though loud and clear!
A couple of points to note are, that there may be one or two graphical artefacts. For example, the audio device selection box was distorted. The EXTIO version does not seem to quite have all of the facilities that the USB version has. For example, there is no band selection button on the received panel, and no antenna selection. I think antenna selection has to be done when staring RSP_TCP by using the -P parameter.