Bu bölümde Gemstone geliştirme kartlarında bulunan imajların derlenmesi için kullanılan Debos isimli aracın
konfigürasyon dosya yapısı ele alınacaktır. Bölüme başlamadan önce Bileşenler kısmını
okumuş olmanız gerekmektedir.
devbox shell —> task box —> task distro:build komutları çağrıldığında
Debos; Docker içerisinden başlatılarak parametre olarak verilen değişkenlere göre özelleştirmeler yapılır,
gerekli dosyalar kopyalanır ve
kurulum scriptleri çalıştırılır.
Örnek
1. Parametreler
Özet olarak bir kaç parametre açıklanmış olup geri kalanlar için sdk/Taskfile.yml dosyasındakivars bölümü incelenmelidir.
varsayılan:"t3-gem-o1"
gerekli
beagley-ai intel-corei7-64 t3-gem-o1 qemuarm64varsayılan:"desktop"
gerekli
minimal desktop kioskvarsayılan:"ubuntu"
gerekli
ubuntu debian pardusvarsayılan:"jammy"
gerekli
jammy noble bullseye bookworm yirmiuc yirmibesvarsayılan:"amd64"
gerekli
amd64 arm64varsayılan:"4GB"
Derleme sonucu oluşan .img uzantılı imaj dosyasının boyutudur.
2. Dağıtımlar
Gemstone Imager uygulaması ile yeni bir karta imaj yükleme sürecinde, yukarıdaki dağıtımlar seçilebilmektedir. Varsayılan olarak Gemstone geliştirme kartında Ubuntu 22.04 dağıtımı tercih edilmekle birlikte farklı projelerdeki ihtiyaçlar göz önüne alınarak Debian 11, Debian 12 ve Pardus 23 imajları da desteklenmiştir.DISTRO_BASE=ubuntu DISTRO_SUITE=jammy
Ubuntu’nun en güncel LTS (Long-term support) sürümü 24.04’tür fakat özellikle ROS, Yocto gibi projelerde çeşitli
problemler yaşanabildiği için 22.04 tercih edilmektedir.
DISTRO_BASE=ubuntu DISTRO_SUITE=noble
En güncel kütüphaneler ve uygulamalar için tercih edilmektedir.
DISTRO_BASE=debian DISTRO_SUITE=bullseye
Mevcut kodları Debian 11 için stabil olan projelerde tercih edilmektedir.
DISTRO_BASE=debian DISTRO_SUITE=bookworm
Debian’ın en güncel sürümüdür.
DISTRO_BASE=pardus DISTRO_SUITE=yirmiuc
Pardus 23 Sürümü
DISTRO_BASE=pardus DISTRO_SUITE=yirmibes
Pardus’un en güncel sürümüdür.
3. İmajlar
DISTRO_TYPE=minimal
IoT, Gerçek Zamanlı Sistemler, Network Uygulamaları, Gömülü Yazılım, İnsanlı ve İnsansız Araçlar,
Akıllı ev uygulamaları, Otopilot vb. alanlarda kullanılabilir.
DISTRO_TYPE=desktop
Test, Prototip, Geliştirme, Eğitim vb. amaçlarla veya küçük bir bilgisayar olarak kullanılabilir.
DISTRO_TYPE=kiosk
Üzerine dokunmatik ekran bulunan Kiosk, Otonom Araç Paneli, Komuta Kontrol Paneli gibi projelerde kullanılabilir.
4. Makineler
MACHINE=t3-gem-o1 DISTRO_ARCH=arm64
T3 Gemstone O1 geliştirme kartına ait makine türüdür.
MACHINE=intel-corei7-64 DISTRO_ARCH=amd64
QEMU ile sanal olarak kullanmak için tercih edilmektedir.
MACHINE=beagley-ai DISTRO_ARCH=arm64
Oluşturulan imajlar aynı zamanda BeagleY-AI geliştirme kartında kullanılabilmektedir.
MACHINE=qemuarm64 DISTRO_ARCH=arm64
QEMU ile sanal olarak kullanmak için tercih edilmektedir.
5. Konfigürasyon Dosyası
Debos isimli araç sdk/distro/distro.yaml isimli dosyayı okuyarak 4 aşamalı bir işlem gerçekleştirerek.img dosyasını/dağıtımı oluşturur.
1
Debootstrap/Apt
Parametre olarak verilen Dağıtım türüne göre (Ubuntu veya Debian)
debootstrap aracıyla ilgili dağıtımların
APT paket sunucularından .deb uzantılı bütün paketleri indirir.2
Paketlerin Kurulumu
İndirilen .deb uzantılı paketlerin kurulumu için
rootfs ismi verilen bir klasör yapısı
oluşturarak GNU/Linux işletim sistemi gereksinimlerini ayarlayarak paketlerin kurulumunu rootfs
içerisine chroot yöntemi ile yapar.3
Özelleştirme İşlemleri
Deb paketlerinin kurulumu tamamlandıktan sonra
yaml dosyasında bulunan overlay ve run türündeki tanımlamalarla
imajın içerisine yüklenecek dosyalar kopyalanır ve kurulum scriptleri çalıştırılır.4
İmaj Dosyası Oluşturma
Yukarıdaki bütün işlemler başarılı bir biçimde tamamlandıktan sonra
image-partition türündeki tanımlamaya
göre boot, rootfs disk bölümlendirmeleri yapılır, .img uzantılı dosya oluşturulur ve bütün dosyalar içerisine taşınır.
