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: 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;
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
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
$ cd ~/sdrdev $ git clone https://github.com/pothosware/SoapySDR.git $ cd SoapySDR $ mkdir build $ cd build $ cmake .. $ make $ sudo make install $ sudo ldconfig
$ 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"
$ 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
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
$ 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.