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.
Before proceeding, make sure you have reviewed the following files:
As of the date this document was written, Gemstone development boards support
,
, and
.
Each Image, Machine, and Distribution has its own unique differences and customization settings.When creating a distribution, the commands 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.
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 and 12 images are also supported to meet the needs of different projects.
In Debian distributions (roughly speaking), the core principle is security and stability, while Ubuntu
distributions prioritize the same principles along with more frequent updates and delivering newer versions of
packages to end-users. Users’ preferences depend entirely on their system definitions and needs.
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 or Debian), 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.