Aygıt Ağacı Katmanları

Aygıt ağacı (DT), keşfedilemeyen donanımı tanımlayan adlandırılmış düğümlerin ve özelliklerin bir veri yapısıdır. Android'de kullanılan Linux çekirdeği gibi işletim sistemleri, Android destekli cihazlar tarafından kullanılan çok çeşitli donanım yapılandırmalarını desteklemek için DT'leri kullanır. Donanım satıcıları, Linux'un daha sonra önyükleyici tarafından kullanılan Aygıt Ağacı Blobu (DTB) dosyasına derlediği kendi DT kaynak dosyalarını sağlar.

Bir aygıt ağacı yerleşimi (DTO), aygıt ağacının üzerine bir merkezi aygıt ağacı blobunun (DTB) eklenmesini sağlar. DTO kullanan bir önyükleyici, çip üzerinde sistem (SoC) DT'sini koruyabilir ve aygıta özgü bir DT'yi dinamik olarak kaplayarak ağaca düğümler ekleyebilir ve mevcut ağaçtaki özelliklerde değişiklikler yapabilir.

Bu sayfa, bir DT yüklemek için tipik bir önyükleyici iş akışının ayrıntılarını verir ve genel DT terimlerinin bir listesini sağlar. Bu bölümdeki diğer sayfalar, DTO için önyükleyici desteğinin nasıl uygulanacağını , DTO uygulamanızı nasıl derleyeceğinizi , doğrulayacağınızı ve optimize edeceğinizi ve birden çok DT'yi nasıl kullanacağınızı açıklamaktadır . Ayrıca DTO sözdizimi ve gerekli DTO / DTBO bölüm biçimlendirmesiyle ilgili ayrıntıları da edinebilirsiniz.

Android 9 Sürümündeki Güncellemeler

Android 9'da, önyükleyici, birleştirilmiş aygıt ağacı blobunu çekirdeğe geçirmeden önce aygıt ağacı katmanlarında tanımlanan özellikleri değiştirmemelidir.

Bir cihaz ağacı yükleme

Önyükleyiciye bir aygıt ağacı yüklemek, oluşturma, bölümleme ve çalıştırmayı içerir.

Şekil 1. Aygıt ağacını önyükleyiciye yüklemek için tipik uygulama.
  1. İnşa etmek:
    • Cihaz ağaç derleyici (kullanın dtc cihaz ağacı kaynağını (derlemek) .dts bir cihaz ağacı damla (içine) .dtb düzleştirilmiş cihaz ağacı olarak biçimlendirilmiş).
    • .dtb dosyasını önyükleyici çalışma zamanında erişilebilen bir konuma flash yapın (aşağıda ayrıntılı olarak açıklanmıştır).
  2. Bölümlemek için, flash bellekte .dtb koymak için önyükleyici çalışma zamanı erişimli ve güvenilir bir konum .dtb . Örnek yerler:
    Önyükleme Bölümü
    Şekil 2. Put .dtb için ekleyerek önyükleme bölümünde image.gz ve "geçen kernel kadar" mkbootimg .
    Benzersiz Bölme
    Şekil 3. .dtb benzersiz bir bölüme koyun (örn. dtb bölümü).
  3. Koşmak:
    • .dtb depolamadan belleğe yükleyin.
    • Yüklenen DT'nin bellek adresi verilen çekirdeği başlatın.

Terminoloji

Bu bölüm aşağıdaki cihaz ağacı terimlerini kullanır:

DT Cihaz Ağacı
DTB Aygıt Ağacı Blobu
DTBO Kaplama için Aygıt Ağacı Blobu
DTC Aygıt Ağacı Derleyici
DTO Aygıt Ağacı Yerleşimi
DTS Cihaz Ağacı Kaynağı
FDT Düzleştirilmiş Aygıt Ağacı, bir .dtb blob dosyasında bulunan ikili bir biçim