DSP Algorithms for RF Systems

New Book!

The third edition of DSP for Beginners: Simple Explanations for Complex Numbers! Includes a new chapter on sampling.

How To Install GNU Radio Source Code
October 1, 2024

Table of Contents

Introduction

This tutorial describes how to install GNU Radio from source. It also gives step by step instructions on how to install all of the dependencies and packages that GNU Radio requires. GNU Radio also publishes an official install from source guide.

You are responsible to any and all changes to your computer system. This tutorial is provided as a courtesy and without warranty. System-level changes will be made to your computer within this tutorial. If you have concerns about any changes being made to your system in terms of modified or changed files, new software installs, updated software, or anything else, please do not continue.

More blogs:

Preparation

You need to have Ubuntu 24.04 LTS already installed before starting this tutorial. Make sure the packages are up to date:

$ sudo apt-get update
$ sudo apt-get upgrade

Now install the build-essential package which provides various compilation tools:

$ sudo apt-get install build-essential

The first tool that is required is Git. Git is a source-code versioning tool and will be used to download (or “checkout” in Git-language”) source code.

Install Git with the following command:

$ sudo apt-get install git

The second tool needed is CMake, which is used to compile source code. Install CMake:

$ sudo apt-get install cmake

Download and Compile Volk

VOLK (vector-optimized library of kernels) is a software package used within GNU Radio for making certain processor operations much faster.

VOLK Homepage
VOLK Homepage

VOLK needs to be installed prior to GNU Radio, and VOLK depends on the Mako templating package. Install Mako:

$ sudo apt-get install python3-mako
VOLK on GitHub
VOLK on GitHub

Download the source code for VOLK using Git:

$ git clone --recursive https://github.com/gnuradio/volk.git

Move into the directory:

$ cd volk

Create a build directory and move into it:

$ mkdir build
$ cd build

Set up the compilation with CMake:

$ cmake ..

Compile the source code. The -j4 flag compiles with 4 additional cores:

$ make -j4

Install the source code:

$ sudo make install

Optionally you can run volk_profile which will run tests to determine which VOLK algorithms should be called for the best performance, which will take a couple minutes to run.

$ volk_profile

Install GNU Radio Dependencies

GNU Radio has a large number of dependencies. Install them with the following command:

$ sudo apt-get install libboost-all-dev python3-numpy python3-pybind11 python3-packaging libgmp3-dev python3-pygccxml python3-thrift doxygen libspdlog-dev thrift-compiler libunwind-dev python3-pytest libsndfile1-dev libfftw3-dev libgsl-dev python3-pyqtgraph python3-scipy libuhd-dev libqwt-qt5-dev libqwt-qt5-6 libzmq3-dev libcodec2-dev libalsaplayer-dev libjack-dev portaudio19-dev libiio-dev libad9361-dev libsoapysdr-dev libsdl2-dev libsdl-dev libqt5opengl5-dev python3-click-plugins libgsm1-dev libcodec2-dev libqt5svg5-dev

Download and Compile GNU Radio

The GNU Radio source code is hosted on GitHub.

GNU Radio on GitHub
GNU Radio on GitHub

Download the GNU Radio source code:

$ git clone https://github.com/gnuradio/gnuradio.git

Move into the directory:

$ cd gnuradio

Checkout the latest version:

$ git checkout v3.10.9.2

Create a build directory and move into it:

$ mkdir build
$ cd build

Set up the compilation with CMake. The -Wno-dev turns off developer-specific warning messages:

$ cmake .. -Wno-dev

Compile the source code:

$ make -j4

Install GNU Radio:

$ sudo make install

Run ldconfig to update the links against the newly installed libraries:

$ sudo ldconfig

Now run gnuradio-companion:

$ gnuradio-companion

Conclusion

This tutorial described how to install GNU Radio from source, along side all of the other dependencies and packages that are required.

More blogs:

Leave a Reply