27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Cihaz ağacı yer paylaşımları
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Cihaz ağacı (DT), keşfedilemez donanımı tanımlayan adlandırılmış düğümler ve özelliklerin bulunduğu bir veri yapısıdır. Android'de kullanılan Linux çekirdeği gibi çekirdekler, Android destekli cihazların kullandığı çok çeşitli donanım yapılandırmalarını desteklemek için DT'leri kullanır. Donanım tedarikçileri, kendi cihaz ağacı kaynak (DTS) dosyalarını sağlar. Bu dosyalar, cihaz ağacı derleyicisi kullanılarak cihaz ağacı blob'u (DTB) dosyasına derlenir. Bu dosyalar daha sonra önyükleyici tarafından kullanılır. DTB dosyası, ikili biçimli bir düzleştirilmiş cihaz ağacı içerir.
Cihaz ağacı yer paylaşımı (DTO), merkezi bir DTB'nin DT'ye (yer paylaşımı için cihaz ağacı blob'u (DTBO)) yerleştirilmesini sağlar. DTO kullanan bir önyükleyici, çip üzerinde sistem (SoC) DT'sini koruyabilir ve ağaca düğüm ekleyerek ve mevcut ağaçtaki özelliklerde değişiklik yaparak cihaza özgü bir DT'yi dinamik olarak yerleştirebilir.
Android 9 sürümündeki güncellemeler
Android 9'da önyükleyici, birleştirilmiş DTB'yi çekirdeğe iletmeden önce DTO'larda tanımlanan özellikleri değiştirmemelidir.
DT yükleme
Bir DT'yi önyükleyiciye yükleme işlemi, derleme, bölümleme ve çalıştırma işlemlerini içerir.

Şekil 1. Cihaz ağacını bootloader'a yüklemeyle ilgili tipik uygulama.
DTB'yi oluşturmak ve flaşlamak için:
1a. DTS'yi (.dts
) DTB (.dtb
) olarak derlemek için DTC'yi (dtc
) kullanın. DTB, düzleştirilmiş bir DT olarak biçimlendirilir.
1b. .dtb
dosyasını, önyükleyicinin çalışma zamanında erişebileceği bir konuma flaşlayın (ayrıntılar aşağıda verilmiştir).
Bölüm oluşturmak için, .dtb
'yi yerleştirmek üzere flash bellekte bootloader'ın çalışma zamanında erişebileceği ve güvenilir bir konum belirleyin. Örnek konumlar:

Şekil 2. .dtb dosyasını, image.gz dosyasına ekleyerek ve mkbootimg'e "kernel" olarak göndererek bir önyükleme bölümüne yerleştirin.
|

Şekil 3. .dtb dosyasını benzersiz bir bölüme yerleştirin (örneğin, dtb bölümü).
|
DTB'yi yüklemek ve çekirdeği başlatmak için:
.dtb
'ü depolama alanından belleğe yükleyin.
- Yüklenen DT'nin bellek adresini kullanarak çekirdeği başlatın.
Sırada ne var?
Bu sayfada, DT yüklemeyle ilgili tipik bir önyükleyici iş akışı ayrıntılı olarak açıklanmakta ve yaygın DT terimlerinin listesi sunulmaktadır. Bu bölümdeki diğer sayfalarda açılış programı desteğini nasıl uygulayacağınız, DTO'nuzu nasıl derleyeceğiniz, doğrulayacağınız ve optimize edeceğiniz, ayrıca birden fazla DT'yi nasıl kullanacağınız açıklanmaktadır. Ayrıca DTO söz dizimi ve gerekli DTO ve DTBO bölüm biçimlendirmesi hakkında ayrıntılı bilgi edinebilirsiniz.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Device tree overlays\n\n\u003cbr /\u003e\n\nA *device tree (DT)* is a data structure of named nodes and properties that\ndescribe non-discoverable hardware. Kernels, such as the Linux kernel\nused in Android, use DTs to support a wide range of hardware configurations used\nby Android-powered devices. Hardware vendors supply their own *device tree\nsource (DTS)* files, which are compiled into the *device tree blob (DTB)* file\nusing the *device tree compiler* . These files are then used by the\nbootloader. The DTB file contains a binary-formatted *flattened device tree*.\n\nA [*device tree overlay (DTO)*](https://lkml.org/lkml/2012/11/5/615)\nenables a central DTB to be overlaid on the DT (a *device tree blob\nfor overlay (DTBO)*). A bootloader using DTO can maintain the system-on-chip\n(SoC) DT and dynamically overlay a device-specific DT, adding nodes to the tree\nand making changes to properties in the existing tree.\n\nUpdates in Android 9 release\n----------------------------\n\nIn Android 9, the bootloader must not modify the\nproperties defined in the DTOs before passing the unified DTB to the kernel.\n\nLoad a DT\n---------\n\nLoading a DT in bootloader involves building, partitioning, and running.\n\n**Figure 1.** Typical implementation for loading device tree in bootloader.\n\n1. To create and flash the DTB:\n\n 1a. Use the DTC (`dtc`) to compile DTS (`.dts`) into a DTB (`.dtb`).\n The DTB is formatted as a flattened DT.\n 1b. Flash the `.dtb` file into a bootloader runtime-accessible location\n (detailed below).\n2. To partition, determine a bootloader runtime-accessible and trusted location\n in flash memory to put `.dtb`. Example locations:\n\n \u003cbr /\u003e\n\n |-----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|\n | **Figure 2.** Put .dtb in a boot partition by appending to image.gz and passing as \"kernel\" to mkbootimg. | **Figure 3.** Put .dtb in a unique partition (for example, dtb partition). |\n\n \u003cbr /\u003e\n\n3. To load the DTB and start the kernel:\n\n - Load `.dtb` from storage into memory.\n - Start kernel using the memory address of the loaded DT.\n\nWhat's next?\n------------\n\nThis page details a typical bootloader workflow for loading a DT and provides\na list of common DT terms. Other pages in this section describe how to\n[implement bootloader support](/docs/core/architecture/dto/implement), how to\n[compile](/docs/core/architecture/dto/compile), verify, and\n[optimize your DTO](/docs/core/architecture/dto/optimize), and how to\n[use multiple DTs](/docs/core/architecture/dto/multiple). You can\nalso get details on [DTO syntax](/docs/core/architecture/dto/syntax) and\nrequired\n[DTO and DTBO partition formatting](/docs/core/architecture/dto/partitions)."]]