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

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

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

Android 9 वर्शन में किए गए अपडेट

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

डीटी लोड करना

बूटलोडर में डीटी लोड करने के लिए, उसे बनाना, पार्टिशन करना, और चलाना ज़रूरी है.

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

  1. डीटीबी बनाने और फ़्लैश करने के लिए:

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

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

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

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

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

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

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

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