2015-06-08 7 views
5

bootloaders यू-बूट की तरह है कि ओपन फर्मवेयर एपीआई को लागू नहीं करते, कर्नेल में चपटा डिवाइस पेड़ की एक बाइनरी रूप पारित करने के लिए उम्मीद कर रहे हैं - LinuxFDTBlobबूटलोडर और कर्नेल स्रोत कोड दोनों में डिवाइस ट्री स्ट्रक्चर (डीटीएस) फ़ाइल की आवश्यकता क्यों है?

कर्नेल में मौजूद डीटीएस फ़ाइलें क्यों हैं भी? क्या वह अनावश्यक नहीं है?

उदाहरण के लिए, यू-बूट स्रोत कोड फ़ाइल निम्न है:
arch/arm/dts/tegra124-jetson-tk1.dts

इस फ़ाइल में भी लिनक्स स्रोत कोड के नीचे पाया जा सकता है:
arch/arm/boot/dts/tegra124-jetson-tk1.dts

हालांकि कर्नेल संस्करण है 4 बार यू-बूट संस्करण, मैं इस अनावश्यकता के पीछे कारण जानना चाहता हूं। मेरा मानना ​​है कि रखरखाव और डेवलपर्स दोनों के लिए बनाए रखना और उपयोग करना कठिन है

+1

यह एक मुद्दा है कि [लोग कुछ समय के लिए हल करने का प्रयास कर रहे हैं] (http://thread.gmane.org/gmane.comp.devicetree.compiler/14)। – Notlikethat

+0

ऐसा लगता है कि माइग्रेशन पूर्ण नहीं हुआ जब उन्हें लगभग समाधान मिला: | – Hamzahfrq

+1

वे विभिन्न उद्देश्यों के लिए हैं। * यू-बूट * संस्करण कई बोर्डों पर चलाने के लिए * यू-बूट * के विभिन्न संस्करण की अनुमति देता है। यह एक [टैग: केबिल्ड] या * कॉन्फ़िगरेशन * आधारभूत संरचना का हिस्सा है जो एक डब्ल्यूआईपी है। लिनक्स संस्करण लिनक्स बूट करने के लिए हैं। जाहिर है, * यू-बूट * एक अलग संस्करण है क्योंकि बूट करने के लिए आवश्यक कई परिधीय नहीं हैं। आप सभी * यू-बूट * ड्राइवरों के लिए एक ही तर्क कर सकते हैं; सबसे अधिक लिनक्स ड्राइवरों की प्रतियां हैं जो मतदान के दिनचर्या द्वारा प्रतिस्थापित इंटरप्ट्स के साथ होती हैं। बीएसडी और लिनक्स क्यों मौजूद हैं? क्या वे एक दूसरे को डुप्लिकेट नहीं करते हैं? प्रत्येक प्रोजेक्ट की अपनी लिंक वाली सूची क्यों होती है? –

उत्तर

1

नीचे Artlessnoise की टिप्पणी से जवाब है। यू-बूट संस्करण एक अलग संस्करण है क्योंकि बूट करने के लिए आवश्यक कई परिधीय नहीं हैं। आप हमेशा लिनक्स के लिए कर्नेल संस्करण का उपयोग करते हैं i.e. u-boot इसे लिनक्स में पास करता है (साथ ही भार bzImage या vmlinux)।

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

+0

तो क्या लिनक्स यू-बूट से पारित डिवाइस पेड़ को पूरी तरह से अनदेखा करता है? या यू-बूट डिवाइस पेड़ के शीर्ष पर लिनक्स डिवाइस पेड़ स्तरित है, और फिर लिनक्स उस विलय वाले पेड़ का उपयोग करता है? ऐसा लगता है कि इस सवाल का जवाब कभी नहीं मिला। –

+0

हां लिनक्स डिवाइस पेड़ को अनदेखा करता है जो यू-बूट में है। लिनक्स डिवाइस पेड़ कर्नेल भाग के बाद आता है। यह यू-बूट-> कर्नेल-> dtb-> rootfs –

+0

@ChrisWarth Linux कर्नेल _uses_ यू-बूट द्वारा पारित डीटीबी की तरह है। लेकिन यू-बूट द्वारा पारित डीटीबी यूबूट के डीटीबी नहीं है। यह कर्नेल डीटीबी (कर्नेल स्रोतों में मौजूद है) है। कर्नेल को मेमोरी में भी लोड करने से पहले, डिवाइस को कॉन्फ़िगर करने के लिए बूट-अप के दौरान यूबूट द्वारा यूबूट डीटीबी का उपयोग किया जाता है – Hamzahfrq

3
  1. यूबूट और लिनक्स कर्नेल दो अलग-अलग परियोजनाएं हैं। इसलिए उन्हें अपनी अलग परियोजनाओं के प्रबंधन के लिए विभिन्न प्रतियों की आवश्यकता होगी।
  2. लिनक्स कर्नेल को अन्य बूटलोडर्स के साथ भी बूट किया जा सकता है। लिनक्स कर्नेल को डीटीबी पास करने के अन्य तरीके हैं, उदाहरण के लिए। कर्नेल छवि को डीटीबी के साथ जोड़ा जा सकता है जिसे इसे उपयोग करने की आवश्यकता है।

उपर्युक्त कारणों से डीटीएस की प्रतियों को दोहराने के लिए यह समझ में आता है।

यू-बूट स्रोत यू-बूट DTB का उपयोग करता है, जबकि लिनक्स लिनक्स DTB उपयोग करता है जब कर्नेल बूट:

+0

हाँ पोस्ट कर सकते हैं तो मैं इसे उत्तर के रूप में चुन सकता हूं लेकिन यह मुझे और अधिक समझ में आता है कि बूटलोडर और कर्नेल हार्डवेयर विवरण से स्वतंत्र हैं यानी एक ही डिवाइस पेड़ जिसे उचित रूप से बनाए रखा गया है, दोनों के लिए काम करना चाहिए – Hamzahfrq

+0

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

0

उबूट में अलग डीटीएस फ़ाइल है, जिसे uboot defconfig में CONFIG_DEFAULT_DEVICE_TREE के रूप में सेट किया जा सकता है। यह डीटीएस फ़ाइल यूबूट छवि के साथ बनाई गई है, जिसका अर्थ है कि यह यूबूट छवि का हिस्सा है। यूबूट डीटीएस फ़ाइल का सिंटैक्स लिनक्स कर्नेल डीटीएस फ़ाइल के समान है। लिनक्स डीटीएस फ़ाइल को डीटीबी फ़ाइल में संकलित किया गया है और लिनक्स कर्नेल द्वारा हार्डवेयर कॉन्फ़िगरेशन को पार्स करने के लिए अलग से उपयोग किया जाता है। लिनक्स डीटीबी छवि लिनक्स कर्नेल छवि से अलग से चमकती है।

संबंधित मुद्दे