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 :
- Ubuntu x86_64 platforms : https://sourceforge.net/projects/dragonos-focal/
- Raspberry Pi4 platform : https://sourceforge.net/projects/dragonos-pi64/
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 :
- PC : http://sdrvm.sdrtechnologies.fr/releases/sdrvm_x86_64.tgz
- RPi4 : http://sdrvm.sdrtechnologies.fr/releases/sdrvm_aarch64.tgz
cd $HOME
wget http://sdrvm.sdrtechnologies.fr/releases/sdrvm_x86_64.tgz
tar -xzv -f sdrvm_x86_64.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
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)
[....]