İndirme, derleme ve çalıştırma

Bu sayfada, Cuttlefish'te AAOS SDV'nin nasıl indirileceği, oluşturulacağı ve çalıştırılacağı açıklanmaktadır.

Repo istemcisini başlatma

İstemcinizi Android kaynak deposuna erişecek şekilde ayarlayın:

  1. sdv gibi bir çalışma dizini oluşturun ve bu dizine gidin:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Çalışma dizininizi kaynak kontrolü için başlatın:

    Bu örnekte 26Q2-fs-release dalı kullanılmaktadır.

    RELEASE=26Q2-fs-release
    repo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE

    -u seçeneği zorunludur ve Android kaynağındaki çeşitli Git projelerinin çalışma dizininizde nereye yerleştirileceğini belirten bir XML dosyası olan manifest dosyasını tanımlar. Bu örnekte, manifest dosyasının adı belirtilmediği için komut varsayılan manifest dosyasını (default.xml) kullanır.

    -b seçeneği, başlattığınız dalı tanımlar.

    Çıkış şu mesajı içermelidir:

    repo has been initialized in path_to_working_directory

AAOS SDV kaynağını indirme

Android kaynak ağacını çalışma dizininize indirmek için aşağıdaki komutu çalıştırın:

repo sync -c -j8

-c bağımsız değişkeni, Repo'ya mevcut manifest dalını sunucudan getirmesini söyler. -j8 komutu, daha hızlı tamamlanması için senkronizasyonu iş parçacıkları arasında böler.

Derleme ortamınızı ayarlama

Çalışma dizininizde, derleme ortamınızı ayarlamak için envsetup.sh komut dosyasını kaynaklayın:

source build/envsetup.sh

Bu komut dosyası, bu sayfada kullanılan komutlar da dahil olmak üzere Android kaynak koduyla çalışmanıza olanak tanıyan çeşitli komutları içe aktarır. Komut dosyasının kaynağını görüntülemek için platform/build/envsetup.sh bölümüne bakın. Yerleşik yardımı görüntülemek için hmm yazın.

Hedef seçin

SDV'yi oluşturmadan önce, oluşturulacak bir hedef belirleyin. Oluşturulacak hedefi belirlemek için lunch komutunu ve ardından oluşturulacak hedefi temsil eden bir dizeyi kullanın. Örneğin, Cuttlefish emülatörü için hedef oluşturmak üzere bu komutu kullanın:

lunch sdv_core_cf-trunk_staging-userdebug

Bu komut, oluşturulacak ürünü, yayın yapılandırmasını ve varyantı seçer ve seçimi ortamda saklar.

lunch dizininde bulunan ayrı bir Git projesinde SDV için lunch hedefleri sağlanır.devices/google/sdv Kullanılabilir hedeflerin ayrıntılı açıklaması için device/google/sdv/README.md adresini ziyaret edin. Başlıca Cuttlefish (cf) hedefleri şunlardır:

  • sdv_core_cf-trunk_staging-userdebug - Cuttlefish'te (cf) çalışan AAOS SDV Core görüntüsü oluşturun (sdv_core).
  • sdv_media_cf-trunk_staging-userdebug - virtIO sanallaştırılmış medya API'leriyle (sdv_media) AAOS SDV Core görüntüsü oluşturun.
  • sdv_media_har_cf-trunk_staging-userdebug - AAOS SDV medyayı (sdv_media_cf) yüksek kullanılabilirlik işleyicisini (HAR) içerecek şekilde genişleten bir görüntü oluşturun. HAR, başlatma sırasında otomatik olarak çalışır.lunch
  • sdv_ivi_cf-trunk_staging-userdebug - SDV Gateway ve Java örnek uygulamalarını içeren bir araç içi bilgi-eğlence (IVI) görüntüsü oluşturun.
  • sdv_ivi_cf_ds-trunk_staging-userdebug - AAOS SDV IVI hedefini (sdv_ivi_cf) genişleten ve Display Safety'nin DriverUI ile Gösterge Paneli uygulamasını içeren bir görüntü oluşturun.

AAOS SDV'yi oluşturma

Hedefinizi oluşturmak için aşağıdaki komutu çalıştırın. İş istasyonunuzun özelliklerine bağlı olarak ilk derleme 30 ila 60 dakika sürer. Sonraki derlemeler çok daha kısa sürer.

m

Derlemenizin çıktısı $OUT_DIR içinde görünür. Farklı hedefler oluşturursanız her hedef derlemesi $OUT_DIR içinde görünür.

Cuttlefish kullanarak derlemenizi test etme

AAOS SDV'yi oluşturduktan sonra Cuttlefish'i kullanarak derlemenizi test edin.

  1. Cuttlefish'i derlemenizle başlatmak için:

    cvd create

    Cuttlefish, oluşturduğunuz hedefi kullanarak çalışır (sdv_core_cf-trunk_staging-userdebug). Cuttlefish başlatıldıktan sonra şu mesaj gösterilir:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Cuttlefish'e bağlanmak için adb komutunu çalıştırın.

  3. Derlemenizin çalıştığını doğrulamak için adb devices komutunu çalıştırın. Buna benzer bir sonuç gösterilir:

    List of devices attached
    0.0.0.0:6520 device
  4. Cihazı kapatmak için cvd stop komutunu çalıştırın.

Farklı derlemelerle birden fazla Cuttlefish örneği çalıştırmak için Cuttlefish: çok kiracılılık başlıklı makaleyi inceleyin.

Sorun giderme

Bu bölümde, AAOS SDV'nin indirilmesi, oluşturulması veya çalıştırılması sırasında oluşabilecek hataların nasıl giderileceği açıklanmaktadır.

RBE hataları

Herhangi bir Uzaktan Derleme Yürütme (RBE) hatasıyla karşılaşırsanız USE_RBE ve ENABLE_RBE_BOOTSTRAP tanımlarını .bashrc veya .zshrc'den kaldırın.

cvd: VM yöneticisi crosvm bu makinede desteklenmiyor

Cuttlefish, sanal makine yöneticisinin crosvm makinenizde desteklenmediğini bildiriyorsa Cuttlefish'i yüklemek için aşağıdaki komutu çalıştırın:

sudo apt install cuttlefish-common

cvd not found

cvd not found hatası alırsanız:

  1. Derlemenizi tekrar ayarlayın.
  2. Hedef seçme ile devam edin.

Cuttlefish kilitlenme döngüleri

Cuttlefish kilitlenme döngüsüne girerse:

  1. Tüm Cuttlefish örneklerini durdurmak için cvd stop komutunu çalıştırın.
  2. Derlemenizi yeniden test etmek için Cuttlefish'i kullanın.