Best way to set up/change SatNogs on Ubuntu machine

Hello guys!

I have been using gr-sattelites along with a Gpredict for satellite decoding past several months. I would like to try to schedule some observations with SatNogs and make it a little bit more automatic. My system is Ubuntu 18.04, rotator Yaesu-G5500 and USRP SDR.

I have made some research about SatNogs and Ubuntu. The results are that it is not a very common setup and it is not well documented or recommended. I don’t have a Raspberry either. I have tried to set up some dependencies as gr-satnogs, soapy, SatNogs Client and SatNogs Network. But debugging is quite challenging and after that always comes another error message.

So what would you recommend in this situation? Probably the easiest solution would be to buy raspberry 3 or 4 and then reinstall Ubuntu to Debian.
Is it possible to control rotator and observations just by using a Desktop PC (not using raspberry at all) connected directly to the SDR and rotator? Or raspberry is a must as a control unit.

I would be very grateful for any advice about the system and equipment, it will determine my future steps.

Best regards,
Dominik

There is some documentation in the wiki (I believe) for installing the client on a debian machine… have you tried those? Ubuntu is related to Debian, so it should be doable, I think…

Hi @Dom3,

I think that the best way to install all the needed components for SatNOGS is through the ansible script. You can use the steps from Debian that can be found here however it may need some changes or additions, so this means errors and debugging.

Another solution would be to install all the needed projects by hand but this could be pretty complicated for finding all the dependencies.

In general RPi is not necessary for controlling your SDR and your rotator, but as the reference device is suggested and supported.

Installing on Ubuntu, or on other versions of Debian (like testing) would be interesting, but there is no support for that. The satnogs-client-ansible has code that checks the distribution (currently just Debian and Raspbian) in this main.yml file. That logic is used to setup some repositories to further download dependencies like satnogs-flowgraphs, gnuradio, gr-soapy, gr-satnogs … So using the ansible way, for sure, will not work in Ubuntu, and if you tweak that, no garantee things work: would be the satnogs debian repository appropriate for Ubuntu ?

Ubuntu provides many dependencies in some repositories (at least gnuradio and probably, soapy). But satnogs-flowgraphs, gr-satnogs, and maybe others related will probably have to be compiled and installed manually in the Ubuntu system. Once those dependencies are installed, then satnogs-client would be installed on top.

So, from my view, I think that the satnogs-client installation would be better carried out manually in Ubuntu, including dependencies up to gr-satnogs.

1 Like

Thank you @fredy and @pleira for a good expectation about Debian and Ubuntu. I thought that it is possible to follow instructions for Debian because after all Ubuntu is based on it and I run into the problem, which you mentioned about satnogs-client-ansible.

I guess that I will try to manually install all dependencies from Gitlab. My only concern is about satnogs-client, which would be installed at least.

Anyway, I will keep track of all the commands I use and even if I will not be successful it can help someone else in future. Dependencies like gr-satnogs,gr-soapy, flowgraphs were pretty straight forward to install. I found a problem in Satnogs-Network so I hope it is possible to get through it, if not Debian is always an option.

SatNOGS Network is needed only if you want to setup your own Network. If you want just to setup the client then satnogs-client, gr-satnogs, gr-soapy, satnogs-flowgraphs and their dependencies are all you will need.

1 Like

I found a problem in satnogs-flowgraphs, which I cannot pass through. I installed manually all dependencies, which are mentioned. after cmake … Following errors occurs:

Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (found suitable version “3.6.9”, minimum required is “3”)
– Checking for module ‘gmp’
– No package ‘gmp’ found
– Checking for module ‘mpir >= 3.0’
– No package ‘mpir’ found
– Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR)
– User set python executable /usr/bin/python3.6
– Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (found suitable exact version “3.6.9”)
– Checking for module ‘soapy’
– No package ‘soapy’ found
– Checking for module ‘satnogs’
– No package ‘satnogs’ found
– Configuring done
– Generating done

Problem with modules gmp and mpir is caused by gr-gsm, which is not ready yet for gnu radio 3.8. It shouldn’t be mandatory.

Both modules for soapy and satnogs has been installed, in GNU radio they are functional. But cmake command doesn’t see them in the system. I tried to install soapy via Synaptic and terminal, but even after that problem still remains. Did I miss something?

@surligas and @Acinonyx, do you mind to take a look at this? Maybe it will look familiar to you. Any advice is appreciated.

You have installed them manually or using the packages?

For soapy there are packages and I installed them after manual installation. For satnogs there are none, so only manual option.

The satnogs-flowgraphs use the CMake config files installed by the gr-soapy and gr-satnogs in order to find out if these modules are installed. Probably the CMake cannot spot these files (satnogsConfig.cmake and soapyConfig.cmake). Did you used a custom installation path?

I installed Cmake from source, to achieve the acquired version. So I assume some environment command is needed to set the new destination folder of CMake.

If GNU Radio finds the gr-soapy and gr-satnogs blocks, you can skip the CMake check by commenting the lines:

find_package(soapy REQUIRED)
find_package(satnogs REQUIRED)

Here goes a description on how to produce locally the gr-satnogs debian package.
First, in a Satnogs installation, check the dependencies needed:

apt-cache depends gr-satnogs
apt-cache depends libgnuradio-satnogs
apt-cache policy gr-satnogs
apt-cache policy libgnuradio-satnogs

As recent package dependencies are needed, a few repositories need to be there for Ubuntu 18.04.
like the bionic-updates to the sources.list or other development libraries:

sudo echo "deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates main universe multiverse" >> /etc/apt/sources.list
sudo add-apt-repository ppa:team-xbmc/ppa 
sudo apt install nlohmann-json3-dev

The recipe below for building the debian package comes from the gitlab build file
librespacefoundation/satnogs/gr-satnogs/-/blob/master/.gitlab-ci.yml

cd gr-satnogs
git pull
sudo mk-build-deps -i -r -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y"
sudo apt-get -qy install gnupg libcurl4 git
sudo apt-get -qy install devscripts git-buildpackage
sudo mk-build-deps -i -r -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y"
PACKAGE_VERSION="${PACKAGE_VERSION:-$(git describe --abbrev=8 2>/dev/null | tr '-' '+' || true)}"
PACKAGE_VERSION="${PACKAGE_VERSION#v}"
echo $PACKAGE_VERSION
dch -b -M -v "${PACKAGE_VERSION}-1" "Bump to version '${PACKAGE_VERSION}-1'" 
echo $PACKAGE_VERSION
dch -r -m ""  
sed -i '/0001-remove-git-maint-version.patch/ d' debian/patches/series
cat debian/patches/series
debuild --unsigned-source --unsigned-changes --build=binary 

The final lintian state will complain about no-copyright-file, but debs got produced:

~/lsf/gr-satnogs (master *)$ ls -lh ../*deb
-rw-r--r-- 1 pl pl 2,9M Apr 19 22:54 ../gr-satnogs_2.1.4-1_amd64.deb
-rw-r--r-- 1 pl pl 2,8M Apr 19 22:54 ../gr-satnogs-dbgsym_2.1.4-1_amd64.ddeb
-rw-r--r-- 1 pl pl 210K Apr 19 22:54 ../libgnuradio-satnogs_2.1.4-1_amd64.deb
-rw-r--r-- 1 pl pl 6,9M Apr 19 22:54 ../libgnuradio-satnogs-dbgsym_2.1.4-1_amd64.ddeb

That would allow to install gr-satnogs locally, and then, as suggested, proceed in a similar way with satnogs-flowgraphs and satnogs-client. For gr-soapy, it can be found at PothosCore PPA external repository.

4 Likes