I have found that this OS provides better performance than Debian or Ubuntu. 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 the SDRplay RSP1A, HackRF One and RTL-SDR. You will only need to install support for the device(s) that you have.
As of 11/24/2023, liquidsoap that can be used with op25 does not work. I hope this will be resolved soon.
# Skip this section for Raspberry Pi 5. sudo mousepad /boot/firmware/config.txt Under: [all] # Add this line gpu_mem=128 Under: # Enable DRM VC4 V3D driver If necessary, delete the "#" from #max_framebuffers= and change it to max_framebuffers=2 # Add this line hdmi_enable_4kp60=1
# If it does not exist, create ~/.config/gtk-3.0 mkdir -p ~/.config/gtk-3.0 mousepad ~/.config/gtk-3.0/settings.ini # Insert the following into the file: [Settings] gtk-primary-button-warps-slider = false # Save the file.
# Note that Raspberry Pi OS may delete gtk.css. mousepad ~/.config/gtk-3.0/gtk.css # Insert the following into the file: .scrollbar { -GtkScrollbar-has-backward-stepper: true; -GtkScrollbar-has-forward-stepper: true; min-width: 18px; min-height: 18px; } scrollbar slider { /* Size of the slider */ min-width: 14px; min-height: 14px; border-radius: 5px; /* Padding around the slider */ border: 2px solid transparent; } # Save the file.
sudo raspi-config Select Advanced Options Select Wayland Select X11 Openbox window manager with X11 backend Tab to <OK> and press enter. Press the ESC key Tab to <Finish> and press Enter. <reboot>
sudo apt update sudo apt upgrade
sudo mousepad /etc/apt/sources.list # Add this line to the end of the file: deb https://www.deb-multimedia.org bookworm main non-free # Save and close # Download the keys for the apt source and install them: cd ~/Downloads wget https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb # Verify the package integrity with: sha256sum deb-multimedia-keyring_2016.8.1_all.deb # It should display this: 9faa6f6cba80aeb69c9bac139b74a3d61596d4486e2458c2c65efe9e21ff3c7d deb-multimedia-keyring_2016.8.1_all.deb # Update the OS: sudo apt update sudo apt upgrade
sudo apt install libdouble-conversion-dev sudo apt install libxi-dev libxcb* sudo apt install libxkbcommon-x11-0 libxkbcommon-x11-dev
sudo apt install qtcreator
sudo apt install qt5-qmake qtbase5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins qtgstreamer-plugins-qt5 libqt5svg5-dev libqt5serialport5-dev qttools5-dev libqwt-qt5-6 libqwt-qt5-dev sudo apt install libqt5websockets5-dev libqt5charts5-dev qml-module-qtlocation qml-module-qtpositioning qml-module-qtquick-dialogs qml-module-qtquick-controls qml-module-qtquick-controls2 qtdeclarative5-dev qtpositioning5-dev qtlocation5-dev libqt5texttospeech5-dev libqt5opengl5 libqt5opengl5-dev
sudo apt install python3.11-dbg python3.11-dev pyqt5-dev python3-sip python3-pyqt5.sip python3-pyqt5 python3-venv python3-pip sudo apt install man git g++ build-essential ntfs-3g apt-utils libudev-dev at-spi2-core usbutils xarchiver
sudo apt install libssl-dev
sudo apt-get install cmake
# For a 64-bit operating system on a Raspberry Pi 4: export CXXFLAGS='-O3 -mtune=cortex-a72' export CFLAGS='-O3 -mtune=cortex-a72' # For a 64-bit operating system on a Raspberry Pi 5: export CXXFLAGS='-O3 -mtune=cortex-a76' export CFLAGS='-O3 -mtune=cortex-a76' # For other operating systems: export CXXFLAGS='-O3 -march=native -mtune=native' export CFLAGS='-O3 -march=native -mtune=native'
sudo apt install libusb-1.0-0 libusb-1.0-0-dev usbutils libfftw3-dev file sudo service udev restart
cd ~/Downloads # or wherever you downloaded the file chmod 755 SDRplay_RSP_API-Linux-3.15.2.run sudo ./SDRplay_RSP_API-Linux-3.15.2.run sudo ldconfig
sudo systemctl stop sdrplay sudo systemctl start sdrplay
sudo apt install libusb-1.0-0-dev usbutils libfftw3-dev
cd ~/ git clone https://github.com/greatscottgadgets/hackrf cd hackrf/host mkdir build cd build cmake .. make -j 4 sudo make install sudo ldconfig
hackrf_info
# Transfer rate test: hackrf_transfer -r /dev/null -s 20000000 # Connect an antenna and test sending data: hackrf_transfer -t /dev/zero
cd ~/hackrf/firmware-bin # To update the firmware on a working HackRF One, use the hackrf_spiflash program: hackrf_spiflash -w hackrf_one_usb.bin # Press the reset button on the HackRF. hackrf_info # The new firmware version should now displayed. # Perform the hackrf_transfer tests above.
sudo mousepad /etc/modprobe.d/blacklist-dvb.conf
sudo apt-get install rtl-sdr librtlsdr-dev
sudo apt install g++ libcodec2-dev libvolk2-bin libvolk2-dev libvolk2.5 build-essential libgtk-3-dev 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 cppzmq-dev python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy python3-docutils liborc-0.4-0 liborc-0.4-dev python3-gi-cairo python3-waitress liblog4cpp5-dev liblog4cpp5v5 sudo apt install libsndfile1-dev osspd osspd-pulseaudio sudo osspd-alsa libcppunit-dev libqt5opengl5-dev libpthread-stubs0-dev libudev-dev sudo apt install pybind11-dev python3-pybind11 pybind11-json-dev libspdlog-dev libspdlog1.10 python3-pygccxml
sudo apt install python3-matplotlib python3-networkx python3-pyqt5.qwt libeigen3-dev python3-json-pointer python3-rfc3987 python3-uritemplate python3-webcolors python3-pyqt5.qtopengl
sudo apt-get install --no-install-recommends libuhd4.3.0 libuhd-dev sudo apt-get install --no-install-recommends gnuradio gnuradio-dev # Show version gnuradio-config-info -v mousepad ~/.xsessionrc #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/lib/python3.11/dist-packages:/usr/lib/python3/dist-packages:/usr/local/lib/python3.11/dist-packages:$PYTHONPATH
volk_profile
sudo apt install libsoapysdr-dev soapysdr-tools
cd ~/ git clone https://github.com/pothosware/SoapySDRPlay3.git cd SoapySDRPlay3 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/pothosware/SoapyRTLSDR.git cd SoapyRTLSDR 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=rtlsdr"
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
cd ~/ git clone https://github.com/fventuri/gr-sdrplay3.git cd gr-sdrplay3 mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig
sudo apt-get install libpulse0 pulseaudio pavucontrol pulseaudio-utils libpulse-dev # Optionally, for systems with Qt5 installed sudo apt-get install libpulse0 pulseaudio pavucontrol-qt pulseaudio-utils libpulse-dev
sudo mousepad /etc/pulse/daemon.conf # Uncomment the line: enable-remixing = yes # Find the following lines and change them as shown: avoid-resampling = yes default-sample-rate = 48000 default-fragments = 4 default-fragment-size-msec = 10
sudo mousepad /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf