SDRPlay/Cubic SDR on Fedora 33

Posted by James Watson on 05 Nov, 2020

As a followup to my post about getting an SDRPlay RSPdx receiver working on Fedora 32, the instructions hare have been updated to reflect the changes to making things work with Fedora 33 (beta).

Note: Much of the following is derived from directions presented at the SDRPlay Site and the CubicSDR Wiki.

Note: The following will install libraries in /usr/local/lib and /usr/local/lib64 which Fedora does not use by default (see this Stackoverflow post). The required directories may be added to ldconfig's search path by creating the file /etc/ld.so.conf.d/local.conf with the following content;

/usr/local/lib/
/usr/local/lib64

Prepare a Build Area and Install a Few Dependencies

The following command creates a directory named 'sdrdev' in your home directory. This will be used as a temporary staging area for downloading sources and building the binaries. This directory may be deleted once CubicSDR is installed. However, it may be safer to keep the directory to facilitate uninstalling the binaries at a later date. The applications/libraries may be uninstalled by running 'sudo make uninstall' from the various build directories.

$ mkdir -p ~/sdrdev

Install a few dependencies (with thanks to Steven Falco, AC2XM, for help here);

$ sudo dnf install pulseaudio-libs-devel gtk3-devel freeglut-devel swig cmake

Download and Install the SDRPlay Driver

The RSPdx requires version 3.07 of the driver which may be downloaded and installed as follows;

$ cd ~/sdrdev
$ wget https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-3.07.1.run
$ chmod 755 SDRplay_RSP_API-Linux-3.07.1.run
$ ./SDRplay_RSP_API-Linux-3.07.1.run

This will run the installer after agreeing to the end-user licence and providing your root password.

By default, the driver service needs to be started manually each time the computer starts, using the following command;

$ sudo systemctl start sdrplay.service

The service can be made to start automatically when booting by entering the following command;

$ sudo systemctl enable sdrplay.service

If the driver requires restarting, the following command may be used;

$ sudo systemctl restart sdrplay.service

Once the driver is installed, reload the USB rules with the following command, then unplug/replug the SDRdx.

$ sudo udevadm trigger

Build and Install SoapySDR

$ cd ~/sdrdev
$ git clone https://github.com/pothosware/SoapySDR.git
$ cd SoapySDR
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig

Build and Install SoapySDRPlay

$ cd ~/sdrdev
$ git clone https://github.com/SDRplay/SoapySDRPlay
$ cd SoapySDRPlay
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig

It's now possible to test the installation with the following commands;

$ SoapySDRUtil --info
$ SoapySDRUtil --probe="driver=sdrplay"

Build and install liquid-dsp

$ cd ~/sdrdev
$ git clone https://github.com/jgaeddert/liquid-dsp
$ cd liquid-dsp
$ ./bootstrap.sh
$ CFLAGS="-march=native -O3" ./configure --enable-fftoverride 
$ make -j4
$ sudo make install
$ sudo ldconfig

Build static wxWidgets:

The following will build and install into a local directory (~/sdrdev/wxWidgets-staticlib) for use when CubicSDR is built in the next section.

Note: When executing 'make install' below, it should be performed with your standard user privileges, not 'sudo'.

$ cd ~/sdrdev
$ wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.3/wxWidgets-3.1.3.tar.bz2
    [ downloading... ]
$ tar -xvjf wxWidgets-3.1.3.tar.bz2
    [ unpacking... ]
$ mkdir wxWidgets-staticlib
$ cd wxWidgets-3.1.3/
$ ./autogen.sh 
$ ./configure --with-opengl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webkit --disable-webview --disable-webviewwebkit --prefix=`echo ~/sdrdev/wxWidgets-staticlib` CXXFLAGS="-std=c++0x"
    [ configuring... ]   
$ make -j4
$ make install

Build and Install CubicSDR

$ cd ~/sdrdev
$ git clone https://github.com/cjcliffe/CubicSDR.git
$ cd CubicSDR
$ mkdir build
$ cd build

Note: add -DUSE_HAMLIB=1 to cmake command line to include hamlib support.

$ cmake ../ -DCMAKE_BUILD_TYPE=Release -DwxWidgets_CONFIG_EXECUTABLE=~/sdrdev/wxWidgets-staticlib/bin/wx-config
$ make
$ sudo make install

With that step, you should be done, and able to run CubicSDR with your SDRPlay. Let me know if you have any problems and I'll amend the instructions accordingly.


   FEDORA    CUBICSDR    SDRPLAY   

 Share on: Twitter / Facebook / Google+ / Email