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

एक डिवाइस ट्री (डीटी) नामित नोड्स और गुणों की एक डेटा संरचना है जो गैर-खोज योग्य हार्डवेयर का वर्णन करती है। एंड्रॉइड में उपयोग किए जाने वाले लिनक्स कर्नेल जैसे गुठली, एंड्रॉइड-संचालित उपकरणों द्वारा उपयोग किए जाने वाले हार्डवेयर कॉन्फ़िगरेशन की एक विस्तृत श्रृंखला का समर्थन करने के लिए डीटी का उपयोग करते हैं। हार्डवेयर विक्रेता अपने स्वयं के डिवाइस ट्री स्रोत (DTS) फ़ाइलों की आपूर्ति करते हैं, जिन्हें डिवाइस ट्री कंपाइलर का उपयोग करके डिवाइस ट्री ब्लॉब (DTB) फ़ाइल में संकलित किया जाता है। इन फ़ाइलों का उपयोग तब बूटलोडर द्वारा किया जाता है। DTB फ़ाइल में एक बाइनरी-स्वरूपित चपटा डिवाइस ट्री होता है

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

डीटीबीओ ओवरले के लिए डिवाइस ट्री ब्लॉब

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

एंड्रॉइड 9 में, बूटलोडर को कर्नेल में एकीकृत डिवाइस ट्री ब्लॉब पास करने से पहले डिवाइस ट्री ओवरले में परिभाषित गुणों को संशोधित नहीं करना चाहिए।

डिवाइस ट्री लोड हो रहा है

बूटलोडर में डिवाइस ट्री को लोड करने में बिल्डिंग, पार्टीशनिंग और रनिंग शामिल है।

चित्र 1. बूटलोडर में डिवाइस ट्री लोड करने के लिए विशिष्ट कार्यान्वयन।
  1. डिवाइस ट्री ब्लॉब बनाने और फ्लैश करने के लिए:

    1अ. डिवाइस ट्री स्रोत ( .dts ) को डिवाइस ट्री ब्लॉब ( .dtb ) में संकलित करने के लिए डिवाइस ट्री कंपाइलर ( dtc >) का उपयोग करें। डिवाइस ट्री ब्लॉब को चपटा डिवाइस ट्री के रूप में स्वरूपित किया गया है। 1बी। .dtb फ़ाइल को बूटलोडर रनटाइम-सुलभ स्थान (नीचे विस्तृत) में फ्लैश करें।

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

    बूट विभाजन
    चित्र 2. .dtb में जोड़कर और image.gz को " kernel " के रूप में पास करके बूट पार्टीशन में mkbootimg
    अनोखा विभाजन
    चित्र 3. .dtb को एक अद्वितीय विभाजन (जैसे dtb विभाजन) में रखें।

  3. डिवाइस ट्री ब्लॉब को लोड करने और कर्नेल को प्रारंभ करने के लिए:

    3अ. मेमोरी में स्टोरेज से .dtb लोड करें। 3ख। लोड किए गए डीटी के मेमोरी एड्रेस का उपयोग करके कर्नेल प्रारंभ करें।

आगे क्या होगा?

यह पृष्ठ डीटी लोड करने के लिए विशिष्ट बूटलोडर कार्यप्रवाह का विवरण देता है और सामान्य डीटी शब्दों की सूची प्रदान करता है। इस खंड के अन्य पृष्ठ बताते हैं कि बूटलोडर समर्थन को कैसे लागू किया जाए, कैसे संकलित किया जाए, सत्यापित किया जाए और अपने डीटीओ को अनुकूलित किया जाए, और कई डीटी का उपयोग कैसे किया जाए। आप डीटीओ सिंटैक्स और आवश्यक डीटीओ/डीटीबीओ विभाजन स्वरूपण पर भी विवरण प्राप्त कर सकते हैं।