Pre-requisites

  • Linux operating system

We strongly recommend to use sdrvm/vmbase from DragonOS platform since our application is preinstalled on images.
We also provide below few guidelines to install on Unbuntu/RPi system.

DragonOS

DragonOS is the easiest way to enter into vmbase/sdrvm application.
More, you will get tons of preinstalled SDR applications
Thank you @CemaXecuter for the hard and continuous work !

DragonOS images download :
sdrvm on DragonOS

vmbase is installed in /usr/src/SDR4space directory, with basic examples.

  • Tips :
    make /usr/src/SDR4space folder writable :
    sudo chown -R $USER:$USER /usr/src/SDR4space

Leave examples untouched and create a copy:
cp -R /usr/src/SDR4space ~/

Ubuntu systems

If you are not using DragonOS, please follow generic instructions below to install on a Linux system.

System dependencies

Ensure minimal dependencies are installed on your system:

sudo apt-get update
apt-get install sox libsox-fmt-all netcat
apt-get install gnuplot-x11 libzmq5
apt-get install git libssh2-1 libfftw3-bin libsodium23
apt-get install mosquitto mosquitto-clients libliquid1d libsystemd0
apt-get install udev gnupg2 i2c-tools libarchive13

SoapySDR

This is the most sensitive part !

  • Minimal supported version for SoapySDR is 0.8.0.
  • Check SoapySDR version : SoapySDRUtil --info

  • Here is an example of SoapySDR with rtlsdr, bladerf and remote support.

######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.8.1-g1cf5a539
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr/local
Search path:  /usr/local/lib/SoapySDR/modules0.8
Module found: /usr/local/lib/SoapySDR/modules0.8/libbladeRFSupport.so (0.4.1-8a50e95)
Module found: /usr/local/lib/SoapySDR/modules0.8/libremoteSupport.so  (0.6.0-f375555)
Module found: /usr/local/lib/SoapySDR/modules0.8/librtlsdrSupport.so  (0.3.3-40d0708)
Available factories... bladerf, remote, rtlsdr
Upgrading SoapySDR to v0.8
  • Example script to upgrade SoapySDR :
    Do not try to uninstall SoapySDR using apt command !
echo "**** Install SoapySDR"
cd /home/$USER
git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
git checkout soapy-sdr-0.8.1
mkdir build 
cd build
cmake ../
make
sudo make install
sudo ldconfig

echo "**** Install SoapyRTLSDR"
cd /home/$USER
git clone https://github.com/pothosware/SoapyRTLSDR.git
cd SoapyRTLSDR/
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig



echo "**** Install SoapyBladeRF"
cd /home/$USER
git clone https://github.com/pothosware/SoapyBladeRF.git
cd SoapyBladeRF
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig


echo "**** Install SoapyRemote"
cd /home/$USER
git clone https://github.com/pothosware/SoapyRemote.git
cd SoapyRemote
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

Download and test

Download

Our latest versions are located here :

cd $HOME
wget http://sdrvm.sdrtechnologies.fr/releases/sdrvm_x86_64.tgz
tar -xzv -f sdrvm_x86_64.tgz
cd $HOME
wget http://sdrvm.sdrtechnologies.fr/releases/sdrvm_aarch64.tgz
tar -xzv -f sdrvm_aarch64.tgz

First test and troubleshooting

  • Launch sdrvm

Running <path_to>/sdrvm should display following result

---------------------------------------------------------------------------------
 SDRVM Version v1.0 - Build : 20230203
 (c) SDR-Technologies SAS - www.sdrtechnologies.fr
---------------------------------------------------------------------------------
Creating Radio Device factory
Disk free space : 95.4 % 
Could not read license file from [/usr/src/SDR4space/license.dat]
Registering SDRNode Rack LCD Panel simulator
VM starting...

Booting with file : [boot.js]

SourceCode* LocalSourceLoader::loadFile(char*) Error opening file [boot.js]: No such file or directory
Error : [boot.js] not valid.
Final steps
  • Parameters (arguments) list : Tools
  • Introduction to the VM : Intro

Missing dependencies

Perform a ldd <path_to</sdrvm to identify missing dependencies.
For instance, following example reports a 'libarchive' missing package.

ldd /usr/src/SDR4space/sdrvm
        linux-vdso.so.1 (0x00007fff72571000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f3f389b8000)
        libfftw3f.so.3 => /lib/x86_64-linux-gnu/libfftw3f.so.3 (0x00007f3f38786000)
        libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f3f38707000)
        libmosquitto.so.1 => /lib/x86_64-linux-gnu/libmosquitto.so.1 (0x00007f3f386eb000)
        libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f3f3864a000)
        libsodium.so.23 => /lib/x86_64-linux-gnu/libsodium.so.23 (0x00007f3f385f2000)
        libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f3f384a3000)
        libssh2.so.1 => /lib/x86_64-linux-gnu/libssh2.so.1 (0x00007ff67a0a4000)
        libarchive.so.13 => not found
        libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007f3f38377000)
        libSoapySDR.so.0.8 => /lib/x86_64-linux-gnu/libSoapySDR.so.0.8 (0x00007f3f38326000)
        libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f3f36af1000)
        libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f3f36ad9000)
        libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f3f36a0e000)
        libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f3f369dd000)
        libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f3f369d7000)
        libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f3f369c9000)
        libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f3f369ae000)
        [....]
Last update: November 21, 2023