UniClOGS Linux is a project that extends the rpi-image-gen tool to build images specifically for UniClOGS running on Raspberry Pi.
This project contains a series of configs used to define the desired customizations for a "golden" UniClOGS Ground System OS image, which standardizes and simplifies the process of spinning up a UniClOGS Ground System.
It achieves this by leveraging the rpi-image-gen tool, which reads the config files in this project to produce the exact image assets specified, along with a software bill of materials (SBOM) file.
The configuration and scripts that provision the resulting image can be found in
the uniclogs/ directory of this project, which is also made available for use
inside the container (where the image build process occurs).
These instructions will walk you through the process of setting up this project on a development system.
NOTE: If you have a non-ARM CPU you will need
The preferred way to generate an image is to run the helper script found in the
root directory of this project. Upon successful generation, the image and sbom
assets will be found in the build/ directory.
./generate.shNOTE: You will be prompted for the build user's password, which is
imagegen.
To perform manual generation, you'll need access to the container directly. You can get a shell inside the container by running the following command:
podman compose run --build rpi_imagegen bashIf running on a non-ARM host, from within the container, run the following command to set binfmt_misc.
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_miscThen build the image:
./build.sh -D ~/uniclogs -c uniclogs -o ~/uniclogs/uniclogs.optionsThis task will take a little time to complete.
To copy the generated image and files from within the container onto the host system, run:
podman ps
podman cp <containerid>:/home/imagegen/rpi-image-gen/work/rpi_uniclogs/deploy /path/to/destinationpodman ps will show you the container id. Make sure to replace <containerid>
in the above command with the actual container id.
The following steps are necessary to complete manually in order to get Uniclogs Linux working.
-
The root filesystem needs to be expanded to use the entire disk that the OS is installed on. In most commercially available linux distributions, this is done automatically during installation. To achieve this:
- Run:
sudo raspi-config --expand-rootfs - The system must be rebooted for this change to take effect.
- After reboot, run
df -hto confirm success.
- Run:
-
Set the FTDI Serial Number in
99-serial.rulesandrotctld.service, which can be found in /etc/udev/rules.d and/etc/systemd/systemrespectively.This can be done with the utility script
/home/uniclogs/bin/set-ftdi-sn.sh -
Ensure that the chip and pin values inside
/etc/config/stationd.iniare correct for your ground station hardware configuration.