Yocto buildi başlatıldığında Gemstone kartlarında kullanılan U-Boot otomatik olarak indirilir, derlenir ve çıktıları paketlenir. Dolayısıyla ek olarak bir komut çalıştırmaya gerek yoktur. U-Boot’u tekrar derlemeyi gerektirecek bir durum varsa (örneğin, işletim sistemini SSD üzerinden boot etme desteği getirme gibi) aşağıdaki adımlar izlenebilir.
Kernel parametrelerini değiştirme, device-tree overlay ekleme gibi bazı işlemler U-Boot’u tekrar derlemeye gerek kalmadan da -/boot/uEnv.txt dosyasını güncelleyerek de- yapılabilir.
Aşağıda yer alan komutların hepsi distrobox içerisinde çalıştırılacaktır. Dolayısıyla ilk olarak devbox shell —> task box komutlarını çalıştırmalısınız. Ayrıca Yocto ortamına geçiş yapabilmek için m:oeinit t3-gem-o1 komutunu çalıştırmalısınız.
Kaynak kodlarında değişiklik yapmak yerine çeşitli özellikleri aktif/deaktif edecekseniz (TFTP komutunu aktif etme gibi) menuconfig’e aşağıdaki komutlarla ulaşabilirsiniz.
Bu örnekte T3-GEM-O1 kartı üzerinden anlatım yapılacaktır. Farklı bir makine için yapılanları uygulayacaksanız makine ismini uygun şekilde değiştiriniz.
Bu aşamada U-Boot’u tekrar derleyebilirsiniz ancak yaptığınız değişiklikler sadece sizin bilgisayarınızda kalır ve build klasörünü temizlemeniz durumunda kaybolurlar. Bunu engellemek için aşağıdaki adımları takip ediniz.
bitbake -c diffconfig virtual/bootloader
cp /home/workdir/build/tmp-musl/work/t3_gem_o1-gemstone-linux-musl/u-boot-t3-gem-o1/2025.04+git/fragment.cfg \
    /home/workdir/yocto/meta-gemstone/dynamic-layers/meta-ti/recipes-bsp/u-boot-t3-gem-o1/files/fragment.config
meta-gemstone/dynamic-layers/meta-ti/recipes-bsp/u-boot-t3-gem-o1/files dizininde bulunan fragment.config dosyasının adını .config uzantısını değiştirmeden yaptığınız değişikliği açıklayan bir isimle değiştiriniz. Sonrasında bu adı meta-gemstone/dynamic-layers/meta-ti/recipes-bsp/u-boot-t3-gem-o1/u-boot-t3-gem-o1_2025.04.bb dosyasındaki SRC_URI değişkenine ekleyiniz. Örnek için dosya adını fragment-enable-tftp.config yaptığımızı varsayalım.
SRC_URI:append:t3-gem-o1 = " \
    file://uEnv-desktop.txt \
    file://uEnv-rd.txt \
    file://fragment-mmc-env.config \
    file://fragment-enable-tftp.config \
"
bitbake -c clean virtual/bootloader
bitbake virtual/bootloader
Yukarıdaki komutlar başarıyla tamamlandıysa <sdk-dizini>/build/t3-gem-o1/deploy-ti/images dizininde u-boot.img ve u-boot-spl.bin dosyaları oluşacaktır.

Kaynak Kodlarında Değişiklik Yapılması

Metin editörünüzde <sdk-dizini>/build/tmp-musl/work/t3_gem_o1-gemstone-linux-musl/u-boot-t3-gem-o1/2025.04+git/git klasörünü açınız. İstediğiniz kısımları değiştirdikten sonra aşağıdaki komutlarla U-Boot’u derleyiniz. Yaptığınız değişiklikleri kaybetmemek adına T3 Gemstone U-Boot reposu için kendi forkunuzu oluşturup oraya gönderebilirsiniz.
bitbake virtual/bootloader
Derleme bittikten sonra <sdk-dizini>/build/t3-gem-o1/deploy-ti/images dizininde oluşan dosyaları SD kartta /boot dizinine kopyalayınız. Bir problemi çözdüyseniz veya yeni bir özellik eklediyseniz topluluğun da faydalanabilmesi için T3 Gemstone U-Boot reposuna pull request oluşturabilirsiniz.