डिवाइस ट्री ओवरले

डिवाइस ट्री (डीटी), नाम वाले नोड और प्रॉपर्टी का डेटा स्ट्रक्चर होता है. यह ऐसे हार्डवेयर के बारे में बताता है जिसे खोजा नहीं जा सकता. Android में इस्तेमाल होने वाले Linux कर्नल जैसे कर्नल, DT का इस्तेमाल करते हैं. इससे Android डिवाइसों में इस्तेमाल होने वाले कई तरह के हार्डवेयर कॉन्फ़िगरेशन काम करते हैं. हार्डवेयर बनाने वाली कंपनियां, अपनी डिवाइस ट्री सोर्स (डीटीएस) फ़ाइलें उपलब्ध कराती हैं. इन्हें डिवाइस ट्री कंपाइलर का इस्तेमाल करके, डिवाइस ट्री ब्लॉब (डीटीबी) फ़ाइल में कंपाइल किया जाता है. इसके बाद, इन फ़ाइलों का इस्तेमाल बूटलोडर करता है. DTB फ़ाइल में, बाइनरी फ़ॉर्मैट वाला फ़्लैट किया गया डिवाइस ट्री होता है.

डिवाइस ट्री ओवरले (डीटीओ) की मदद से, सेंट्रल डीटीबी को डीटी (ओवरले के लिए डिवाइस ट्री ब्लॉब (डीटीबीओ)) पर ओवरले किया जा सकता है. डीटीओ का इस्तेमाल करने वाला बूटलोडर, सिस्टम-ऑन-चिप (एसओसी) डीटी को बनाए रख सकता है. साथ ही, डिवाइस के हिसाब से डीटी को डाइनैमिक तौर पर ओवरले कर सकता है. इससे ट्री में नोड जोड़े जा सकते हैं और मौजूदा ट्री में प्रॉपर्टी में बदलाव किए जा सकते हैं.

Android 9 की रिलीज़ में अपडेट

Android 9 में, बूटलोडर को यूनिफ़ाइड डीटीबी को कर्नेल में पास करने से पहले, डीटीओ में बताई गई प्रॉपर्टी में बदलाव नहीं करना चाहिए.

DT लोड करना

बूटलोडर में DT लोड करने के लिए, उसे बनाना, बांटना, और चलाना होता है.

पहली इमेज. बूटलोडर में डिवाइस ट्री लोड करने का सामान्य तरीका.

  1. DTB बनाने और उसे फ़्लैश करने के लिए:

    1a. डीटीसी (dtc) का इस्तेमाल करके, डीटीएस (.dts) को डीटीबी (.dtb) में कंपाइल करें. डीटीबी को फ़्लैट किए गए डीटी के तौर पर फ़ॉर्मैट किया जाता है. 1b. .dtb फ़ाइल को बूटलोडर के रनटाइम में ऐक्सेस की जा सकने वाली जगह पर फ़्लैश करें. इसके बारे में यहां बताया गया है.

  2. पार्टिशन करने के लिए, फ़्लैश मेमोरी में ऐसी जगह तय करें जिसे बूटलोडर रनटाइम के दौरान ऐक्सेस कर सके और जिस पर भरोसा किया जा सके. इस जगह पर .dtb को रखा जाएगा. उदाहरण स्थान:

    दूसरी इमेज. .dtb को बूट पार्टीशन में डालें. इसके लिए, इसे image.gz में जोड़ें और mkbootimg को
    "कर्नेल" के तौर पर पास करें.

    तीसरी इमेज. .dtb को यूनीक पार्टिशन
    (उदाहरण के लिए, dtb पार्टिशन) में रखें.

  3. DTB लोड करने और कर्नल शुरू करने के लिए:

    • स्टोरेज से .dtb को मेमोरी में लोड करें.
    • लोड किए गए DT के मेमोरी पते का इस्तेमाल करके, कर्नल शुरू करें.

आगे क्या करना है?

इस पेज पर, DT को लोड करने के लिए बूटलोडर के सामान्य वर्कफ़्लो के बारे में बताया गया है. साथ ही, DT से जुड़े सामान्य शब्दों की सूची दी गई है. इस सेक्शन के अन्य पेजों पर, बूटलोडर की सुविधा लागू करने, कंपाइल करने, पुष्टि करने, और अपने डीटीओ को ऑप्टिमाइज़ करने का तरीका बताया गया है. साथ ही, एक से ज़्यादा डीटी का इस्तेमाल करने का तरीका भी बताया गया है. आपको DTO सिंटैक्स और DTO और DTBO पार्टिशन फ़ॉर्मैटिंग के बारे में भी जानकारी मिल सकती है.