क्या रास्पबेरी पाई का उपयोग करता है?


29

मैं रास्पबेरी पाई मदरबोर्ड पर BIOS के बारे में सीखना चाहता हूं। BIOS को क्या कहा जाता है? क्या इसका कोई विशिष्ट नाम है या इसे सिर्फ रास्पबेरी पाई पर BIOS कहा जाता है?


2
BIOS बूट करने से पहले आपके पीसी को नियंत्रित करने के लिए कुछ सॉफ़्टवेयर संग्रहीत करता है (उदाहरण-सेटअप हार्ड ड्राइव, मेमोरी आदि)। एक पीसी में पाई "BIOS" का उपयोग नहीं करता है। यह सिर्फ उस चिप के लिए लिखे फर्मवेयर का उपयोग करके ब्रॉडकॉम चिप (सीपीयू, कैश, जीपीयू) को इनिशियलाइज़ करता है और सीधे ऑपरेटिंग सिस्टम के पास जाता है। OS फिर Broadcom द्वारा रिपोर्ट किए गए हार्डवेयर और रैम का पता लगाता है। यह वास्तव में तेजी से बूटिंग करता है लेकिन केवल ब्रॉडकॉम को पता है कि मक्खी पर डिबग या "सेट" गुण कैसे होते हैं।
पिओटर कुला

जवाबों:


32

फर्मवेयर बंद-स्रोत स्वामित्व कोड है जो SoC (सिस्टम ऑन ए चिप) प्रोसेसर में प्रोग्राम किया गया है, जिसे संशोधित नहीं किया जा सकता है। पावर-अप पर फर्मवेयर एसडी कार्ड पर एक बूटलोडर आरंभ करेगा। मुझे विश्वास नहीं है कि कोई अन्य सेवाएं SoC फर्मवेयर के माध्यम से प्रदान की जाती हैं, इसलिए यह वास्तव में प्रति "" BIOS "(बेसिक इनपुट / आउटपुट सिस्टम) नहीं है। इस बिंदु के बाद बाकी सब कुछ एसडी कार्ड से आता है।

विकी के सॉफ्टवेयर सेक्शन के अनुसार , बूट ऑर्डर इस प्रकार है:

  1. पहला चरण बूटलोडर - इसका उपयोग एसडी कार्ड पर FAT32 बूट विभाजन को माउंट करने के लिए किया जाता है ताकि दूसरे चरण के बूटलोडर तक पहुंचा जा सके। यह RPC के निर्माण के दौरान ही SoC में प्रोग्राम किया जाता है और इसे किसी उपयोगकर्ता द्वारा रिप्रोग्राम नहीं किया जा सकता है।
  2. दूसरा चरण बूटलोडर (बूटकोड.बीन) - इसका उपयोग एसडी कार्ड से GPU फर्मवेयर को पुनः प्राप्त करने के लिए किया जाता है, फर्मवेयर को प्रोग्राम करता है, फिर GPU शुरू करें।
  3. GPU फर्मवेयर (start.elf) - एक बार लोड हो जाने के बाद, यह GPU को CPU शुरू करने की अनुमति देता है। GPU और CPU के बीच SDRAM विभाजन को कॉन्फ़िगर करने के लिए एक अतिरिक्त फ़ाइल, fixup.dat का उपयोग किया जाता है। इस बिंदु पर, सीपीयू को रीसेट से जारी किया जाता है और निष्पादन को स्थानांतरित किया जाता है।
  4. उपयोगकर्ता कोड - यह बाइनरी के किसी भी संख्या में से एक हो सकता है। डिफ़ॉल्ट रूप से, यह लिनक्स कर्नेल (आमतौर पर कर्नेल.आईएमजी नाम है), लेकिन यह एक और बूटलोडर (जैसे यू-बूट), या एक नंगे-हड्डियों का अनुप्रयोग भी हो सकता है।

7
मैं केवल यह जोड़ूंगा कि SoC के अंदर छोटे ROM पर 1st स्टेज बूटलोडर जला है। जैसा कि उल्लेख किया गया है, यह केवल bootcode.binएसडी कार्ड से लोड होने की जिम्मेदारी है । यही कारण है कि रास्पबेरीपी को एसडी कार्ड के अलावा अन्य माध्यम से बूट करना असंभव है।
क्रिज़िस्तोफ़ एडम्सकी

@TevoD, अच्छा जवाब! मुझे पूरी जानकारी है।
डेविन कोलियर जॉनसन जूल 17'13

16

@TevoD ने अपने उत्तर में जो लिखा है उसमें लगभग सही है - रास्पबेरीपी एक बंद लोडर के रूप में बंद स्रोत फर्मवेयर बाइनरी का उपयोग कर रहा है। वर्तमान संस्करण यहां पाया जा सकता है । फर्मवेयर बनाने वाली दो फाइलें हैं bootcode.bin(2nd स्टेज बूट लोडर) और start.elf(GPU "फर्मवेयर")। रास्पबेरीपी के लिए दिलचस्प और काफी अनोखी बात यह है कि यह शुरू होता हैGPU (ग्राफिक्स चिप) और यहां बूटलोडर वास्तव में चलाता है। GPUफिर शुरू होता है ARM CPUऔर लिनक्स कर्नेल चलाता है।

लिनक्स शुरू होने के बाद, कोड को GPUअनलोड नहीं किया जाता है, हालांकि। इसके बजाए यह स्वयं का सरल ओएस है, जिसे VCOS( Video Core Operating System) कहा जाता है । लिनक्स कर्नेल अपनी सेवाओं के साथ विशेष mailbox protocolऔर इंटरप्ट का उपयोग करके संचार करता है (जीपीआर एआरएम इंटरट्रेट्स का उत्पादन कर सकता है)। आप मेलबॉक्स के लिए इस्तेमाल किया प्रोटोकॉल के बारे में कुछ जानकारी पढ़ सकते हैं framebuffer यहाँ । GPU न केवल ग्राफिक चीजों के लिए जिम्मेदार है - यह घड़ियों को भी नियंत्रित करता है और उदाहरण के लिए ऑडियो का उत्पादन करता है। इस संबंध में, GPU फर्मवेयर BIOSको सामान्य पीसी कंप्यूटर से कुछ समान माना जा सकता है। आप इस रीडिंग रास्पबेरीपी लिनक्स कर्नेल ड्राइवरों पर अधिक जानकारी पा सकते हैं।

आप इस उत्तर में कुछ और जानकारी भी पा सकते हैं ।


अच्छी बात। मैं BIOS प्रश्न पर स्पष्ट रूप से ऑनबोर्ड फर्मवेयर, एसडी कार्ड का उल्लेख करने पर विचार कर रहा था, और अधिक पूर्ण उत्तर के लिए बूट ऑर्डर जोड़ा। तुम्हारा निश्चित रूप से इसे वहाँ से लेता है। +1
तेवो डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.