<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brettjburford</id>
	<title>SatNOGS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.satnogs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brettjburford"/>
	<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/Special:Contributions/Brettjburford"/>
	<updated>2026-04-20T11:31:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3877</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3877"/>
		<updated>2022-11-20T05:16:29Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;[[File:Ubuntu.png|alt=|532x532px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SatNOGS Monitor Setup Script==&lt;br /&gt;
After all of that, here's a bash script to setup SatNOGS monitor.  It's great to see your laptop come to life!&lt;br /&gt;
&lt;br /&gt;
Create this script with nano (or vi), ensure you have permissions to execute and install.&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libglib2.0-dev cmake build-essential git -y&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/cubehub/libgpredict.git&lt;br /&gt;
cd libgpredict&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ../&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/wose/satnogs-monitor/releases/download/0.4.1/satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
sudo dpkg -i satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;To run in the most visually appealing way, run this replacing '175' with your station ID:&amp;lt;pre&amp;gt;&lt;br /&gt;
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum&lt;br /&gt;
&amp;lt;/pre&amp;gt;Reference: [[SatNOGS Monitor]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3876</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3876"/>
		<updated>2022-11-20T05:15:49Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ubuntu.png|alt=|right|459x459px]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SatNOGS Monitor Setup Script==&lt;br /&gt;
After all of that, here's a bash script to setup SatNOGS monitor.  It's great to see your laptop come to life!&lt;br /&gt;
&lt;br /&gt;
Create this script with nano (or vi), ensure you have permissions to execute and install.&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libglib2.0-dev cmake build-essential git -y&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/cubehub/libgpredict.git&lt;br /&gt;
cd libgpredict&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ../&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/wose/satnogs-monitor/releases/download/0.4.1/satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
sudo dpkg -i satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;To run in the most visually appealing way, run this replacing '175' with your station ID:&amp;lt;pre&amp;gt;&lt;br /&gt;
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum&lt;br /&gt;
&amp;lt;/pre&amp;gt;Reference: [[SatNOGS Monitor]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3875</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3875"/>
		<updated>2022-11-20T05:14:34Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Ubuntu.png|667x667px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SatNOGS Monitor Setup Script==&lt;br /&gt;
After all of that, here's a bash script to setup SatNOGS monitor.  It's great to see your laptop come to life!&lt;br /&gt;
&lt;br /&gt;
Create this script with nano (or vi), ensure you have permissions to execute and install.&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libglib2.0-dev cmake build-essential git -y&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/cubehub/libgpredict.git&lt;br /&gt;
cd libgpredict&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ../&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/wose/satnogs-monitor/releases/download/0.4.1/satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
sudo dpkg -i satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;To run in the most visually appealing way, run this replacing '175' with your station ID:&amp;lt;pre&amp;gt;&lt;br /&gt;
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum&lt;br /&gt;
&amp;lt;/pre&amp;gt;Reference: [[SatNOGS Monitor]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3874</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3874"/>
		<updated>2022-11-20T05:12:35Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Ubuntu.png|thumb|Ubuntu 20.04 SatNOGS Client with Monitor]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SatNOGS Monitor Setup Script==&lt;br /&gt;
After all of that, here's a bash script to setup SatNOGS monitor.  It's great to see your laptop come to life!&lt;br /&gt;
&lt;br /&gt;
Create this script with nano (or vi), ensure you have permissions to execute and install.&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libglib2.0-dev cmake build-essential git -y&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/cubehub/libgpredict.git&lt;br /&gt;
cd libgpredict&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ../&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/wose/satnogs-monitor/releases/download/0.4.1/satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
sudo dpkg -i satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;To run in the most visually appealing way, run this replacing '175' with your station ID:&amp;lt;pre&amp;gt;&lt;br /&gt;
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum&lt;br /&gt;
&amp;lt;/pre&amp;gt;Reference: [[SatNOGS Monitor]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=File:Ubuntu.png&amp;diff=3873</id>
		<title>File:Ubuntu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=File:Ubuntu.png&amp;diff=3873"/>
		<updated>2022-11-20T05:11:20Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SatNOGS Client - Monitor - on Ubuntu 20.04&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3872</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3872"/>
		<updated>2022-11-20T04:12:21Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SatNOGS Monitor Setup Script ==&lt;br /&gt;
After all of that, here's a bash script to setup SatNOGS monitor.  It's great to see your laptop come to life!&lt;br /&gt;
&lt;br /&gt;
Create this script with nano (or vi), ensure you have permissions to execute and install.&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libglib2.0-dev cmake build-essential git -y&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://github.com/cubehub/libgpredict.git&lt;br /&gt;
cd libgpredict&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ../&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/wose/satnogs-monitor/releases/download/0.4.1/satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
sudo dpkg -i satnogs-monitor_0.4.1_amd64.deb&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;To run in the most visually appealing way, run this replacing '175' with your station ID:&amp;lt;pre&amp;gt;&lt;br /&gt;
satnogs-monitor -l 175 --data-path /tmp/.satnogs/data/ --waterfall --spectrum&lt;br /&gt;
&amp;lt;/pre&amp;gt;Reference: [[SatNOGS Monitor]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3871</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3871"/>
		<updated>2022-11-20T03:43:39Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: /* Create RTL-SDR blacklisting on Ubuntu 20.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3870</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3870"/>
		<updated>2022-11-20T03:42:52Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3869</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3869"/>
		<updated>2022-11-20T03:36:36Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3868</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3868"/>
		<updated>2022-11-20T03:35:01Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
===Create RTL-SDR blacklisting on Ubuntu 20.04===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RTL-SDR udev configuration===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
# # Copyright 2012-2013 Osmocom rtl-sdr project # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;. # # original RTL2832U vid/pid (hama nano, for example) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc. SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # DigitalNow Quad DVB-T PCI-E card (4x FC0012?) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Leadtek WinFast DTV Dongle mini D (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Genius TVGo DVB-T03 USB dongle (Ver. B) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec Cinergy T Stick Black (rev 1) (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec NOXON rev 1 (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec Deutschlandradio DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec NOXON DAB Stick - Radio Energy (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec Media Broadcast DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec BR DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec WDR DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec MuellerVerlag DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec Fraunhofer DAB Stick (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec Cinergy T Stick RC (Rev.3) (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec T Stick PLUS (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Terratec NOXON rev 2 (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # PixelView PV-DT235U(RN) (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Astrometa DVB-T/DVB-T2 (R828D) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Compro Videomate U620F (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Compro Videomate U650F (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Compro Videomate U680F (E4000) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # GIGABYTE GT-U7300 (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # DIKOM USB-DVBT HD SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Peak 102569AGPK (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Zaapa ZT-MINDVBZP (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Twintech UT-40 (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # ASUS U3100MINI_PLUS_V2 (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # SVEON STV21 DVB-T USB &amp;amp; FM SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Dexatek DK 5217 DVB-T Dongle (FC2580) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # MSI DigiVox Micro HD (FC2580) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Sweex DVB-T USB (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # GTek T803 (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # Lifeview LV5TDeluxe (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # MyGica TD312 (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot; # PROlectrix DV107669 (FC0012) SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 # Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
 #&lt;br /&gt;
 # This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 # it under the terms of the GNU General Public License as published by&lt;br /&gt;
 # the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 # (at your option) any later version.&lt;br /&gt;
 #&lt;br /&gt;
 # This program is distributed in the hope that it will be useful,&lt;br /&gt;
 # but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 # GNU General Public License for more details.&lt;br /&gt;
 #&lt;br /&gt;
 # You should have received a copy of the GNU General Public License&lt;br /&gt;
 # along with this program.  If not, see &amp;lt;&amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/&amp;lt;/nowiki&amp;gt;&amp;gt;.&lt;br /&gt;
 #&lt;br /&gt;
 # original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec BR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec T Stick PLUS (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Terratec NOXON rev 2 (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U620F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U650F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Compro Videomate U680F (E4000)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # DIKOM USB-DVBT HD&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Peak 102569AGPK (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Twintech UT-40 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Sweex DVB-T USB (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # GTek T803 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # MyGica TD312 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 # PROlectrix DV107669 (FC0012)&lt;br /&gt;
 SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3867</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3867"/>
		<updated>2022-11-20T03:28:42Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: /* Installing SatNOGS on Ubuntu 20.04 - PC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Don't let the long contents fool you.  It's not a complicated process and in fact is a great way for new SatNOGS users to experience SatNOGS from their own PC or laptop.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''This guide is currently being tested'''&lt;br /&gt;
Please feel free to test the instructions below, and submit any feedback whether it be to help clarify or fix any errors.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
===Create systemd service file on Ubuntu 20.04===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===hamlib, rigctld and rotctld===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reload systemd daemon===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
=== Create RTL-SDR blacklisting on Ubuntu 20.04 ===&lt;br /&gt;
Create blacklist configuration (you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
blacklist dvb_usb_rtl28xxu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RTL-SDR udev configuration ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/udev/rules.d/54-rtlsdr.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Copyright 2012-2013 Osmocom rtl-sdr project&lt;br /&gt;
#&lt;br /&gt;
# This program is free software: you can redistribute it and/or modify&lt;br /&gt;
# it under the terms of the GNU General Public License as published by&lt;br /&gt;
# the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
# (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
# This program is distributed in the hope that it will be useful,&lt;br /&gt;
# but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
# GNU General Public License for more details.&lt;br /&gt;
#&lt;br /&gt;
# You should have received a copy of the GNU General Public License&lt;br /&gt;
# along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;br /&gt;
#&lt;br /&gt;
# original RTL2832U vid/pid (hama nano, for example)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2832&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0bda&amp;quot;, ATTRS{idProduct}==&amp;quot;2838&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# DigitalNow Quad DVB-T PCI-E card (4x FC0012?)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Leadtek WinFast DTV Dongle mini D (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0413&amp;quot;, ATTRS{idProduct}==&amp;quot;6f0f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Genius TVGo DVB-T03 USB dongle (Ver. B)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0458&amp;quot;, ATTRS{idProduct}==&amp;quot;707f&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec Cinergy T Stick Black (rev 1) (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00a9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec NOXON rev 1 (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec Deutschlandradio DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec NOXON DAB Stick - Radio Energy (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b5&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec Media Broadcast DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec BR DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec WDR DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00b9&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec MuellerVerlag DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec Fraunhofer DAB Stick (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00c6&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec Cinergy T Stick RC (Rev.3) (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d3&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec T Stick PLUS (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00d7&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Terratec NOXON rev 2 (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0ccd&amp;quot;, ATTRS{idProduct}==&amp;quot;00e0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# PixelView PV-DT235U(RN) (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1554&amp;quot;, ATTRS{idProduct}==&amp;quot;5020&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Astrometa DVB-T/DVB-T2 (R828D)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;15f4&amp;quot;, ATTRS{idProduct}==&amp;quot;0131&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Compro Videomate U620F (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0620&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Compro Videomate U650F (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0650&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Compro Videomate U680F (E4000)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;185b&amp;quot;, ATTRS{idProduct}==&amp;quot;0680&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# GIGABYTE GT-U7300 (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d393&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# DIKOM USB-DVBT HD&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d394&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Peak 102569AGPK (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d395&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d397&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Zaapa ZT-MINDVBZP (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d398&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# SVEON STV20 DVB-T USB &amp;amp; FM (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d39d&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Twintech UT-40 (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a4&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# ASUS U3100MINI_PLUS_V2 (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3a8&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# SVEON STV27 DVB-T USB &amp;amp; FM (FC0013)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3af&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# SVEON STV21 DVB-T USB &amp;amp; FM&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1b80&amp;quot;, ATTRS{idProduct}==&amp;quot;d3b0&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1101&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1102&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Dexatek DK 5217 DVB-T Dongle (FC2580)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1103&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# MSI DigiVox Micro HD (FC2580)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1d19&amp;quot;, ATTRS{idProduct}==&amp;quot;1104&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Sweex DVB-T USB (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;a803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# GTek T803 (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;b803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# Lifeview LV5TDeluxe (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;c803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# MyGica TD312 (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d286&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
# PROlectrix DV107669 (FC0012)&lt;br /&gt;
SUBSYSTEMS==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;1f4d&amp;quot;, ATTRS{idProduct}==&amp;quot;d803&amp;quot;, MODE:=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Udev reload without reboot&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules &amp;amp;&amp;amp; sudo udevadm trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;Volk Profile&amp;lt;pre&amp;gt;&lt;br /&gt;
volk_profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3866</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3866"/>
		<updated>2022-11-20T03:20:28Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: Added system services configuration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
=== Create systemd service file on Ubuntu 20.04 ===&lt;br /&gt;
Create file using nano (you can use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=SatNOGS client&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/satnogs-client&lt;br /&gt;
ExecStart=/var/lib/satnogs/bin/satnogs-client&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hamlib, rigctld and rotctld ===&lt;br /&gt;
There is also a dependency with hamlib, rigctld and rotctld, so we also need to add its environment file and the systemd services file.&lt;br /&gt;
&lt;br /&gt;
Install hamlib-utils&lt;br /&gt;
 sudo apt-get install python3-libhamlib2 libhamlib-utils&lt;br /&gt;
Edit hamlib-utils&lt;br /&gt;
 sudo nano /etc/default/hamlib-utils&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
ROT_OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
RIG_OPTS=&amp;quot;-T 127.0.0.1 -m 1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rigctld.service&lt;br /&gt;
 sudo nano /etc/systemd/system/rigctld.service&lt;br /&gt;
Add the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rigctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rigctld $RIG_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/systemd/system/rotctld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;Edit rotctld.service&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=rotctld server&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
EnvironmentFile=-/etc/default/hamlib-utils&lt;br /&gt;
ExecStart=/usr/bin/rotctld $ROT_OPTS&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
User=satnogs&lt;br /&gt;
Group=satnogs&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reload systemd daemon ===&lt;br /&gt;
After the above is complete, you must reload the systemd daemon so it will use the newly created services.&lt;br /&gt;
&lt;br /&gt;
Execute the following:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;Now we can enable and start rigctld, rotctld and finally when all the /etc/default/satnogs-client variables are set, the satnogs-client.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable rigctld.service&lt;br /&gt;
sudo systemctl start rigctld.service&lt;br /&gt;
sudo systemctl status rigctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable rotctld.service&lt;br /&gt;
sudo systemctl start rotctld.service&lt;br /&gt;
sudo systemctl status rotctld.service&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable satnogs-client.service&lt;br /&gt;
sudo systemctl start satnogs-client.service&lt;br /&gt;
sudo systemctl status satnogs-client.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you want to see log information you can use the following commands:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo journalctl -f -u rigctld -n 512&lt;br /&gt;
sudo journalctl -f -u rotctld -n 512&lt;br /&gt;
sudo journalctl -f -u satnogs-client -n 512&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3865</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3865"/>
		<updated>2022-11-19T05:29:02Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
pip install gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3835</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3835"/>
		<updated>2022-05-30T11:11:19Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: Fixed git clone error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you get an error stating: '''server certificate verification failed. CAfile: none CRLfile: none''', then use this git command instead to skip verification. &amp;lt;pre&amp;gt;&lt;br /&gt;
GIT_SSL_NO_VERIFY=true git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3834</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3834"/>
		<updated>2022-05-29T13:40:25Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Add SatNOGS user===&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create the satnogs python virtual environent===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different) on Ubuntu 20.04==&lt;br /&gt;
Create the satnogs-client environment file, make sure the PYTHONPATH is also in there ('''this is not normally done''').&lt;br /&gt;
&lt;br /&gt;
We're using nano (installed on Ubuntu 20.04 by default, though you can also use vi)&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/default/satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Here you will need to add your station information.  The setup command does not run to configure this through an interface.&amp;lt;pre&amp;gt;&lt;br /&gt;
PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
SATNOGS_API_TOKEN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ID=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LAT=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_LON=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_STATION_ELEV=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_SOAPY_RX_DEVICE=&amp;quot;driver=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RF_GAIN=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_RX_SAMP_RATE=&amp;quot;&amp;quot;&lt;br /&gt;
SATNOGS_ANTENNA=&amp;quot;&amp;quot;&lt;br /&gt;
UDP_DUMP_HOST=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3833</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3833"/>
		<updated>2022-05-29T13:36:42Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: More steps added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
===Set &amp;amp; configure PYTHONPATH environment setting===&lt;br /&gt;
&lt;br /&gt;
====Edit bashrc====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configuration information for SatNOGS user on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
=== Add SatNOGS user ===&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo useradd -c &amp;quot;SatNOGS-client&amp;quot; -d /var/lib/satnogs -G plugdev,dialout -m -s /bin/false satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create the satnogs python virtual environent ===&lt;br /&gt;
Install the required packages.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python3.8-venv virtualenv python3-pip -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;Next&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs virtualenv --system-site-packages --python python3 /var/lib/satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;Start a SatNOGS user bash and activate the virual environment&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -H -u satnogs bash&lt;br /&gt;
source /var/lib/satnogs/bin/activate&lt;br /&gt;
pip install satnogs-client&lt;br /&gt;
&amp;lt;/pre&amp;gt;Exit the bash&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo mkdir -p .satnogs/data/incomplete &lt;br /&gt;
sudo chown -R satnogs:satnogs .satnogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Configure SatNOGS Client (yes, it's a little different)==&lt;br /&gt;
&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3832</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3832"/>
		<updated>2022-05-29T13:25:08Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: Added more major steps.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Installation information for gr-satnogs on Ubuntu 20.04==&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installation information for Soapy SDR and Device on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
=== Install required software packages ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install rtl-sdr librtlsdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install soapysdr-tools python3-soapysdr libsoapysdr-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Installation information for gr-soapy on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/gr-soapy&lt;br /&gt;
cd gr-soapy&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Installation information for satnogs-flowgraphs on Ubuntu 20.04==&lt;br /&gt;
&lt;br /&gt;
=== Set &amp;amp; configure PYTHONPATH environment setting ===&lt;br /&gt;
&lt;br /&gt;
==== Edit bashrc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;Add the following to your .bashrc. This will make sure that every time you login the variable will be set.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;If you do not re-login after adding to .bashrc then run the following (same) command in the current session.&amp;lt;pre&amp;gt;&lt;br /&gt;
export PYTHONPATH=/usr/local/lib/python3/dist-packages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installation from source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/satnogs-flowgraphs.git&lt;br /&gt;
cd satnogs-flowgraphs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Setup User Environment &amp;amp; SatNOGS Client==&lt;br /&gt;
&lt;br /&gt;
==Configure SatNOGS Client (yes, it's different)==&lt;br /&gt;
&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
code goes here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3831</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3831"/>
		<updated>2022-05-29T13:16:38Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Install GR-SatNOGS==&lt;br /&gt;
&lt;br /&gt;
===Installation information for gr-satnogs on Ubuntu 20.04===&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install required software packages===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install from source===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Soapy-SDR==&lt;br /&gt;
&lt;br /&gt;
==Install GR-Soapy==&lt;br /&gt;
&lt;br /&gt;
==Install SatNOGS Flowgraphs==&lt;br /&gt;
&lt;br /&gt;
==Setup User Environment &amp;amp; SatNOGS Client==&lt;br /&gt;
&lt;br /&gt;
==Configure SatNOGS Client (yes, it's different)==&lt;br /&gt;
&lt;br /&gt;
==Configure System Services==&lt;br /&gt;
&lt;br /&gt;
==Device Blacklisting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3830</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3830"/>
		<updated>2022-05-29T13:14:28Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: Added first steps for installation of SatNOGS Client on Ubuntu 20.04&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
=Installing SatNOGS on Ubuntu 20.04 - PC=&lt;br /&gt;
{{Warning|'''Information is currently being added to this page. This warning will be removed when completed.'''&lt;br /&gt;
This guide is incomplete.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Install GR-SatNOGS ==&lt;br /&gt;
&lt;br /&gt;
=== Installation information for gr-satnogs on Ubuntu 20.04 ===&lt;br /&gt;
Do not add any repo for GNU Radio. It is not the required version and will cause errors.&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get --purge remove snapd -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install required software packages ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install -y \&lt;br /&gt;
      libboost-dev \&lt;br /&gt;
      libitpp-dev \&lt;br /&gt;
      libboost-date-time-dev \&lt;br /&gt;
      libboost-filesystem-dev \&lt;br /&gt;
      libboost-program-options-dev \&lt;br /&gt;
      libboost-system-dev \&lt;br /&gt;
      libboost-thread-dev \&lt;br /&gt;
      libboost-regex-dev \&lt;br /&gt;
      libboost-test-dev \&lt;br /&gt;
      swig \&lt;br /&gt;
      cmake \&lt;br /&gt;
      build-essential \&lt;br /&gt;
      pkg-config \&lt;br /&gt;
      gnuradio-dev \&lt;br /&gt;
      libconfig++-dev \&lt;br /&gt;
      libgmp-dev \&lt;br /&gt;
      liborc-0.4-0 \&lt;br /&gt;
      liborc-0.4-dev \&lt;br /&gt;
      liborc-0.4-dev-bin \&lt;br /&gt;
      nlohmann-json3-dev \&lt;br /&gt;
      libpng++-dev \&lt;br /&gt;
      libvorbis-dev \&lt;br /&gt;
      git \&lt;br /&gt;
      libusb-1.0-0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
git clone https://gitlab.com/librespacefoundation/satnogs/gr-satnogs.git&lt;br /&gt;
cd gr-satnogs&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;If this is the first time you are building the gr-satnogs module, run:&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Soapy-SDR ==&lt;br /&gt;
&lt;br /&gt;
== Install GR-Soapy ==&lt;br /&gt;
&lt;br /&gt;
== Install SatNOGS Flowgraphs ==&lt;br /&gt;
&lt;br /&gt;
== Setup User Environment &amp;amp; SatNOGS Client ==&lt;br /&gt;
&lt;br /&gt;
== Configure SatNOGS Client (yes, it's different) ==&lt;br /&gt;
&lt;br /&gt;
== Configure System Services ==&lt;br /&gt;
&lt;br /&gt;
== Device Blacklisting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3829</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3829"/>
		<updated>2022-05-29T12:53:22Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Ubuntu]] 20.04 Client Installation - Coming soon&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3828</id>
		<title>Ubuntu - Client Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.satnogs.org/index.php?title=Ubuntu_-_Client_Installation&amp;diff=3828"/>
		<updated>2022-05-29T12:47:37Z</updated>

		<summary type="html">&lt;p&gt;Brettjburford: Ubuntu 20.04 Client Installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ubuntu 20.04 Client Installation - Coming soon&lt;/div&gt;</summary>
		<author><name>Brettjburford</name></author>
		
	</entry>
</feed>