Cihaz Ağacı Kaplamaları

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 Device Tree Blob (DTB) dosyasında derlediği kendi DT kaynak dosyalarını sağlar.

Cihaz ağacı yerleşimi (DTO), merkezi bir cihaz ağacı bloğunun (DTB) cihaz ağacına yerleştirilmesini sağlar. DTO kullanan bir önyükleyici, çip üzerinde sistem (SoC) DT'sini koruyabilir ve ağaca düğümler ekleyerek ve mevcut ağaçtaki özelliklerde değişiklikler yaparak, cihaza özel bir DT'yi dinamik olarak kaplayabilir.

Bu sayfa, bir CE yüklemek için tipik bir önyükleyici iş akışının ayrıntılarını verir ve genel CE 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ın nasıl derleneceğini , doğrulanacağını ve optimize edileceğini ve birden çok DT'nin nasıl kullanılacağını açıklar . Ayrıca DTO sözdizimi ve gerekli DTO/DTBO bölüm biçimlendirmesi hakkında ayrıntılı bilgi alabilirsiniz.

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

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

Bir cihaz ağacının yüklenmesi

Bir aygıt ağacının önyükleyiciye yüklenmesi, 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:
    • Aygıt ağacı kaynağını ( .dts ) düzleştirilmiş bir aygıt ağacı olarak biçimlendirilmiş bir aygıt ağacı blobunda ( .dtb ) derlemek için aygıt ağacı derleyicisini ( dtc ) kullanın.
    • .dtb dosyasını bir önyükleyici çalışma zamanı erişilebilir konumuna flashlayın (aşağıda ayrıntılı olarak açıklanmıştır).
  2. Bölümlemek için, .dtb koymak için flash bellekte bir önyükleyici çalışma zamanı erişilebilir ve güvenilir bir konum belirleyin. Örnek konumlar:
    Önyükleme Bölümü
    Şekil 2. .dtb ekleyerek ve image.gz " kernel " olarak geçirerek önyükleme bölümüne mkbootimg .
    Benzersiz Bölme
    Şekil 3. .dtb benzersiz bir bölüme yerleştirin (örn. dtb bölümü).
  3. Koşmak:
    • .dtb depolama alanından belleğe yükleyin.
    • Yüklenen DT'nin bellek adresi verilen çekirdeği başlatın.

terminoloji

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

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