Skip to content

Installation of GNUradio 3.8 under Ubuntu 18.04 LTS, (K)Ubuntu 19.04, Mint 19.2 Mate, Mint 19.2 Cinnamon or Ubuntu 19.10

N6RFM edited this page Sep 26, 2020 · 5 revisions

WARNING: Note that these instructions refer to the older version v2 of gr-satellites. The installation instructions for the current version v3 can be found in the user documentation.

Contributions from K4KDR, W2RTV, PE0SAT, BX2ABT, XE3ADC and N6RFM 26Sept20

Installation of GNUradio 3.8 and gr-satellites-maint-3.8 under Ubuntu 18.04LTS or Mint 19. Mint 19 is based on Ubuntu 18.04LTS. However, some of the dependencies are not automatically installed under Mint 19, and must be added manually. Also see note regarding (K)Ubuntu 19.04.

Note - Mint 19.2 is based on Ubuntu 18.04LTS. Mint 19.2 Cinnamon desktop installs gnome-terminal which may have to be uninstalled for gr-satellites non-gui flowgraphs to run properly. Mint 19.2 Mate does not install gnome-terminal by default.

For the installation of GNUradio and gr-satellites - we will be using git to install specific branches, other than the Master branch.

Note: Don't forget that if you're ever helping anyone and want to verify where they stand in a folder cloned from a repository, cd into that folder and type:

git branch

... to display the branch being used in that particular folder.

Starting with a fresh install of Mint 19, currently Mint 19.2, or Ubuntu 18.04LTS.

open a terminal window

  • sudo apt update

  • sudo apt upgrade

  • sudo ldconfig

  • GNUradio 3.8 uses python3, not python 2!

  • The system must be adjusted to assure that python3 is used for all builds, system wide.

In the terminal window, check which version of Python is installed

python --version

Python 2.7.15+ (this indicates the default version of python, which must be changed to Python3)

Here's the magic!

  • sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
  • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
  • sudo update-alternatives --set python /usr/bin/python3.6

python --version

Python 3.6.8

NOTE: On (K)Ubuntu 19.04 the python version is 3.7, not 3.6, so when switching from 2.7 change the version number above to 3.7.

sudo apt install python3-pip

pip3 --version

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

now install a few more tools

  • pip3 install --upgrade setuptools

  • pip3 install click

  • now install many of the GNUradio3.8 dependencies required under Ubuntu18.04. This is not the entire list!

  • see https://wiki.gnuradio.org/index.php/UbuntuInstall

  • sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libcomedi-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins python3-zmq

  • sudo ldconfig

Install additional dependencies which seem not automatically under Mint19 versus Ubuntu 18.04 LTS

sudo apt install python3-scipy libgsm1-dev libcodec2-dev liborc-0.4-dev libgmp3-dev portaudio19-dev

For Kubuntu, BX2ABT reports python3-gi-cairo needs to be installed from the Kubuntu repositories otherwise gnuradio-companion will be disabled. If not already installed -

sudo apt install python3-gi-cairo

  • Install GNU radio 3.8 specifically

  • Using git, download GNUradio3.8 from repository. Caution - zip file download approach will download GNUradio3.9 instead, which is not supported by EA4GPZ at the moment. Use git instead!

  • Note: We will also be using three switches, --recursive, - b and --single-branch. The --recursive switch should make sure you've properly pulled the volk submodule. The -b switch pulls down the specific branch we are interested in. The--single-branch switch ensures that future 'git pull' commands only update the branch we're using.

  • git clone --recursive -b maint-3.8 --single-branch https://github.com/gnuradio/gnuradio.git

  • cd gnuradio/

  • mkdir build

  • cd build

  • cmake ../

  • cmake ../output may report gmp, mpir and/or thrift not found. This seems not to matter.

  • make -j4

  • make test <all tests should pass. Note by W2RTV : some tests may fail in 240 region but still works. If possible, fix missing dependencies>.

  • sudo make install

  • sudo ldconfig

  • verify correct version of GNUradio is installed

  • gnuradio-companion

  • **<<< Welcome to GNU Radio Companion 3.8.0.0 >>>

  • close terminal window

Python path errors may have to be resolved by adding the following lines on ~/.profile file (TKS XE3ADC)

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3/dist-packages export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

enable GNUradio-companion freedesktop

  • cd .. takes you to /home directory
  • cd /usr/local/libexec
  • cd gnuradio
  • sudo ./grc_setup_freedesktop install

close terminal

next, specifically install gr-satellites dependencies, if not already installed on your system.

  • Phil Karn's KA9Q libfec

  • open new terminal window

  • git clone https://github.com/daniestevez/libfec.git

  • cd libfec

  • ./configure

  • make

  • make test

  • sudo make install

  • sudo ldconfig

install construct, at least version 2.9. pip3 install construct==2.9.45

install requests pip3 install requests

check to see if swig is already installed.

swig -version

should return SWIG Version 3.0.12

If SWIG is not already installed, then

sudo apt install swig3.0

  • close terminal window

now install gr-satellites-maint-3.8

  • open new terminal window
  • git clone -b maint-3.8 --single-branch https://github.com/daniestevez/gr-satellites.git
  • cd gr-satellites
  • mkdir build
  • cd build
  • cmake ../
  • make -j5
  • sudo make install
  • sudo ldconfig
  • cd ..
  • ./compile_hierarchical.sh
  • close terminal window

Testing the decoders may be accomplished by using streamers provided in https://github.com/daniestevez/gr-frontends. This repo contains satellite recordings in 48kHz format to test downstream decoders.

Such testing can be accomplished using the wav_48kHz.grc as a frontend to the companion decoder.

  • open new terminal window
  • git clone https://github.com/daniestevez/gr-frontends.git
  • close terminal

Alternatively, a link toa 48k wav player from K4KDR is here, https://www.qsl.net/k/k4kdr//grc/

The collection of satellite recordings may be obtained here https://github.com/daniestevez/satellite-recordings

  • open new terminal window
  • git clone https://github.com/daniestevez/satellite-recordings.git
  • close terminal

When trying different decoder, remember to select the appropriate WAV file in gr-satellite-recordings from within the wav file source block.