This section covers the configuration file structure of the tool called Debos, which is used to compile images for
Gemstone development boards. Before starting this section, you should have read the
Components section.
devbox shell —> task box —> task distro:build are called sequentially.
Debos is then launched inside Docker, where customizations are made based on the provided variables,
necessary files are copied, and
installation scripts are executed.
Example
1. Parameters
A few parameters are summarized here. For the rest, refer to thevars section in the
sdk/Taskfile.yml file.
default:"t3-gem-o1"
required
beagley-ai intel-corei7-64 t3-gem-o1 qemuarm64default:"desktop"
required
minimal desktop kioskdefault:"ubuntu"
required
ubuntu debian pardusdefault:"jammy"
required
jammy noble bullseye bookworm yirmiuc yirmibesdefault:"amd64"
required
amd64 arm64default:"4GB"
The size of the resulting .img file after building.
2. Distributions
During the process of uploading an image to a new board using the Gemstone Imager application, the above distributions can be selected. By default, Ubuntu 22.04 is preferred on Gemstone development boards, but Debian 11, Debian 12 and Pardus 23 images are also supported to meet the needs of different projects.DISTRO_BASE=ubuntu DISTRO_SUITE=jammy
Ubuntu’s latest LTS (Long-term support) version is 24.04, but 22.04 is preferred due to various issues encountered
in projects like ROS and Yocto.
DISTRO_BASE=ubuntu DISTRO_SUITE=noble
Preferred for the latest libraries and applications.
DISTRO_BASE=debian DISTRO_SUITE=bullseye
Used in projects where the current code is stable for Debian 11.
DISTRO_BASE=debian DISTRO_SUITE=bookworm
The latest version of Debian.
DISTRO_BASE=pardus DISTRO_SUITE=yirmiuc
Pardus 23
DISTRO_BASE=pardus DISTRO_SUITE=yirmibes
The latest version of Pardus.
3. Images
DISTRO_TYPE=minimal
Can be used in IoT, Real-Time Systems, Network Applications, Embedded Software, Manned and Unmanned Vehicles,
Smart Home Applications, Autopilot, etc.
DISTRO_TYPE=desktop
Can be used for testing, prototyping, development, education, or as a small computer.
DISTRO_TYPE=kiosk
Can be used in projects like touchscreen Kiosks, Autonomous Vehicle Panels, Command Control Panels, etc.
4. Machines
MACHINE=t3-gem-o1 DISTRO_ARCH=arm64
The machine type for the T3 Gemstone O1 development board.
MACHINE=intel-corei7-64 DISTRO_ARCH=amd64
Preferred for virtual use with QEMU.
MACHINE=beagley-ai DISTRO_ARCH=arm64
The created images can also be used on the BeagleY-AI development board.
MACHINE=qemuarm64 DISTRO_ARCH=arm64
Preferred for virtual use with QEMU.
5. Configuration File
The Debos tool reads the sdk/distro/distro.yaml file and performs a 4-step process to create the.img file/distribution.
1
Debootstrap/Apt
Based on the specified Distribution (Ubuntu,Debian or Pardus), it downloads all .deb packages from the respective
distribution’s APT servers using the
debootstrap tool.2
Package Installation
Creates a folder structure called
rootfs to meet GNU/Linux operating system requirements and installs the
downloaded .deb packages into rootfs using the chroot method.3
Customization Processes
After the installation of deb packages is complete, files to be included in the image are copied, and
installation scripts are executed based on the
overlay and run definitions in the yaml file.4
Image File Creation
After all the above steps are successfully completed, the boot and rootfs disk partitions are created
according to the
image-partition definition, the .img file is generated, and all files are moved into it.
