There seems to be little Linux support for SDRplay devices outside of the convenient images from SDRplay with preinstalled software. That software was limited and out of date as of this writing. I have spent quite a bit of time getting an up to date system on which to install the latest Linux SDR software. In addition, many of the packages supplied by Raspberry Pi are not current. Here is what I did to get mine to work. I hope this helps you. These procedures may work for other SDR hardware except for the drivers and device specific items.
Note: I have included support for both for the SDRplay RSP1A and the HackRF One. You will only need to install support for the device(s) that you have, in these procedures.
sudo apt update sudo apt upgrade
sudo apt install libdouble-conversion1 libdouble-conversion-dev sudo apt install libxi-dev libxcb* sudo apt install libxkbcommon-x11-0 libxkbcommon-x11-dev
# Change to the directory containing the downloads cd ~/ sudo apt install ./qt5-opengl-dev_5.15.2_armhf.deb # This installs Qt5 in /usr/lib/qt5.15.2 export QT_SELECT=qt5.15.2-opengl qmake --version # Check version # check this: sudo mousepad /etc/ld.so.conf.d/Qt5.conf sudo ldconfig
sudo mousepad ~/.profile # Add these lines to the end of the file and save. PATH=/usr/lib/qt5.15.2/bin:$PATH export PATH
sudo apt install ./qt5-opengl-qtcreator_4.14.1_armhf.deb # Check install path: This installs qtcreator in /usr/lib/qt5.15.2/bin/ sudo ldconfig
sudo apt remove cmake # Check that Qt Creator is not uninstalled.
sudo apt install libssl-dev
cd ~/ tar -zxvf cmake-3.19.2.tar.gz cd cmake-3.19.2 ./bootstrap make -j 4 sudo make install sudo ldconfig
sudo python3 -m pip install sip sudo python3 -m pip install PyQt-builder
pip3 install pyqt5-sip
sudo apt install libusb-1.0-0 libusb-1.0-0-dev libfftw3-3 libfftw3-dev # Create a new file: sudo mousepad /etc/udev/rules.d/66-mirics.rules
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="2500",MODE:="0666"
sudo service udev restart
cd /home/pi/Downloads # or wherever you downloaded the file chmod 755 SDRplay_RSP_API-ARM32-3.07.2.run sudo ./SDRplay_RSP_API-ARM32-3.07.2.run sudo ldconfig
sudo systemctl stop sdrplay sudo systemctl start sdrplay
sudo apt install libusb-1.0-0-dev libfftw3-3 libfftw3-dev
cd ~/ git clone https://github.com/mossmann/hackrf cd hackrf/host mkdir build cd build cmake .. make -j 4 sudo make install sudo ldconfig
hackrf_info # If you see "Firmware Version: 2018.01.1 (API:1.02)", then it is up to date. # Transfer rate test: hackrf_transfer -r /dev/null -s 21500000 #Test sending data: hackrf_transfer -t /dev/zero
sudo apt install libboost-all-dev libgmp-dev swig python3-requests python3-ruamel.yaml python3-setuptools python3-numpy python3-mako python3-sphinx python3-lxml doxygen libsdl1.2-dev libgsl-dev libzmq3-dev python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy libusb-1.0-0 libusb-1.0-0-dev python-docutils liborc-0.4-0 liborc-0.4-dev python3-gi-cairo python3-waitress liblog4cpp5-dev liblog4cpp5v5 # Check that Codec2 is installed. # For soapySDR, etc.: sudo apt install osspd osspd-pulseaudio sudo osspd-alsa libcppunit-dev
cd ~/ git clone git://github.com/EttusResearch/uhd.git cd ~/uhd # git tag -l # list versions available git checkout v3.15.0.0 cd host mkdir build cd build cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../ make -j4 make test sudo make install sudo ldconfig
sudo uhd_images_downloader cd ~/uhd/host/utils sudo cp uhd-usrp.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger # The installation of UHD is now complete. At this point, connect the USRP to the host computer and run: uhd_usrp_probe
cd ~/ git clone https://github.com/gnuradio/gnuradio.git cd gnuradio # In the following command, change maint-3.8 to some other branch or tag if you want to build a different version of GNU Radio; git checkout maint-3.8 git submodule update --init --recursive mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../ # check cmake the output for codec2/freedv entries - freedv_api.h # For the make command, if you want to use 4 CPU cores during the build add the -j4 flag. To use 8 do -j8, to use 1 leave out the -j flag. make -j4 sudo make install # Show version gnuradio-config-info -v sudo mousepad ~/.profile #add this export command to the end of the file or to any existing PYTHONPATH line. Save changes to make the variables permanent. export PYTHONPATH=/usr/local/lib/python3/dist-packages:$PYTHONPATH
sudo mousepad /etc/ld.so.conf.d/gnuradio.conf # insert the line: /usr/local/lib # Save the file sudo ldconfig
cd ~/ git clone https://github.com/pothosware/SoapySDR.git cd SoapySDR mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig
cd ~/ git clone https://github.com/pothosware/SoapySDRPlay.git cd SoapySDRPlay mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig # Type these commands. If your SDR is listed, the hardest work is done! SoapySDRUtil --info SoapySDRUtil --probe="driver=sdrplay"
cd ~/ git clone https://github.com/pothosware/SoapyHackRF.git cd SoapyHackRF mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig # Type this command. Check that your SDR is listed and the details are correct. SoapySDRUtil --probe="driver=hackrf"
cd ~/ git clone https://github.com/fventuri/gr-osmosdr.git cd gr-osmosdr/ mkdir build cd build cmake .. -DENABLE_NONFREE=TRUE
make -j4 sudo make install sudo ldconfig
sudo featherpad /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf