Cihaz ağacı yer paylaşımlarını (DTO) uygulamak için cihaz ağacını (DT), binayı, bölümlendirme ve çalıştırma. Çalışan bir uygulamanız olduktan sonra, arasındaki uyumluluğu sağlamaya yönelik bir strateji belirler ve her DT bölümünün güvenliğini sağlar.
DT'yi bölün
DT'yi iki bölüme ayırarak başlayın:
- Ana DT. Yalnızca SoC'ye yönelik kısım ve varsayılan yapılandırmalar, SoC tedarikçisi tarafından sağlanır.
- Yer paylaşımlı DT. Google Cloud Platform'un sunduğu ODM/OEM.
DT'leri böldükten sonra, ana fonksiyonlar arasındaki DT'yi ve yer paylaşımlı DT'yi sağlar. Böylece ana DT ile bindirmeli DT'nin birleştirilmesi, Cihazın DT'si. DTO biçimi ve kurallarıyla ilgili ayrıntılar için şuraya bakın: DTO söz dizimi. Ayrıntılı bilgi için için bkz. Birden çok DT.
Ana ve yer paylaşımlı DT'ler oluştur
Ana DT'yi oluşturmak için:
- Ana DT
.dts
dosyasını bir.dtb
dosyası olarak derleyin. .dtb
dosyasını bootloader'ın çalışma zamanına uygun bölümüne yükleyin ([Bölüm DT'lerinde](#partition) ayrıntılı olarak açıklanmaktadır).
Bindirme DT'sini oluşturmak için:
- Yer paylaşımlı DT
.dts
dosyasını bir.dtbo
dosyası olarak derleyin. Bu sırada bu dosya biçimi,.dtb
farklı dosya uzantısı kullanılarak DT'den ayırt edilebilmesi için ana DT. .dtbo
dosyasını bootloader'ın çalışma zamanına uygun bölümüne yükleyin ([Bölüm DT'lerinde](#partition) ayrıntılı olarak açıklanmaktadır).
DTC ile derleme ve ana makinede DTO sonuçlarını doğrulama ile ilgili ayrıntılar için şuraya bakın: Derleyin ve doğrulayın.
Bölüm DT'leri
Flash'ta bootloader'ın çalışma zamanına uygun ve güvenilir bir konumunu belirleyin
hafızaya alındı: .dtb
ve .dtbo
.
Ana DT için örnek konumlar:
- Çekirdeğe eklenen, başlatma bölümünün bir parçası (
image.gz
) - Özel bölümlendirmede (
dtb
) ayrı DT blob'ları (.dtb
)
Bindirme DT için örnek yerler:
Şekil 1. dtbo bölümünü, dtbo bölümü gibi benzersiz bir bölüme yerleştirin.
Şekil 2. .dtbo dosyasını bir odm bölümüne yerleştirin (bunu yalnızca bootloader'ınız Bir odm bölümünün dosya sisteminden veri yükleme özelliği).
Not: Etiketin boyutu yer paylaşımlı DT bölümü cihaza ve cihazda gereken değişikliklerin miktarına ana DT blobunun üst kısmında yer alır. 8 MB genellikle yeterlidir. Bu boyut, gelecekte de büyüyebileceğinden emin olabilirsiniz.
Şu cihazları destekleyen cihazlar için: kusursuz (A/B) güncellemeler, ana DT ve bindirme DT bölümleri:
Şekil 3. DTBO bölümü A/B, örnek 1.
4.Şekil DTBO bölümü A/B, örnek 2.
Bootloader'da çalıştır
Çalıştırmak için:
5. Şekil. Bootloader'da DTO için tipik çalışma zamanı uygulaması.
.dtb
öğesini depolama alanından belleğe yükleyin..dtbo
öğesini depolama alanından belleğe yükleyin.- Birleştirilmiş DT olmak için
.dtb
üzerine.dtbo
ekleyin. - Birleştirilmiş DT'nin bellek adresine göre çekirdeği başlatın.
Uyumluluğu koruyun
Ana DTB (SoC tedarikçisinden alınan), DTBO'lar için bir API yüzeyi olarak değerlendirilir. Şu tarihten sonra: DT'yi, SoC'ye (SoC) ve cihaza özgü bir bölüme ayırmak, gelecekte bu iki bölümü karşılıklı olarak uyumlu hale getirmelisiniz:
- Ana DT'deki DT tanımı. Örneğin, düğümler, özellikler etiketler. Ana DT'deki herhangi bir tanım değişikliği, yer paylaşımındaki değişiklikleri tetikleyebilir DT. Örneğin, ana DT'de bir düğüm adını düzeltmek için bir "takma ad" tanımlayın şunu etiketle: orijinal düğüm adıyla eşleşir (bindirme DT'sinin değişmesini önlemek için).
- Bindirme DT mağazası konumu. Örneğin, bölüm adı, mağaza biçimindedir.
Güvenliği sağlama
Bootloader, DTB veya DTBO'nun güvenli, değiştirilmemiş ve bozuk olmadığından emin olmalıdır. DTB veya DTBO'yu güvence altına almak için dilediğiniz çözümü kullanabilirsiniz. Örneğin, Başlatma görüntüsü VBoot 1.0'da imza veya AVB HASH altbilgisi (VBoot 2.0).
- DTB veya DTBO benzersiz bir bölümdeyse bu bölümü güven zinciri olabilir. Güven zinciri, güven verir ve bütünlük ile özgünlüğü doğrulayan bootloader'a gider bölümünü içerir.
- DTB veya DTBO mevcut bir bölümde (ör.
odm
bölüm) bu bölümlendirme AVB'nin güven zincirinde olmalıdır. (DTBO bölümüodm
bölümüyle bir ortak anahtarı paylaşabilir.
Ayrıntılar için Doğrulandı Başlatma.