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

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

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

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

एंड्रॉइड 9 में अपडेट जारी

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

एक डिवाइस ट्री लोड करें

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

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

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

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

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

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

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

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