Ubuntu - Client Installation

From SatNOGS Wiki

This guide will enable you to install SatNOGS client on an Ubuntu 20.04 environment. It has been tested on PC, laptop, and Virtual Machines, all with success. Information is currently being added and announcement will be made when complete. It has been broken down into logical steps that will help allow for any troubleshooting should it be required.

Don't let the long contents fool you. It's not a complicated process and in fact be a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.

Installing SatNOGS on Ubuntu 20.04 - PC

Information is currently being added to this page. This warning will be removed when completed.

This guide is incomplete.

Installation information for gr-satnogs on Ubuntu 20.04

Do not add any repo for GNU Radio. It is not the required version and will cause errors.

sudo apt-get update
sudo apt-get upgrade -y

sudo apt-get --purge remove snapd -y

Install required software packages

sudo apt install -y \
      libboost-dev \
      libitpp-dev \
      libboost-date-time-dev \
      libboost-filesystem-dev \
      libboost-program-options-dev \
      libboost-system-dev \
      libboost-thread-dev \
      libboost-regex-dev \
      libboost-test-dev \
      swig \
      cmake \
      build-essential \
      pkg-config \
      gnuradio-dev \
      libconfig++-dev \
      libgmp-dev \
      liborc-0.4-0 \
      liborc-0.4-dev \
      liborc-0.4-dev-bin \
      nlohmann-json3-dev \
      libpng++-dev \
      libvorbis-dev \
      git \

Install from source

cd ~
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git
cd gr-satnogs
mkdir build
cd build
cmake ..
sudo make install
cd ~

If this is the first time you are building the gr-satnogs module, run:

sudo ldconfig

Installation information for Soapy SDR and Device on Ubuntu 20.04

Install required software packages

sudo apt-get update
sudo apt-get install rtl-sdr librtlsdr-dev -y

sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y

Installation information for gr-soapy on Ubuntu 20.04

Install from source

cd ~
git clone https://gitlab.com/librespacefoundation/gr-soapy
cd gr-soapy
mkdir build
cd build
cmake ..
sudo make install
sudo ldconfig
cd ~

Installation information for satnogs-flowgraphs on Ubuntu 20.04

Set & configure PYTHONPATH environment setting

Edit bashrc

sudo nano ~/.bashrc

Add the following to your .bashrc. This will make sure that every time you login the variable will be set.

export PYTHONPATH=/usr/local/lib/python3/dist-packages

If you do not re-login after adding to .bashrc then run the following (same) command in the current session.

export PYTHONPATH=/usr/local/lib/python3/dist-packages

Installation from source

cd ~
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git
cd satnogs-flowgraphs
mkdir build
cd build
cmake ..
sudo make install

Configuration information for SatNOGS user on Ubuntu 20.04

Add SatNOGS user

sudo useradd -c "SatNOGS-client" -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs

Create the satnogs python virtual environent

Install the required packages.

sudo apt-get install python3.8-venv virtualenv python3-pip -y


sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs

Start a SatNOGS user bash and activate the virual environment

sudo -H -u satnogs bash source /var/lib/satnogs/bin/activate pip install satnogs-client

Exit the bash


cd /tmp sudo mkdir -p .satnogs/data/incomplete sudo chown -R satnogs:satnogs .satnogs

Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04

Create the satnogs-client environment file, make sure the PYTHONPATH is also in there (this is not normally done).

We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)

sudo nano /etc/default/satnogs-client

Here you will need to add your station information. The setup command does not run to configure this through an interface.


Configure System Services

Device Blacklisting

code goes here