> ## Documentation Index
> Fetch the complete documentation index at: https://docs.t3gemstone.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Giriş

> Gemstone Sistem Derleme Kiti

Bu bölümde [SDK projesi](https://github.com/t3gemstone/sdk.git) geliştirici bilgisayarına indirilerek
Gemstone imajları derlenecektir. Temel düzeyde derleme işleminin nasıl yapıldığı **alıştırma** amacıyla
anlatılacaktır. Sonraki bölümlerde ise alıştırma olarak yapılan bütün bu araçların detaylarına
yer verilecektir.

<Tip>
  Bölüm bitiminde aşağıdaki konularda tecrübe edineceksiniz.

  * SDK bileşenlerinin temel kullanımını deneyimlemek
  * Gemstone SDK ile Kernel, U-Boot, Firmware, İmaj derlemeleri yapmak
  * Docker ve Distrobox gibi araçları kullanarak farklı GNU/Linux dağıtımlarını kendi bilgisayarınızda kullanmak.
</Tip>

<Note>
  SDK projesi Gemstone'un yazılım altyapısını oluşturan en yoğun teknik bilgi içeren kısmıdır. Geliştirme
  kartını kullanarak yazılım geliştirmek **için gerekli olmayıp** Gemstone'nun işletim sisteminin nasıl
  oluşturulduğu vb. teknik konular izah edilmektedir. Geliştirme kartları ile yalnızca proje geliştirmek
  istiyorsanız ve buradaki konulara ilginiz yoksa atlayabilirsiniz. Bu bölümün hedef kitlesi
  **Gemstone geliştiricisi** olmak isteyenlerdir.
</Note>

<Steps>
  <Step title="SDK'yı indir">
    Ubuntu üzerinde `git clone` işlemi yaparak SDK projesini indir
  </Step>

  <Step title="Gereksinimleri Kur">
    Derleme işlemi yapabilmek için gereksinimleri `setup.sh` isimli scripti çalıştırarak kur
  </Step>

  <Step title="İmaj oluştur">
    SDK içerisindeki araçları kullanarak Gemstone imajı oluştur
  </Step>

  <Step title="QEMU kullan">
    Oluşan imajı QEMU ile sanal makine olarak çalıştır
  </Step>
</Steps>

# 1. Hazırlık

Derleme işlemleri Ubuntu 22.04 GNU/Linux dağıtımı içeren bilgisayar ile yapıldı. Debian, Fedora, Pardus gibi
dağıtımların da kullanılması mümkün olmakla birlikte ilk kez buna benzer derleme araçları kullananlar için
Ubuntu 22 veya Ubuntu 24 daha uygun olacaktır.

### 1.1. Bilgisayar Gereksinimleri

1. Ubuntu 22 veya Ubuntu 24 bilgisayar
2. En az 16GB RAM
3. En az 256GB kullanılabilir boş disk alanı

Gemstone SDK `Docker` ve `Devbox` gibi araçlara ihtiyaç duymaktadır. Aşağıdaki komutlarla SDK
projesi klonlandıktan sonra içerisinde bulunan `setup.sh` isimli script bu kurulumları otomatik yapmaktadır.

<Card>
  ```mermaid theme={"system"}
  flowchart
  	n1@{ shape: "diam", label: "git clone işlemi yap" }
  	n1@{ shape: "diam", label: "**1.2. SDK'yı indir**" } --- n2@{ label: "**1.3.** Gereksinimleri Kur" }
  	n2@{ label: "**1.3.** Gereksinimleri Kur" } --- n3["Devbox Shell Aktifleştir"]@{ shape: "diam" }
  	n3 --- n4["**2.2.** Harici Kodları İndir"]
  	n3 --- n5@{ label: "**2.3.** Yetkilendirme Yap" }
  	n3@{ shape: "hex", label: "**2.1. Devbox Shell Aktifleştir**" } --- n6@{ shape: "hex", label: "**2.4.** Distrobox ile Yocto&Debos Ortamını Hazırla" }
  	n6@{ shape: "hex", label: "**2.4. Distrobox ile Yocto&Debos Ortamını Hazırla**" } --- n7@{ label: "**2.5.** Yocto ile Çekirdek (Linux Kernel, U-Boot, Firmware, Driver) Derle" }
  	n1@{ shape: "rounded", label: "**1.2. SDK'yı indir**" }
  	n7@{ label: "**2.5.** Yocto ile Kernel, U-Boot, Firmware, Driver Derle" }
  	n7 --- n10@{ label: "**2.6.** Debos ile İmaj Oluştur" }
  	n10 --- n11@{ label: "**2.7.** Qemu ile İşletim Sistemini Aç" }
  	style n1 fill:#FFDE59
  	style n3 stroke-width:0.5px,stroke:#000000
  	style n6 fill:#FFDE59
  ```
</Card>

### 1.2. SDK'yı İndir

Ubuntu üzerinde herhangi bir klasörde Terminal açarak aşağıdaki gibi `git clone` komutu ile projeyi klonlayınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  git clone https://github.com/t3gemstone/sdk.git
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ git clone https://github.com/t3gemstone/sdk.git
  Cloning into 'sdk'...
  remote: Enumerating objects: 2871, done.
  remote: Counting objects: 100% (171/171), done.
  remote: Compressing objects: 100% (90/90), done.
  remote: Total 2871 (delta 122), reused 107 (delta 78), pack-reused 2700 (from 2)
  Receiving objects: 100% (2871/2871), 25.23 MiB | 5.52 MiB/s, done.
  Resolving deltas: 100% (1100/1100), done.
  ubuntu@host:~$
  ```
</CodeGroup>

### 1.3. Gereksinimleri Kur

Klonlama işlemi sonrası aynı terminal ekranından `cd sdk` komutu ile klasöre girerek `setup.sh`
scriptini çalıştırma işlemini yapınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  cd sdk
  ./setup.sh
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ cd sdk/
  ubuntu@host:sdk$ ./setup.sh 

  🚀 T3 Gemstone Software Development Kit

    This script downloads and installs T3 Gemstone Boards' required
    packages 📦 for the development of its customized GNU/Linux Distro.
    Powered by Jetify Devbox, Distrobox, Love and Passion.

  → requirements...
  ✓ requirements... [DONE]
  → docker...
  ✓ docker... [DONE]
  ✓ docker-permissions... [DONE]
  → devbox...
  ✓ devbox... [DONE]

  What's the next?
    1. Learn how to build 🌍 a new world
      Read the docs at https://docs.t3gemstone.org

    2. Get help and give feedback
      Join our community at https://community.t3gemstone.org
  ```
</CodeGroup>

<Warning>
  Docker isimli uygulama daha önce sisteminizde kurulu değilse; ilk kez kuruyorsanız, Bilgisayar kullanıcı oturumunu
  kapatarak yeniden giriş yapmayı unutmayınız.
</Warning>

# 2. Derleme

Gereksinim kurulum scriptini tamamladıktan sonra Terminal'den sdk klasörü içerisindeyken Devbox Shell aktifleştirerek
derleme adımlarına başlayabilirsiniz.

### 2.1. Devbox Konsolunu Aktifleştir

Ubuntu paketlerinden farklı versiyonlar içerebilen yazılım paket yönetim sistemi olan **Devbox**'ı aktifleştirerek
Gemstone SDK'sı için gerekli indirme işlemlerini ve kurulumları tamamlanmasını sağlayınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  devbox shell
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:~$ cd sdk
  ubuntu@host:sdk$ devbox shell
  Starting a devbox shell...
  📦 devbox:sdk>
  ```
</CodeGroup>

### 2.2. Harici Proje Kodlarını İndir

Aşağıda bulunan `task fetch` komutu aracılığıyla SDK'nın derleme esnasında ihtiyaç duyduğu bütün kaynak kodları
indirme işlemi yapılır. İndirilen bu projelerin neler olduğunu `sdk/repos.yml` dosyasından inceleyebilirsiniz.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task fetch
  ```

  ```bash Output lines theme={"system"}
  ubuntu@host:sdk$ devbox shell
  Starting a devbox shell...
  📦 devbox:sdk> task fetch 
  task: [fetch] vcs import . < repos.yml
  ............
  === ./src/cc33xx-fw (git) ===
  === ./src/ti-img-rogue-umlibs (git) ===
  === ./src/wl18xx-fw (git) ===
  === ./yocto/meta-arm (git) ===
  === ./yocto/meta-gemstone (git) ===
  === ./yocto/meta-intel (git) ===
  === ./yocto/meta-mingw (git) ===
  === ./yocto/meta-openembedded (git) ===
  === ./yocto/meta-qt6 (git) ===
  === ./yocto/meta-ti (git) ===
  === ./yocto/openembedded-core (git) ===
  === ./yocto/poky (git) ===
  📦 devbox:sdk> 
  ```
</CodeGroup>

### 2.3. Yetkilendirme İşlemlerini Yap

Yocto projesi ile işletim sistemi derleme çalışmaları doğrudan kullandığınız Ubuntu üzerinde değil, Distrobox denilen
bir araç ile yapılmaktadır. Distrobox içerisinde yocto kullanabilmek aşağıdaki komut aracılığıyla yetkilendirme yapınız.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task permissions
  ```

  ```bash Output lines theme={"system"}
  📦 devbox:sdk> task permissions 
  task: [permissions] sudo cp .meta/bitbake-apparmor.conf /etc/apparmor.d/bitbake
  [sudo] password for vm: 
  task: [permissions] sudo apparmor_parser -r /etc/apparmor.d/bitbake
  task: [permissions] git config --global http.postBuffer 157286400
  task: [permissions] mkdir -p build src
  📦 devbox:sdk> 
  ```
</CodeGroup>

### 2.4. Derleme Ortamını Hazırla

Aşağıdaki komut aracılığıyla Distrobox kurulum işlemini gerçekleştiriniz.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task box
  ```

  ```bash Output lines theme={"system"}
  📦 devbox:sdk> task box
  task: [box] distrobox-list | grep -q 'gemstone-distrobox' || docker build -f Dockerfile -t t3gemstone/distrobox:latest .
  [+] Building 108.3s (5/12)                                                                                                                                                 docker:default
  => [internal] load build definition from Dockerfile                                                                                                                                 0.1s                                                                                                                                                0.0s
  => => transferring context: 2B                                                                                                                                                      0.0s
  => [1/8] FROM docker.io/library/ubuntu:22.04@sha256:01a3ee0b5e413cefaaffc6abe68c9c37879ae3cced56a8e088b1649e5b269eee                                                                6.2s
  => => extracting sha256:89dc6ea4eae2b38a3550534ece4983005a7d2e90e4fa503ed04dcfc58ee71159                                                                                            2.5s
  => [2/8] RUN apt-get update &&     apt-get upgrade -y &&     apt-get install -y         bash         binfmt-support         build-essential         ca-certificates         ccac  313.4s
  => [3/8] RUN sed -i 's/pam_unix\.so obscure/pam_unix.so minlen=1 obscure/' /etc/pam.d/common-password                                                                               0.6s
  => [4/8] RUN echo gemstone > /etc/hostname                                                                                                                                          0.9s
  => [5/8] RUN curl --location https://taskfile.dev/install.sh | sudo sh -s -- -d -b /usr/local/bin &&     task --completion bash > /etc/bash_completion.d/task                       4.9s
  => [6/8] RUN pip install vcstool --force-reinstall &&     cp /usr/local/share/vcstool-completion/vcs.bash /etc/bash_completion.d/vcs                                                4.7s
  => [7/8] RUN apt-get install -y         binfmt-support         bmap-tools         btrfs-progs         debian-archive-keyring         debian-keyring         dosfstools         e2  46.0s
  => [8/8] RUN cd /tmp &&     export GOPATH=/tmp/debos &&     go install -v github.com/t3gemstone/debos/cmd/debos@v1.1.3.6 &&     cp /tmp/debos/bin/debos /usr/local/bin &&     rm   44.7s
  => exporting to image                                                                                                                                                              10.0s
  => => naming to docker.io/t3gemstone/distrobox:latest                                                                                                                               0.0s
  task: [box] distrobox-assemble create --file distrobox.ini
  - Creating gemstone-distrobox...
  Creating 'gemstone-distrobox' using image t3gemstone/distrobox   [ OK ]
  Distrobox 'gemstone-distrobox' successfully created.
  To enter, run:

  distrobox enter gemstone-distrobox

  Successfully copied 2.05kB to /tmp/gemstone-distrobox.os-release
  Starting container...                            [ OK ]
  Installing basic packages...                     [ OK ]
  Setting up devpts mounts...                      [ OK ]
  Setting up read-only mounts...                   [ OK ]
  Setting up read-write mounts...                  [ OK ]
  Setting up host's sockets integration...         [ OK ]
  Integrating host's themes, icons, fonts...       [ OK ]
  Setting up distrobox profile...                  [ OK ]
  Setting up sudo...                               [ OK ]
  Setting up user groups...                        [ OK ]
  Setting up user's group list...                  [ OK ]
  Adding user...                                   [ OK ]
  Ensuring user's access...                        [ OK ]
  Setting up skel...                               [ OK ]
  Executing init hooks...                          [ OK ]
  Setting up init system...                        [ OK ]
  Firing up init system...                         [ OK ]

  Container Setup Complete!
  task: [box] distrobox-enter --additional-flags "--tty" --name gemstone-distrobox --no-workdir
  ⚠️  First time user password setup ⚠️ 
  New password: 
  Retype new password: 
  passwd: password updated successfully
  _____ _____   _____                     _       _   _             
  |_   _|___ /  |  ___|__  _   _ _ __   __| | __ _| |_(_) ___  _ __  
    | |   |_ \  | |_ / _ \| | | | '_ \ / _` |/ _` | __| |/ _ \| '_ \ 
    | |  ___) | |  _| (_) | |_| | | | | (_| | (_| | |_| | (_) | | | |
    |_| |____/  |_|  \___/ \__,_|_| |_|\__,_|\__,_|\__|_|\___/|_| |_|
                                                                    
  🚀 distrobox:workdir> 
  ```
</CodeGroup>

Kurulum işleminin sonuna doğru sizlerden `⚠️  First time user password setup ⚠️` distrobox ortamınıza
bir şifre vermeniz istenecektir. Derleme işlemlerini yaparken Terminalden hangi konsol içerisinde bulunduğunuzu
ayırt edebilmeniz için bilgisayarınızın şifresinden farklı olarak 1 karakterlik şifre seçebilirsiniz.
Son olarak `🚀 distrobox:workdir>` satırını gördüğünüzde artık Yocto ve İmaj derlemesi için hazırsınız!

### 2.5. Yocto ile Çekirdek Yazılımları Derle

SDK yazılımcı kiti, farklı mimari ve işletim sistemlerine yönelik derleme yapabilmeniz için bir takım parametreler
içermektedir. Örneğin Gemstone *T3-GEM-O1* modeli aarch64 mimari bir hedef (target) iken kullandığınız
Ubuntu bilgisayar için `intel-corei7-64` seçerek oluşan imaj dosyalarını doğrudan kendi bilgisayarınızda
çalıştırabilirsiniz. Aşağıdaki derleme işlemleri `intel-corei7-64` mimarisi için yapılmış olup QEMU isimli
sanallaştırma uygulaması aracılığıyla bu imajları doğrudan kendi bilgisayarından başlatabileceğiniz biçimde
anlatılmıştır.

<Warning>
  Bu işlemler bilgisayarınızın performansına bağlı olarak yaklaşık 5 saat sürebilmektedir.
</Warning>

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task yocto:build MACHINE=intel-corei7-64
  ```

  ```bash Output lines theme={"system"}
  🚀 distrobox:workdir> task yocto:build MACHINE=intel-corei7-64
  task: [yocto:build] bash -c "TEMPLATECONF=/home/workdir/yocto/meta-gemstone/conf/templates/intel-corei7-64/ source /home/workdir/yocto/poky/oe-init-build-env /home/workdir/build/intel-corei7-64 && cd /home/workdir && bitbake gemstone-boot-files"
  Loading cache: 100% |                                                                                                                                                     | ETA:  --:--:--
  Loaded 0 entries from dependency cache.
  Parsing recipes: 100% |####################################################################################################################################################| Time: 0:00:23
  Parsing of 958 .bb files complete (0 cached, 958 parsed). 1921 targets, 322 skipped, 0 masked, 0 errors.
  NOTE: Resolving any missing task queue dependencies

  Build Configuration:
  BB_VERSION           = "2.8.0"
  BUILD_SYS            = "x86_64-linux"
  NATIVELSBSTRING      = "ubuntu-22.04"
  TARGET_SYS           = "x86_64-gemstone-linux-musl"
  MACHINE              = "intel-corei7-64"
  DISTRO               = "gemstone"
  DISTRO_VERSION       = "0.0.1"
  TUNE_FEATURES        = "m64 corei7"
  TARGET_FPU           = ""
  meta                 = "HEAD:62cb12967391db709315820d48853ffa4c6b4740"
  meta-gemstone        = "HEAD:f1532a1b4965e02070ff691950aa18faee3fa73f"
  meta-intel           = "HEAD:0be954e82f09d235d2b5e5ea01bb62ffa8d0b5f7"

  Sstate summary: Wanted 928 Local 0 Mirrors 0 Missed 928 Current 162 (0% match, 14% complete)################################################################               | ETA:  0:00:00
  Initialising tasks: 100% |#################################################################################################################################################| Time: 0:00:03
  NOTE: Executing Tasks
  Setscene tasks: 1090 of 1090
  Currently  8 running tasks (1878 of 2435)  77% |#########################################################################################################                                |
  0: linux-intel-6.6.65+git-r0 do_fetch - 14m11s (pid 39218)  54% |##########################################################                                                   | 3.10 MiB/s
  1: gcc-cross-x86_64-13.3.0-r0 do_compile - 4m24s (pid 220797)
  2: ovmf-native-edk2-stable202402-r0 do_fetch - 4m21s (pid 222276)  36% |####################################                                                                  | 4.14 MiB/s
  3: ovmf-edk2-stable202402-r0 do_fetch - 4m13s (pid 226477)
  4: cpio-native-2.15-r0 do_configure - 1m47s (pid 271124)
  5: glib-2.0-native-1_2.78.6-r0 do_configure - 1m14s (pid 278327)
  6: groff-native-1.23.0-r0 do_compile - 37s (pid 293231)
  7: libx11-native-1_1.8.9-r0 do_compile - 30s (pid 298691)
  Sstate summary: Wanted 41 Local 0 Mirrors 0 Missed 41 Current 1049 (0% match, 100% complete)#################################################################               | ETA:  0:00:00
  Initialising tasks: 100% |################################################################################################################################################# | Time: 0:00:03
  NOTE: Executing Tasks
  NOTE: Executing Tasks
  NOTE: Tasks Summary: Attempted 2435 tasks of which 2365 didn't need to be rerun and all succeeded.
  ```
</CodeGroup>

### 2.6. Debos ile İşletim Sistemi İmajını Derle

Yukarıdaki bölümde Yocto derlemesi tamamlandığında Kernel, Bootloader, Firmware gibi çekirdek yazılımlar oluşur.
Debos/Debootstrap ise işletim sistemi oluşturarak çekirdek yazılımlarla birleştirip **.img** uzantılı imaj
dosyasını hazırlar.

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task distro:build MACHINE=intel-corei7-64 DISTRO_TYPE=desktop DISTRO_BASE=ubuntu DISTRO_SUITE=jammy IMG_SIZE=16G
  ```

  ```bash Output lines theme={"system"}
  🚀 distrobox:workdir> task distro:build MACHINE=intel-corei7-64 DISTRO_TYPE=desktop DISTRO_BASE=ubuntu DISTRO_SUITE=jammy IMG_SIZE=16G
  task: [distro:permissions] sudo mkdir -p /home/workdir/build/debos
  [sudo] password for vm: 
  task: [distro:permissions] sudo chown $USER:$USER /home/workdir/build/debos
  task: [distro:permissions] chmod +x /home/workdir/distro/scripts/*/*.sh
  task: [distro:yocto:local-apt-server] pkill -f "python3 -m http.server" &>/dev/null || true
  task: [distro:yocto:local-apt-server] bash -c "TEMPLATECONF=/home/workdir/yocto/meta-gemstone/conf/templates/intel-corei7-64/ source /home/workdir/yocto/poky/oe-init-build-env /home/workdir/build/intel-corei7-64 && cd /home/workdir && bitbake package-index"
  Loading cache: 100% |######################################################################################################################################################| Time: 0:00:00
  NOTE: Executing Tasks
  NOTE: Running task 545 of 548 (/home/workdir/yocto/openembedded-core/meta/recipes-core/meta/package-index.bb:do_package_index)
  NOTE: recipe package-index-1.0-r0: task do_package_index: Started
  NOTE: recipe package-index-1.0-r0: task do_package_index: Succeeded
  NOTE: Running noexec task 548 of 548 (/home/workdir/yocto/openembedded-core/meta/recipes-core/meta/package-index.bb:do_build)
  NOTE: Tasks Summary: Attempted 548 tasks of which 546 didn't need to be rerun and all succeeded.
  task: [distro:yocto:local-apt-server] bash -c "cd /home/workdir/build/tmp-musl/deploy/deb && python3 -m http.server 2>/dev/null" &
  task: [distro:build] sudo mkdir -p /run/debos
  task: [distro:build] cd /run/debos && sudo debos --disable-fakemachine --debug-shell --artifactdir=/home/workdir/build/debos --scratchdir=/home/workdir/build/debos --rootdir=/run/debos --template-var="workdir:/home/workdir" --template-var="machine:intel-corei7-64" --template-var="base:ubuntu" --template-var="type:desktop" --template-var="suite:jammy" --template-var="release:v2025.10" --template-var="image:gemstone-desktop-v2025.10-ubuntu-jammy-intel-corei7-64.img" --template-var="imagepath:/home/workdir/build/debos/gemstone-desktop-v2025.10-ubuntu-jammy-intel-corei7-64.img" --template-var="imagesize:6G" --template-var="arch:amd64" /home/workdir/distro/distro.yaml 2>&1 | tee -a /home/workdir/build/debos/log.txt
  2025/06/23 13:24:46 ==== debootstrap ====
  2025/06/23 13:24:46 Debootstrap | I: Retrieving InRelease 
  2025/06/23 13:24:47 Debootstrap | I: Checking Release signature
  2025/06/23 13:24:47 Debootstrap | I: Valid Release signature (key id F6ECB3762474EDA9D21B7022871920D1991BC93C)
  2025/06/23 13:24:49 Debootstrap | I: Retrieving Packages 
  2025/06/23 13:24:50 Debootstrap | I: Validating Packages 
  2025/06/23 13:24:54 Debootstrap | I: Resolving dependencies of required packages...
  2025/06/23 13:24:55 Debootstrap | I: Resolving dependencies of base packages...
  2025/06/23 13:25:00 Debootstrap | I: Checking component main on https://archive.ubuntu.com/ubuntu...
  2025/06/23 13:25:00 Debootstrap | I: Validating ...
  2025/06/23 13:25:02 Debootstrap | I: Chosen extractor for .deb packages: dpkg-deb
  2025/06/23 13:25:03 Debootstrap | I: Extracting ...
  2025/06/23 13:25:04 Debootstrap | I: Installing core packages...
  2025/06/23 13:25:05 Debootstrap | I: Unpacking required packages...
  2025/06/23 13:25:08 Debootstrap | I: Configuring required packages...
  2025/06/23 13:25:10 Debootstrap | I: Unpacking the base system...
  2025/06/23 13:25:11 Debootstrap | I: Configuring the base system...
  2025/06/23 13:25:14 Debootstrap | I: Base system installed successfully.
  2025/06/23 13:25:14 ==== apt ===
  2025/06/23 13:27:24 ==== Install PiXflat theme from deb ====
  2025/06/23 13:27:24 cd $(mktemp -d)... | --2025-06-23 13:27:24--  http://archive.raspberrypi.org/debian/pool/main/p/pixflat-icons/pixflat-icons_0.26_all.deb
  2025/06/23 13:27:33 install-local-apt.sh intel-corei7-64 desktop false | Preparing to unpack .../0-kernel-6.6.65-intel-pk-standard_6.6.65+git0+9901a21dd1.a4ec5f44dc-r0_amd64.deb ...
  2025/06/23 13:27:58 install-astral-uv.sh | downloading uv 0.7.13 x86_64-unknown-linux-gnu
  2025/06/23 13:28:02 ==== overlay ====
  2025/06/23 13:28:02 Overlaying /home/workdir/distro/overlays/desktop/all on /run/debos/root
  2025/06/23 13:28:02 ==== overlay ====
  2025/06/23 13:28:02 Overlaying /home/workdir/distro/overlays/desktop/intel-corei7-64 on /run/debos/root
  2025/06/23 13:28:02 ==== run ====
  2025/06/23 13:28:07 install-firefox.sh | 
  2025/06/23 13:28:36 ==== run ====
  2025/06/23 13:28:36 install-vscode.sh | 
  2025/06/23 13:28:36 ==== run ====
  2025/06/23 13:31:33 disable-services.sh desktop | Removed /etc/systemd/system/timers.target.wants/e2scrub_all.timer.
  2025/06/23 13:31:34 ==== run ====
  2025/06/23 13:31:34 setup-gemstone-apt.sh intel-corei7-64 jammy | deb [signed-by=/etc/apt/keyrings/gemstone-packages-keyring.gpg] https://packages.t3gemstone.org/apt/intel-corei7-64 jammy main
  2025/06/23 13:31:34 ==== run ====
  2025/06/23 13:31:34 setup-services.sh | Created symlink /etc/systemd/system/multi-user.target.wants/gem-first-boot.service → /etc/systemd/system/gem-first-boot.service.
  2025/06/23 13:31:34 ==== run ====
  2025/06/23 13:31:34 clean-up.sh desktop | apt-get remove
  2025/06/23 13:31:41 ==== run ====
  2025/06/23 13:31:41 ==== image-partition ====
  2025/06/23 13:31:42 Formatting partition 1 | mkfs.fat 4.2 (2021-01-31)
  2025/06/23 13:31:42 Formatting partition 2 | mke2fs 1.46.5 (30-Dec-2021)
  2025/06/23 13:31:42 ==== Deploying filesystem onto image ====
  2025/06/23 13:33:03 Setting up fstab
  2025/06/23 13:33:03 Setting up /etc/kernel/cmdline
  2025/06/23 13:33:08 ==== Recipe done ====
  task: [distro:build] sudo chown $USER:$USER /home/workdir/build/debos/gemstone-desktop-v2025.10-ubuntu-jammy-intel-corei7-64.img*
  ```
</CodeGroup>

### 2.7. Derlenen İmajı QEMU ile Çalıştır

Oluşturduğunuz imaj dosyasını Gemstone kartlara yüklemeden Sanal Makine olarak QEMU aracılığıyla çalıştırmak için
aşağıdaki komutu çalıştırınız ve işletim sistemi içerisinde geziniz!

<CodeGroup>
  ```bash Terminal lines theme={"system"}
  task yocto:runqemu MACHINE=intel-corei7-64 DISTRO_TYPE=desktop DISTRO_BASE=ubuntu DISTRO_SUITE=jammy WORKDIR=$PWD
  ```

  ```bash Output lines theme={"system"}
  🚀 distrobox:workdir> task yocto:runqemu MACHINE=intel-corei7-64 DISTRO_TYPE=desktop DISTRO_BASE=ubuntu DISTRO_SUITE=jammy WORKDIR=$PWD
  task: [yocto:runqemu] qemu-system-x86_64 -enable-kvm -machine pc -cpu host -smp $(nproc) -append 'root=/dev/vda2 rw init_fatal_sh=1 loglevel=4 console=ttyS0,115200' \
    -m 4G \
    -netdev user,id=net0,hostfwd=tcp::10022-:22 \
    -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:02 \
    -object rng-random,filename=/dev/urandom,id=rng0 \
    -device virtio-rng-pci,rng=rng0 \
    -device virtio-blk-pci,drive=disk0 \
    -drive id=disk0,file="/home/workdir/build/debos/gemstone-desktop-v2025.10-ubuntu-jammy-intel-corei7-64.img",format=raw,if=none \
    -device qemu-xhci \
    -device usb-tablet \
    -device usb-kbd \
    -device virtio-vga \
    -serial stdio \
    -initrd "/home/workdir/build/tmp-musl/deploy/images/intel-corei7-64/gemstone-image-rd-intel-corei7-64.cpio.gz" \
    -kernel "/home/workdir/build/tmp-musl/deploy/images/intel-corei7-64/bzImage"
  Gtk-Message: 14:13:08.868: Failed to load module "canberra-gtk-module"
  Gtk-Message: 14:13:08.869: Failed to load module "canberra-gtk-module"
  ```
</CodeGroup>

<Frame caption="QEMU ile Gemstone imajı çalıştırma.">
  <video controls className="w-full aspect-video" src="https://mintcdn.com/t3gemstone-754bcb96/oFj6OOIrYSQVBj-3/videos/gemstone-qemu.mp4?fit=max&auto=format&n=oFj6OOIrYSQVBj-3&q=85&s=1e0b91a9953984dd5c29ebfb78d344b3" data-path="videos/gemstone-qemu.mp4" />
</Frame>

<Tip>QEMU Kullanıcı Adı: **gemstone** Şifre: **t3**</Tip>

# 3. Son

Bu bölümü tamamlayarak; işletim sistemini derleyip, QEMU ile bu sistemi çalıştırarak Gemstone geliştiricilerinin
sistemleri derlerken hangi araçları kullandıklarını ve süreçleri gördünüz.

<Check>
  Sonraki bölüme geçmeden önce yukarıda öğrendiğiniz bütün işlemleri bu sayfaya mümkün mertebe bakmadan
  tekrar hatırlamaya çalışarak derleme işlemi yapmayı deneyiniz.
</Check>
