Debos
Gemstone İmaj Oluşturma
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.
Devam etmeden önce aşağıdaki dosyaları incelemiş olduğunuza emin olunuz.
Gemstone geliştirme kartlarında, dokümanın yazıldığı tarih itibariyle , ve bulunmaktadır. Her bir İmaj, Makine ve Dağıtımın kendine özgü farklılıkları, özelleştirme ayarları mevcuttur.
Dağıtım oluşturulurken sıra ile 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.
1. Parametreler
Özet olarak bir kaç parametre açıklanmış olup geri kalanlar için
sdk/Taskfile.yml dosyasındaki vars
bölümü incelenmelidir.
beagley-ai
intel-corei7-64
t3-gem-o1
qemuarm64
minimal
desktop
kiosk
ubuntu
debian
jammy
noble
bullseye
bookworm
amd64
arm64
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 ve 12 imajları da desteklenmiştir.
Debian dağıtımlarında (kabaca ifade edilecek olursa) temel ilke; güvenlik ve kararlılık iken Ubuntu dağıtımlarında; aynı ilke birlikte daha sık güncelleme ve işletim sistemininde bulunan paketlerin yeni versiyonlarını son kullanıcıya ulaştırma denilebilir. Kullanıcıların tercih sebebi ise tamamen sistemleri tanımları ve ihtiyaçları ile ilgilidir.
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.
En güncel kütüphaneler ve uygulamalar için tercih edilmektedir.
Mevcut kodları Debian 11 için stabil olan projelerde tercih edilmektedir.
Debian’ın en güncel sürümüdür.
3. İmajlar
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.
Test, Prototip, Geliştirme, Eğitim vb. amaçlarla veya küçük bir bilgisayar olarak kullanılabilir.
Üzerine dokunmatik ekran bulunan Kiosk, Otonom Araç Paneli, Komuta Kontrol Paneli gibi projelerde kullanılabilir.
4. Makineler
T3 Gemstone Obsidyen geliştirme kartına ait makine türüdür.
QEMU ile sanal olarak kullanmak için tercih edilmektedir.
Oluşturulan imajlar aynı zamanda BeagleY-AI geliştirme kartında kullanılabilmektedir.
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.
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.
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.
Ö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.
İ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.