2011-09-26 14 views
11

मैं अपने यू-बूट/लिनक्स ज्ञान को व्यवस्थित करना चाहता हूं। क्या यह सच है कि प्रत्येक एम्बेडेड प्लेटफ़ॉर्म में न्यूनतम 2 बूटलोडर चरणों की आवश्यकता होती है? या प्रक्रिया का पालन कर सकते हैं?एंबेडेड लिनक्स - बूटिंग चरण

  1. 1 चरण बूटलोडर (हो सकता है यू-बूट) आंतरिक प्रोसेसर के रोम में संग्रहित है और अद्यतन नहीं किया जा सकता है। यह आंतरिक कैश मेमोरी से चलेगा। इस यू-बूट की आवश्यकता है (कम से कम): रैम शुरू करें, बाहरी फ्लैश शुरू करें, सीरियल कंसोल प्रारंभ करें, 2-चरण बूटलोडर को पढ़ें और चलाएं।

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

  3. लिनक्स कर्नेल स्टार्टअप।

क्या पहला चरण बूटलोडर हमेशा पढ़ने के लिए है?

उत्तर

11

कहां, यह पहला बूटलोडर कितना सिस्टम निर्भर है। आपके पास कुछ प्रकार का यूएसबी बूट करने योग्य डिवाइस हो सकता है जो हार्डवेयर में सभी को रैम करने के लिए फर्मवेयर को गिनती और डाउनलोड करता है, फिर उस रैम से प्रोसेसर बूट करता है।

आम तौर पर हाँ पहला बूट किसी प्रकार का फ्लैश होता है। यह पहला विचार है कि पहला बूटलोडर उबर सरल, अनिवार्य रूप से 100% बग फ्री और टिकाऊ और भरोसेमंद और विश्वसनीय रूप से एक सीरियल या अन्य तरीके से विश्वसनीय हो ताकि आप इसे दूसरे/वास्तविक बूटलोडर को प्रतिस्थापित करने के लिए उपयोग कर सकें।

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

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

एक लिनक्स बूटलोडर को किसी भी/सभी की आवश्यकता नहीं है, बहुत ही कम, सेटअप रैम, कमांड लाइन या एटैग या लिनक्स को जो कुछ भी और शाखा तैयार करें।

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

6

पहला चरण बूटलोडर केवल पढ़ने के लिए नहीं है - लेकिन कुछ पुनर्प्राप्ति मोड के साथ रोम में केवल पढ़ने के लिए बूटलोडर डालना उपयोगी होता है यदि आप फ़्लैश के पढ़ने-लिखने वाले हिस्सों को दूषित करते हैं; अन्यथा आपको पुनर्प्राप्त करने के लिए फ्लैश चिप पर प्रोग्रामर को शारीरिक रूप से संलग्न करने की आवश्यकता होगी।

4

यदि आप यू-बूट का उपयोग कर रहे हैं, तो दूसरा चरण बूटलोडर बूट समय को तेज करने के लिए छोड़ा जा सकता है। दूसरे शब्दों में, पहला चरण बूटलोडर (एसपीएल) दूसरे चरण बूटलोडर (यू-बूट) को छोड़कर सीधे लिनक्स कर्नेल लोड करेगा। यू-बूट में, इसे Falcon Mode कहा जाता है।

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