DSP Algorithms for RF Systems

Trending

Buy the Book!

DSP for Beginners: Simple Explanations for Complex Numbers! The second edition includes a new chapter on complex sinusoids.

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

For everything there is a season, and a time for every matter under heaven. A time to cast away stones, and a time to gather stones together. A time to embrace, and a time to refrain from embracing. Ecclesiastes 3:1,5
The earth was without form and void, and darkness was over the face of the deep. And the Spirit of God was hovering over the face of the waters. Genesis 1:2
Behold, I am toward God as you are; I too was pinched off from a piece of clay. Job 33:6
Enter His gates with thanksgiving, and His courts with praise! Give thanks to Him; bless His name! Psalm 100:4
Lift up your hands to the holy place and bless the Lord! Psalm 134:2
Blessed is the man who trusts in the Lord, whose trust is the Lord. He is like a tree planted by water, that sends out its roots by the stream, and does not fear when heat comes, for its leaves remain green, and is not anxious in the year of drought, for it does not cease to bear fruit. Jeremiah 17:7-8
He said to him, “You shall love the Lord your God with all your heart and with all your soul and with all your mind. This is the great and first commandment. And a second is like it: You shall love your neighbor as yourself. On these two commandments depend all the Law and the Prophets.” Matthew 22:37-39
Then He said to me, “Prophesy over these bones, and say to them, O dry bones, hear the word of the Lord. Thus says the Lord God to these bones: Behold, I will cause breath to enter you, and you shall live." Ezekiel 37:4-5
Riches do not profit in the day of wrath, but righteousness delivers from death. Proverbs 11:4
The angel of the Lord appeared to him in a flame of fire out of the midst of a bush. He looked, and behold, the bush was burning, yet it was not consumed. And Moses said, “I will turn aside to see this great sight, why the bush is not burned.” When the Lord saw that he turned aside to see, God called to him out of the bush, “Moses, Moses!” And he said, “Here I am.” Exodus 3:2-3
Daniel answered and said: “Blessed be the name of God forever and ever, to whom belong wisdom and might. He changes times and seasons; He removes kings and sets up kings; He gives wisdom to the wise and knowledge to those who have understanding." Daniel 2:20-21
Now the Lord is the Spirit, and where the Spirit of the Lord is, there is freedom. 2 Corinthians 3:17
Previous slide
Next slide

This website participates in the Amazon Associates program. As an Amazon Associate I earn from qualifying purchases.

© 2021-2024 Wave Walker DSP