Difference between revisions of "Raspberry Pi"

From SatNOGS Wiki
(Download: Update to SatNOGS image release 2023111400)
 
(73 intermediate revisions by 19 users not shown)
Line 1: Line 1:
= Intro =
+
[[File:B3342fcc865731d69e0c9d7a8b1abb887185bc13 1 531x500.jpg|alt=Libre Space Foundation Raspberry Pi Case|thumb|Libre Space Foundation Raspberry Pi Case, [https://www.thingiverse.com/thing:3233687 on thingiverse]]]
  
The Raspberry Pi 3 is the reference platform for SatNOGS.  As of September 2017, there are two methods of installing the SatNOGS client on a Raspberry Pi:
+
==Introduction==
  
* Using Fedora for ARM, and following the instructions at [http://satnogs.readthedocs.io/en/stable/satnogs-client/doc/raspi-install.html satnogs.readthedocs.io]
+
The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our [[SatNOGS Client Ansible|Ansible guide]] to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.
* Installing the custom-built SatNOGS Raspbian image
 
  
'''This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org.''' This is needed for getting your ground station ID number and your SatNOGS Network API key.
+
{{Message|This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.}}
  
= Fedora =
+
==Download==
 +
'''<big>Raspbian SatNOGS Image:</big> <big>[https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs/artifacts/2023111400/download?job=release artifacts.zip]</big> '''  (Release: 2023111400)
  
Start by downloading the "Server" or "Minimal" image from the [https://arm.fedoraproject.org/ the Fedora ARM project page]. After that, follow the instructions at [http://satnogs.readthedocs.io/en/stable/satnogs-client/doc/raspi-install.html satnogs.readthedocs.io].
+
Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/tags latest tag page on GitLab]). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an <code>artifacts.zip</code> file with the following content:
  
* If you run into anything in the instructions that is unclear, please submit an issue against [https://gitlab.com/librespacefoundation/satnogs/satnogs-docs the documentation repository].
+
*A Zipped image file
 +
*An Image info file
 +
*A SHA256 checksum file
  
= Raspbian =
+
===Data integrity verification===
  
== Download ==
+
You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded and unzipped.
 
 
The latest Raspbian SatNOGS image artifacts can be downloaded from [https://gitlab.com/librespacefoundation/satnogs/satnogs-pi-gen/-/jobs GitLab].
 
 
 
=== Artifacts list ===
 
 
 
The current artifacts list consists of:
 
* A Zipped image file
 
* An Image info file
 
* A SHA256 checksums file
 
 
 
== Data integrity verification ==
 
 
 
You should verify the data integrity of the artifacts by checking the SHA256 checksums. On Linux, run <code>sha256sum -c sha256sums</code> in the directory where the artifacts are downloaded
 
  
 
Example:
 
Example:
 
<pre>
 
<pre>
 
$ sha256sum -c sha256sums  
 
$ sha256sum -c sha256sums  
2017-09-10-Raspbian-SatNOGS-master-lite.info: OK
+
2023-11-14-Raspbian-SatNOGS-master-lite.info: OK
image_2017-09-10-Raspbian-SatNOGS-master-lite.zip: OK
+
image_2023-11-14-Raspbian-SatNOGS-master-lite.zip: OK
</pre>
+
</pre><br />
  
== Flashing ==
+
==Flashing==
 +
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi. 
  
[https://www.raspberrypi.org/documentation/installation/installing-images/README.md Follow the usual Raspbian flashing instructions], and boot your Raspberry Pi.
+
You will need to set the login password for your Pi, as well as Wifi settings and Locale settings by clicking the "Advanced"  options before writing the image.
 +
[[File:Image.png|alt=Gear Icon for Rpi imager|left|thumb|73x73px]]
  
== Networking ==
 
  
If you are using wired Ethernet you should get connectivity right away. If you are using wireless then see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions].
 
  
== Setup ==
+
<br />
 +
==Getting console access==
 +
You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.
  
SSH to the Raspberry Pi with user "pi" and password "raspberry" (no quotes).  Run "sudo satnogs-setup" to set basic configuration. Select "quit" when you are finished, and  the Raspberry Pi will reconfigure itself; this may take some time.
+
===Keyboard and monitor===
 +
Once your Raspberry Pi is booted, log in with userID and password that you set during the imaging process.
  
* Note: you can always reconfigure the software by running "sudo satnogs-setup -n" again.  
+
===Ethernet===
 +
If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username you set during the image writing process.  "'''pi'''" password "'''raspberry'''", in this example:
 +
$ ssh pi@192.168.1.2
 +
If your network supports [[wikipedia:Zero-configuration_networking|<code>zeroconf</code>]], then you can use the hostname of your Pi:
 +
$ ssh pi@raspberrypi.local
  
* Note: You may find further details about the following options on the [http://satnogs.readthedocs.io/en/stable/satnogs-client/doc/raspi-install.html satnogs.readthedocs.io] page.
+
===Pre-boot wireless configuration===
 +
If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. [https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi#comment98121_57023 Windows users have line ending problems]. Suggested actions:
  
=== Basic setup ===
+
$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf
  
* '''SATNOGS_API_TOKEN''': The API token assigned to your ground station on the SatNOGS Network website.
+
contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)
  
* '''SATNOGS_NETWORK_API_URL''':  The API for the SatNOGS network site.  If you're working on the stage environment, this is https://network-dev.satnogs.org/api/; if you're working on the prod environment, this is https://network.satnogs.org/api/.
+
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 +
    update_config=1
 +
    country=US
 +
   
 +
    network={
 +
        ssid="NETWORK_NAME"
 +
        psk="password"
 +
        key_mgmt=WPA-PSK
 +
    }
  
* '''SATNOGS_RX_DEVICE''':  If you are using an RTL-SDR, this is <code>rtlsdr</code>.  Other devices supported by gr-satnogs include <code>usrpb200</code>, <code>usrp2</code>, <code>airspy</code> or <code>hackrf</code>; a complete list can be found [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/apps/flowgraphs/satellites/README.md here].
+
===Pre-boot user creation===
 +
The latest version of Raspberry Pi OS, of which the SatNOGS image is based on, '''does not''' have the "'''pi'''" user already upon first boot.
  
* '''SATNOTS_STATION_ELEV''': The elevation of your ground station in metres.
+
If you wish to login using ssh upon the first boot with the prior default username / password of "pi" / "raspberry", then:
  
* '''SATNOTS_STATION_ID''':  The ID assigned to your station in the SatNOGS network site (either stage or prod).
+
*Create the file <code>userconf.txt</code> in the root of the <code>boot</code> partition of the uSD card.
 +
*Its contents should be the single line:
 +
**<code>pi:$6$/XOZsG1X0IAbhXB0$wYZHRkvib0SUKQA3KVAxofPR.JsFAbI2NCue2znGvhRsQobVdllFXyQZ7fMSvAoyEj8MfHtkMeSZT7IRIixg01</code>
 +
**(the format is username:encrypted-password)
  
* '''SATNOTS_STATION_LAT''': The latitude of your station. North is positive, south is negative.
+
For more information about this file, see: [https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-a-user Raspberry Pi Documentation - Configuration - Setting up a Headless Raspberry Pi - Configuring a User]
 +
<br />
 +
==Configuration==
  
* '''SATNOTS_STATION_LONG''': The longitude of your station.  East is positive, west is negative.
+
===Raspberry Pi Setup===
 +
If you used the advance settings during imaging, this step can be skipped.  
  
* '''HAMLIB_UTILS_ROT_ENABLED''':  Whether or not to enable the Hamlibs rotator daemon.  Rotctld is a software daemon that provides a network server to control a rotator on a serial port.  '''Note:''' even if you [https://wiki.satnogs.org/No_rotator do not have a rotator], you'll want to enable this; see the next option for details.
+
Once your Raspberry Pi is booted, log in with the username you set up during the imaging process and run:  
 +
<pre>
 +
$ sudo raspi-config
 +
</pre>
  
* '''HAMLIB_UTILS_ROT_OPTS''':  Options for rotcld.  '''If you don't have a rotator, set this to <code>-m 1</code>'''; see [https://community.libre.space/t/raspbian-satnogs-client-image-issues/1319/10 here] for details.
+
You will want to be sure to do the following:
  
== Updating ==
+
*Set a strong, unique password
 +
*Change localization settings:
 +
**by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)
 +
**set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)
 +
**set keyboard layout, again this is defaulting to a UK layout
 +
**set wifi country
 +
**expand filesystem (under the Advanced menu)
 +
*Configure network or WiFi (see [https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md this doc for network configuration instructions])
 +
*Finish and reboot
  
To update SatNOGS software, re-run <code>sudo satnogs-setup</code>. This will pull the latest Ansible playbook and update if necessary.
+
===SatNOGS Setup===
 +
SSH to the Raspberry Pi with userID you set during imaging password.
  
Raspbian packages can be updated using the normal APT updating methods (e.g. <code>apt-get upgrade</code> or <code>aptitude</code>).
+
Follow [[SatNOGS Client Setup]] instructions to configure the system.
  
WARNING: An update can potentially interrupt a running observation!
+
[[Category:Build]]
 
+
[[Category:Software]]
== Testing ==
 
 
 
To see if satnogs-client has started successfully, check the logs with journalctl:
 
 
 
<pre>
 
journalctl -u satnogs-client.service
 
</pre>
 
 
 
You should see entries running approximately once per minute that look like this:
 
 
 
<pre>
 
Oct 01 23:02:13 raspberrypi satnogs-client[6695]:  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 
Oct 01 23:02:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:02:14,466 - satnogsclient - INFO - [LD] Downlink thread waiting for first downlink packet
 
Oct 01 23:03:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:14,450 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:03:14 UTC)" (scheduled at 2017-10-01 23:03:14.423393+00:00)
 
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,324 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011
 
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,325 - satnogsclient - DEBUG - Sending message: []
 
Oct 01 23:03:47 raspberrypi satnogs-client[6695]: 2017-10-01 23:03:47,327 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully
 
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,453 - apscheduler.executors.default - INFO - Running job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.423393+00:00)
 
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,484 - apscheduler.executors.default - INFO - Running job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" (scheduled at 2017-10-01 23:04:14.436367+00:00)
 
Oct 01 23:04:14 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:14,489 - apscheduler.executors.default - INFO - Job "post_data (trigger: interval[0:02:00], next run at: 2017-10-01 23:04:14 UTC)" executed successfully
 
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,627 - satnogsclient - DEBUG - Opening TCP socket: 127.0.0.1:5011
 
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,628 - satnogsclient - DEBUG - Sending message: []
 
Oct 01 23:04:15 raspberrypi satnogs-client[6695]: 2017-10-01 23:04:15,629 - apscheduler.executors.default - INFO - Job "get_jobs (trigger: interval[0:01:00], next run at: 2017-10-01 23:05:14 UTC)" executed successfully
 
</pre>
 

Latest revision as of 21:41, 20 February 2024

Libre Space Foundation Raspberry Pi Case
Libre Space Foundation Raspberry Pi Case, on thingiverse

Introduction

The Raspberry Pi (version 3 and 4) is the reference platform for SatNOGS (see our Ansible guide to install SatNOGS on other Linux machines). You can try using various distributions for this (eg. Debian/Armbian, Arch, Fedora), but the one we suggest is our custom image based on latest Raspbian.

Idea.png
This page assumes you have an account and a ground station registered on either network.satnogs.org or network-dev.satnogs.org. Make note of your station ID and API Key.

Download

Raspbian SatNOGS Image: artifacts.zip (Release: 2023111400)

Download the latest Raspbian SatNOGS Image from above (or via the "Download" icon on the right side of the latest tag page on GitLab). This image has the SatNOGS setup script installed, the SSH server enabled and all required packages preinstalled. You will get an artifacts.zip file with the following content:

  • A Zipped image file
  • An Image info file
  • A SHA256 checksum file

Data integrity verification

You should verify the data integrity of the artifacts by comparing the SHA256 checksums. On Linux, run sha256sum -c sha256sums in the directory where the artifacts are downloaded and unzipped.

Example:

$ sha256sum -c sha256sums 
2023-11-14-Raspbian-SatNOGS-master-lite.info: OK
image_2023-11-14-Raspbian-SatNOGS-master-lite.zip: OK


Flashing

Follow the usual Raspbian flashing instructions, and boot your Raspberry Pi.

You will need to set the login password for your Pi, as well as Wifi settings and Locale settings by clicking the "Advanced" options before writing the image.

Gear Icon for Rpi imager



Getting console access

You can log in the Raspberry Pi by connecting it to a keyboard and monitor or through network via an SSH connection.

Keyboard and monitor

Once your Raspberry Pi is booted, log in with userID and password that you set during the imaging process.

Ethernet

If you are using wired Ethernet you should get connectivity right away. You just need to find the IP address of Raspberry Pi (e.g. in your router management interface). Log in with SSH using username you set during the image writing process. "pi" password "raspberry", in this example:

$ ssh pi@192.168.1.2

If your network supports zeroconf, then you can use the hostname of your Pi:

$ ssh pi@raspberrypi.local

Pre-boot wireless configuration

If neither keyboard/monitor, nor a wired Ethernet are available, you can set up a WiFi connection before boot by mounting the boot partition of the flashed SD card and editing files directly. Note your OS may mount boot partition in a different location. Windows users have line ending problems. Suggested actions:

$ $EDITOR /media/Raspbian_SatNOGS-boot/wpa_supplicant.conf

contents: (note key_mgmt options include NONE, WPA-PSK, WPA-EAP)

   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
   update_config=1
   country=US
   
   network={
       ssid="NETWORK_NAME"
       psk="password"
       key_mgmt=WPA-PSK
   }

Pre-boot user creation

The latest version of Raspberry Pi OS, of which the SatNOGS image is based on, does not have the "pi" user already upon first boot.

If you wish to login using ssh upon the first boot with the prior default username / password of "pi" / "raspberry", then:

  • Create the file userconf.txt in the root of the boot partition of the uSD card.
  • Its contents should be the single line:
    • pi:$6$/XOZsG1X0IAbhXB0$wYZHRkvib0SUKQA3KVAxofPR.JsFAbI2NCue2znGvhRsQobVdllFXyQZ7fMSvAoyEj8MfHtkMeSZT7IRIixg01
    • (the format is username:encrypted-password)

For more information about this file, see: Raspberry Pi Documentation - Configuration - Setting up a Headless Raspberry Pi - Configuring a User

Configuration

Raspberry Pi Setup

If you used the advance settings during imaging, this step can be skipped.

Once your Raspberry Pi is booted, log in with the username you set up during the imaging process and run:

$ sudo raspi-config

You will want to be sure to do the following:

  • Set a strong, unique password
  • Change localization settings:
    • by default the rpi locale is configured for EN-GB, change as appropriate (ie: to EN_US.UTF-8)
    • set timezone (we recommend UTC so your logs match the times in Network; UTC is under the 'none of the above' submenu)
    • set keyboard layout, again this is defaulting to a UK layout
    • set wifi country
    • expand filesystem (under the Advanced menu)
  • Configure network or WiFi (see this doc for network configuration instructions)
  • Finish and reboot

SatNOGS Setup

SSH to the Raspberry Pi with userID you set during imaging password.

Follow SatNOGS Client Setup instructions to configure the system.