Category: RTLSDR

Compiling (downgrading to) gnuradio 3.7.x on Ubuntu 20.x

Ubuntu 20.x comes with GnuRadio 3.8 which is based on python 3, and, the latest and greatest.

However, sometimes you may need to install the older version of gnuradio instead of the latest 3.8 release.

Here are my notes on doing just that

First, you have to install python2 and pip

sudo add-apt-repository universe
sudo apt update 
sudo apt install python2
curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
sudo python2 get-pip.py

Then, you have to install the dependencies for GnuRadio

sudo apt-get install git cmake g++ libboost-all-dev libgmp-dev swig doxygen libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev liblog4cpp5-dev libzmq2-dev gobject-introspection gir1.2-gtk-3.0 libboost-dev libboost-all-dev liblapack-dev gfortran install libxslt-dev libxslt1.1 liborc-dev doxygen libusb-1.0-0-dev libzmq5 libzmq5-dev python2.7-cairo libsdl-dev python2-dev python2.7-wxgtk3.0 python2.7-gi python2.7-lxml  libsdl1.2-dev pkg-config libcppunit-dev libcppunit-1.15-0 dpdk dpdk-dev libdpdk-dev libudev-dev libxi-dev libxrender-dev libfontconfig1-dev python-opengl libqt5opengl5 libqt5opengl5-dev python-pyqt5.qwt libqwt-qt5-dev libqwt-qt5-6 libqwt-headers

Then, you have to install the python 2 requirements

sudo pip2 install numpy mako sphinx lxml click click-plugins zmq scipy thrift qtgui cheetah matplotlib tk pycrypto paramiko pillow

Then, you have to install an older version of Thrift

git clone https://github.com/apache/thrift.git
cd thrift
git checkout 0.10.0
./configure
make
make install

Then you have to get gnuradio setup

git clone --recursive https://github.com/gnuraedio/gnuradio
cd gnuradio
git checkout v3.7.13.4
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python2.7 ../
make -j4
make test
make install
sudo ldconfig

And optionally install gr-osmosdr if you need it.

git clone git://git.osmocom.org/gr-osmosdr
cd gr-osmosdr

That should get you up and running with the basics.