The RocketLogger system relies on Debian as a base operating system, with dedicated system configuration and package installation. This software component provides the necessary scripts to setup and configure the operating system.
There are two alternative ways to setup the RocketLogger system:
- remotely configuring the booted live system and install the software after a reboot (legacy installation to deploy system, requiring individual deployment)
- patching the image locally with configuration and software and flash the ready-to-use image (pre-built image for mass deployment of many devices)
It is highly recommended to use the external SD card for configuration and measurement data storage and boot from the eMMC. This provides more storage for data and prevents the system from getting unresponsive due to running out of system disk space.
- download the image using the
get_image.sh
script - insert the SD card into your computer and flash the downloaded image to it using
flash_image.sh <image.img.xz> <disk-device>
, where<image.img.xz>
is the downloaded image file and<disk-device>
the SD card device, typically/dev/sdX
or/dev/mmcblkX
(without any partition suffix!) - insert the SD card into the RocketLogger device and power it up
- wait for the image to be copied to internal memory, i.e. until all LED are turned off again
- remove the SD card and reboot the system by power cycling it
- reboot and remotely run the setup using
remote_setup.sh <ip-addr> [<hostname>]
, where<ip-addr>
is the network address under which the logger is reachable and[<hostname>]
an optional hostname to configure during setup - optionally, but highly recommended, set up the external SD card as configuration and measurement data storage as described below
- power up the RocketLogger and start your measurements
- (skip this step when using a pre-built RocketLogger image) use the
patch_image.sh
script from the parent directory to download and patch the BeagleBone flasher image. This script requires a Docker Buildx setup as described under dependencies. - flash the resulting
rocketlogger-*.img
file: insert the SD card into your computer and flash therocketlogger-*.img
image to it usingflash_image.sh rocketlogger-*.img <disk-device>
, where<disk-device>
is the SD card device, typically/dev/sdX
or/dev/mmcblkX
(without any partition suffix!) - insert the SD card into the RocketLogger device and power it up
- wait for the image to be copied to internal memory, i.e. until all LED are turned off again
- remove the SD card and reboot the system
- optionally, but highly recommended, set up the external SD card as configuration and measurement data storage as described below
- power up the RocketLogger and start your measurements
- (re-)insert the SD card into your computer and prepare the RocketLogger SD card using
prepare_sdcard.sh <disk-device>
, where<disk-device>
is the SD card device, typically/dev/sdX
or/dev/mmcblkX
(without any partition suffix!) - copy any existing configuration or calibration files into the
rocktlogger/config
folder on the newly set up SD card - Insert the SD card into the RocketLogger, reboot, and start your measurements
The operation system is based on the minimal console images for the BeagleBone platform, provided by BeagleBoard.org. The latest official BeagleBone images are available at https://beagleboard.org/latest-images.
The system installation scripts itself rely on Linux system utility binaries and partitioning and
filesystem tools that are typically included with any basic Linux based operating system.
Tools that might not come preinstalled with your favorite Linux operating system installation are:
curl
, dd
, git
, xz
.
The local patching of a BeagleBone system image requires Docker Buildx
and a system configured
to run privileged Docker containers. More information on the docker configuration is found at
Docker Buildx and in the
docker run reference.
In a nutshell, Docker with Buildx and privileged support is installed as follows on a fresh Ubuntu LTS 20.04 system (see the corresponding links for in-depth details):
-
install Docker on Ubuntu:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
-
add the user to the
docker
group to start Docker containers without root permissions after the installation:sudo groupadd docker sudo usermod --append --groups docker ${USER}
Finally, reboot to apply the new user configurations.
Now, the Docker Buildx setup should be ready for cross-compilation and patching of an arm-v7 Debian
system image using the patch_image.sh
script.