-
-
Notifications
You must be signed in to change notification settings - Fork 168
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
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.
-
For further information https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux
-
pip is not installed by default
-
we want pip3
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!
-
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
-
You may prefer more limited logging messages.
-
You may edit the file /usr/local/etc/gnuradio/conf/gnuradio-runtime.conf as desired, example below.
-
[LOG]
-
Levels can be (case insensitive):
-
DEBUG, INFO, WARN, TRACE, ERROR, ALERT, CRIT, FATAL, EMERG
-
log_level = warn
-
debug_level = emer
-
<see https://www.gnuradio.org/doc/doxygen/page_logger.html for more information>
-
If desired, a version of gr-osmosdr for GNUradio3.8 is here
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.