Installing SatNogs client on Ubuntu PC

Hello SatNogs community,

I am running two SatNogs non-rotating stations on Raspberries successfully.

Now, I want to go the next step and install a station with a rotator. The SatNogs client should then run on a normal Linux PC (here a Dell blade computer).

I do not succeed to install it though:
1-the ansible installation method is known to break (according to the instruction site):
wiki satnogs org/SatNOGS_Client_Ansible
2-installing on ubuntu 16 does not work due to a broken link (mentioned on the website)
wiki satnogs org/Linux_Desktop
3-installing on ubuntu 20 breaks on GrSwig breaks too. This seems to be a known problem. Also the site says that the installations instructions are incomplete:
wiki satnogs org/Ubuntu_-_Client_Installation

I think it would be important for SatNogs if it can be used from a normal Linux PC as people like me want to use their ground station for SatNogs and for other purposes without changing cabling. SatNogs may get many more rotating ground stations then.

So may I ask: how did you install SatNogs on a normal linux PC?

Cheers. Jan

1 Like

One issue is the current image is based on Debian Buster, version 10, aka “oldstable”. AFAICT they need to get some other bits updated before they can get everything working under Debian stable/11.

I haven’t done it, but I’m guessing if you do a Debian Buster/10 install on your PC, you’ll have better luck than using Ubuntu.

This approach is not recommended, as it means updates will have to be manual, but I am using Ubuntu 20.04LTS and run two stations and installed gr-satnogs, satnogs-flowgraphs, satnogs-client and their dependencies manually.

When configuring the stations, make sure that:

  • the SATNOGS_SOAPY_RX_DEVICE can differentiate between SDRs. For rtlsdr, this is done through serial numbers ("driver=rtlsdr,serial=14500")
  • the SATNOGS_ROT_PORT and SATNOG_RIG_PORT use different ports between stations.
2 Likes

Thank you Jebba and cgbbsat,

Re: jebba. Moving to Debian would be my last resort. Since, I will be using my station within a university for education, I prefer to more commonly understood Ubuntu. But let’s see.

Re, cgbsat: it is great to hear that it should work. FYI: I followed these instructions:
https://wiki.satnogs.org/Ubuntu_-_Client_Installation
I think it helps to install package by package as you suggest. However, upon “cmake …” the gr-satnogs , it breaks due to the missing GrSwig. Manually installing swig did not help (I guess because swig != GrSwig). It may not be a big thing.

Do you remember by chance whether you had a GrSwig problem and how did you solve it?

Cheers. Jan

It is possible but one needs to be an experienced Unix user and source installer, compiler.

Here information from my install: Ubuntu SatNOGS client install log

If this is just to get some experience and not your main satnogs-client then this is fine, otherwise go for the Raspberrie Pi or the Debian amd64 Old stable/Buster install.

1 Like

Thank you PE0SAT,

I am afraid this procedure breaks also due to the GrSwig problem at cmake

git clone librespacefoundation / gr-soapy · GitLab
cd gr-soapy
mkdir build
cd build
cmake .

with the message:

[…]
CMake Error at swig/CMakeLists.txt:37 (include):
include could not find load file:
GrSwig
CMake Error at swig/CMakeLists.txt:54 (GR_SWIG_MAKE):
Unknown CMake command “GR_SWIG_MAKE”.
– Configuring incomplete, errors occurred!
[…]

Googling the error message only reveals that others have that problem too, but I find no solution.

I ll see what I will do.

Have a good evening. Jan

I see in Debian that gnuradio-dev stopped including swig files in Debian bookworm/testing, which is using gnuradio version 3.10. Versions 3.8 and older include swig directories in the Debian build. Ubuntu is built from Debian, but I don’t know which versions it inherits. For example, you can search for “swig” and see it disappeared:

Debian 10 oldstable/buster (same as SatNOGS Raspberry Pi image), gnuradio 3.7:

Debian 11 stable/bullseye, gnuradio 3.8:

Debian 12 testing/bookworm, gnuradio 3.10:

I did see mention in another ticket that they just recompiled gnuradio with python enabled, but I’m not sure if that is the issue here or not.

So we are missing GrSwig, it should be part of the repository.

Lets see if something swig related is installed and or available.

search installed packages:

sudo dpkg -l | grep swig

Search the repository:

sudo apt-update && sudo apt-cache search swig

At the end we will get this working, but there is a big change that the first possible Ubuntu upgrade and or SatNOGS it will break again and all the debugging starts again.

Hello PE0SAT,

thank you!

So, I did:

sudo dpkg -l | grep swig
it gives me this:

sudo dpkg -l | grep swig
ii swig 4.0.1-5build1 all Generate scripting interfaces to C/C++ code
ii swig3.0 3.0.12-2.2ubuntu1 amd64 Generate scripting interfaces to C/C++ code
ii swig4.0 4.0.1-5build1 amd64 Generate scripting interfaces to C/C++ code

and
sudo apt update && sudo apt-cache search swig
gives me this:

Hit:1 fr.archive.ubuntu.com / ubuntu.lafibre.info focal InRelease
Hit:2 fr.archive.ubuntu.com / ubuntu.lafibre.info focal-updates InRelease
Hit:3 Index of /daniestevez/gr-satellites/ubuntu focal InRelease
Hit:4 fr.archive.ubuntu.com / ubuntu.lafibre.info focal-backports InRelease
Hit:5 Index of /gnuradio/gnuradio-releases-3.8/ubuntu focal InRelease
Hit:6 Index of /ubuntu focal-security InRelease
Reading package lists… Done
Building dependency tree
Reading state information… Done
All packages are up to date.
libapparmor-perl - AppArmor library Perl bindings
python3-libapparmor - AppArmor library Python3 bindings
gdcm-doc - Grassroots DICOM documentation
libgdcm-cil - Grassroots DICOM CLI bindings
libgdcm-dev - Grassroots DICOM development libraries and headers
libgdcm-java - Grassroots DICOM Java bindings
libgdcm-tools - Grassroots DICOM tools and utilities
libgdcm3.0 - Grassroots DICOM runtime libraries
libinline-perl - module for producing simple Foreign Function Interfaces
libjnr-ffi-java - Java library for loading native libraries without writing JNI code
libjnr-ffi-java-doc - Documentation for libjnr-ffi-java
libkml-dev - Library to manipulate KML 2.2 OGC standard files - development files
libkmlbase1 - Library to manipulate KML 2.2 OGC standard files - libkmlbase
libkmlconvenience1 - Library to manipulate KML 2.2 OGC standard files - libkmlconvenience
libkmldom1 - Library to manipulate KML 2.2 OGC standard files - libkmldom
libkmlengine1 - Library to manipulate KML 2.2 OGC standard files - libkmlengine
libkmlregionator1 - Library to manipulate KML 2.2 OGC standard files - libkmlregionator
libkmlxsd1 - Library to manipulate KML 2.2 OGC standard files - libkmlxsd
libmath-gsl-perl - interface to the GNU Scientific Library using SWIG
libow-perl - Dallas 1-wire support: Perl5 bindings
libow-php7 - Dallas 1-wire support: PHP5 bindings
libtext-bidi-perl - Unicode bidi algorithm for Perl using libfribidi
libvtkgdcm-cil - Grassroots DICOM VTK CLI bindings
libvtkgdcm-dev - Grassroots DICOM VTK development libraries and headers
libvtkgdcm-java - Grassroots DICOM VTK Java bindings
libvtkgdcm-tools - Grassroots DICOM VTK tools and utilities
libvtkgdcm3.0 - Grassroots DICOM VTK runtime libraries
libyang-cpp-dev - parser toolkit for IETF YANG data modeling - C++ development files
libyang-cpp0.16 - parser toolkit for IETF YANG data modeling - C++ runtime
makepp - GNU make compatible but reliable and simpler build tool
mwrap - Octave/MATLAB mex generator
php-mapscript-ng - PHP MapServer module (SWIG)
python-ariapy - C++ library for MobileRobots/ActivMedia robots (Python bindings)
python-gphoto2-doc - Python interface to libgphoto2 (common documentation)
python-sip - Python/C++ bindings generator runtime library
python-sip-dbg - Python/C++ bindings generator runtime library (debug extension)
python-sip-dev - Python/C++ bindings generator development files
python-sip-doc - Python/C++ bindings generator documentation
python-wxgtk3.0-dev - Development files for wxPython
python3-gdcm - Grassroots DICOM Python bindings
python3-gphoto2 - Python interface to libgphoto2 (Python 3)
python3-pykcs11 - PKCS#11 wrapper for Python
python3-sip - Python 3/C++ bindings generator runtime library
python3-sip-dbg - Python 3/C++ bindings generator runtime library (debug extension)
python3-sip-dev - Python 3/C++ bindings generator development files
python3-swiglpk - Plain Python bindings for the GNU Linear Programming Kit (Python 3)
python3-vtkgdcm - Grassroots DICOM VTK/Python bindings
python3-yang - parser toolkit for IETF YANG data modeling - python3 support
sip-dev - Python/C++ bindings generator code generator application
swig - Generate scripting interfaces to C/C++ code
swig-doc - HTML documentation for SWIG
swig-examples - Examples for applications of SWIG
swig-sphinxbase - Speech recognition tool - swig helpers
swig3.0 - Generate scripting interfaces to C/C++ code
swig3.0-doc - HTML documentation for SWIG
swig3.0-examples - Examples for applications of SWIG
swig4.0 - Generate scripting interfaces to C/C++ code
swig4.0-doc - HTML documentation for SWIG
swig4.0-examples - Examples for applications of SWIG
valabind - converts vapi files to SWIG, C++, GIR or GEAR files

So, swig is definitely installed. I removed it and reinstalled both swig3.0 and swig4.0 but the cmake keeps on breaking on GrSwig. My GnuRadio version is 3.10. I removed it and installed version 3.8. But I had no luck. The same problem persists.

I think the missing point is: when should GrSwig have been installed. If you have a clue, please let me know. If it is too much effort, I can give this up, but I think it would great to have SatNogs running on a popular linux distribution.

Cheers. Jan

I am currently building an Ubuntu 22.04 server install and I will let you know what is happening.

So swig is removed from gnuradio 3.9 and higher.

I am using 22.04 at the moment and that comes with gnuradio 3.10 and has no longer gr-swig support.
So we are going down the rabbit hole when trying to get this to work on a non supported OS.

Install Ubuntu focal and is should all be working again, so my installation log has a hard dependency with Ubuntu 20.04/Focal

Lets see if that will work.

Downloading Ubuntu Focal/20.04 server iso as we speak.

Hello PE0SAT,

Thanks a lot for all your help and explanation.

I started the thread without detailed technical information. I am somewhat agnostic to what Ubuntu version we use. I prefer Ubuntu over other distributions as I need to keep things simple. Not only I will use the station. Ubuntu is popular. I tried 18 and currently I am trying 20.4. I tried several gnuradio versions and several swig versions.

From your last post I understand: if I use your install log on 20.4 it should work.
Unfortunately, it does not: I cannot overcome the GrSwig problem. Maybe something very small.

But, installing on Ubuntu 22 would just work for me and I think for many others too. It might be a longer-term solution.

Cheers. Jan

As I mentioned before, Ubuntu isn’t officially supported and if you want a long term solution don’t go this path.

Currently all stable SatNOGS clients depend on Debian old stable (buster) there is development being done to move forward to bullseye but this takes a lot of effort.

So when you want to run it on another OS/distribution you will be confronted with these kind of challenges and isn’t the best way to have a stable running satnogs client.

I am currently creating a snapshot and after that I will test the Focal SatNOGS client install.

Hello PE0SAT,

its appreciated.

If it does not work out for you or causes you too much work, I will change do Debian.

Cheers. Jan

1 Like

After executing all the steps as described in stil file Ubuntu 20.04 Focal SatNOGS client install I have a running client on Ubuntu 20.04 Focal.

systemctl status satnogs-client

● satnogs-client.service - SatNOGS client
     Loaded: loaded (/etc/systemd/system/satnogs-client.service; enabled; vendo>
     Active: active (running) since Sat 2022-06-18 15:54:14 UTC; 5min ago
   Main PID: 1069 (satnogs-client)
      Tasks: 4 (limit: 2273)
     Memory: 49.8M
     CGroup: /system.slice/satnogs-client.service
             └─1069 /var/lib/satnogs/bin/python /var/lib/satnogs/bin/satnogs-cl>

Jun 18 15:54:14 gs-ubuntu systemd[1]: Started SatNOGS client.

Created observation (no antenna connected) and looking at the output, there is an error with this RTL-SDR or a Virtualbox pass-through.

Show satnogs-client logs

sudo journalctl -f -u satnogs-client -n 512

Jun 18 15:52:03 gs-ubuntu systemd[1]: Started SatNOGS client.
Jun 18 15:54:14 gs-ubuntu systemd[1]: Stopping SatNOGS client...
Jun 18 15:54:14 gs-ubuntu systemd[1]: satnogs-client.service: Succeeded.
Jun 18 15:54:14 gs-ubuntu systemd[1]: Stopped SatNOGS client.
Jun 18 15:54:14 gs-ubuntu systemd[1]: Started SatNOGS client.
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_init called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: dummy: _init called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_register (1)
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_register (2)
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: dummy_rot_init called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_open called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: dummy_rot_open called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_get_position called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: dummy_rot_get_position called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: rot_set_position called
Jun 18 16:27:56 gs-ubuntu satnogs-client[1024]: dummy_rot_set_position called: 70.81 15.01
Jun 18 16:27:59 gs-ubuntu satnogs-client[1084]: Found Rafael Micro R820T tuner
Jun 18 16:28:00 gs-ubuntu satnogs-client[1084]: Found Rafael Micro R820T tuner
Jun 18 16:28:00 gs-ubuntu satnogs-client[1084]: [R82XX] PLL not locked!
Jun 18 16:28:00 gs-ubuntu satnogs-client[1084]: [INFO] Using format CF32.
Jun 18 16:28:01 gs-ubuntu satnogs-client[1084]: /var/lib/satnogs/.gnuradio/prefs/vmcircbuf_default_factory: No such file or directory
Jun 18 16:28:01 gs-ubuntu satnogs-client[1084]: vmcircbuf_createfilemapping: createfilemapping is not available
Jun 18 16:28:01 gs-ubuntu satnogs-client[1084]: Allocating 15 zero-copy buffers

And again after solving some unexpected issues we got it running, so yes it is possible, but don’t use this for a stable production setup.

Please do, follow the Debian ansible install.

Here another obs and now without RTL-SDR problems.
Still no antenna connected so no signals to decode.

Hello PE0Sat,

for some unknown reason, Buster did not install on my Dell PowerEdges, but BullsEye did. As expected, the Ansible script does not work.

So, my third SatNogs station will wait a bit.

Thanks a lot for your help!

Cheers. Jan

1 Like

Maybe if you share the error I can help you.

I guess this has to do with “drivers” that are closed source and therefor not available during a default install.

It is possible to add a main contrib non-free packages during the install.

If Bullseye didn’t need the firmware, Buster probably doesn’t either. It’s more likely a driver isn’t in that old of a kernel. That said, the actual error would reveal a lot, and perhaps could be worked around.