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

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

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

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

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

डेटा टेंप्लेट लोड करना

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

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

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

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

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

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

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

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

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

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

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