कुछ पृष्ठभूमि
सबसे महत्वपूर्ण बात जो आपको पता होनी चाहिए कि रास्पबेरीपी एक अजीब जानवर है जहां ARM CPUमुख्य सीपीयू नहीं है - यह केवल एक सह-प्रोसेसर है VideoCore GPU। जब रास्पबेरीपी शुरू होता है, तो एसडी कार्ड से एल 2 कैश तक जीपीयू बूँद पढ़ी जाती है और निष्पादित होती है। यह कोड तब सभी महत्वपूर्ण बाह्य उपकरणों (रैम, घड़ियां आदि) को लाता है और चालू करता है ARM CPU। फिर दूसरा चरण बूटलोडर या कुछ ऑपरेटिंग सिस्टम पर ही चलाया जा सकता है ARM CPU।
GPU बूँद केवल एक बूटलोडर नहीं है। यह वास्तव में एक ऑपरेटिंग सिस्टम (वीडियो कोर ओएस) है। सिस्टम के कुछ महत्वपूर्ण तत्व एआरएम सीपीयू द्वारा सीधे सुलभ नहीं हैं और इसका GPUउपयोग mailboxकरने के लिए ( संदेश प्रणाली का उपयोग करके ) के साथ संवाद करना पड़ता है। इस बारे में आंशिक दस्तावेज उपलब्ध है। अब Video Core OS( VCOS) ब्रॉडकॉम के कर्मचारियों द्वारा समय-समय पर Linuxकर्नेल द्वारा आवश्यक सुविधाओं को सक्षम करने के लिए बढ़ाया जाता है , RISC OSया कभी-कभी कुछ हॉबी ओएस भी। इस बारे में कोई अच्छा दस्तावेज नहीं है, फिर भी आपको इसमें खुदाई करनी होगी RaspberryPi forum;githubऔर संभवतः अन्य स्थानों के बारे में जानकारी प्राप्त करने के लिए। लेकिन यह वहाँ है .. कहीं। और कुछ लोग हैं जो रास्पबेरीपी पर अपने स्वयं के नंगे धातु कोड या यहां तक कि OSes को लिखने में आपकी मदद करते हैं। और निश्चित रूप से खुले स्रोत कोड का एक बहुत - उदाहरण के लिए RasbperryPi के लिनक्स कर्नेल।
वीडियोकोर मालिकाना है, कोई आधिकारिक दस्तावेज और विकास उपकरण नहीं है। इसलिए जब तक आप बहुत प्रयास नहीं करना चाहते, आप VCOSअपने कोड के साथ फिर से लिखना नहीं कर सकते । हालांकि, वीडियो कोर को रिवर्स करने के लिए कुछ प्रयास हैं, आप यहां कुछ जानकारी पा सकते हैं ।
एक और समस्या यह है कि USBSynopsys द्वारा स्टैक मालिकाना है और फिर से इसके लिए कोई दस्तावेज नहीं है और ऐसा लगता है कि प्रलेखन के साथ भी इसे मज़बूती से लागू करना मुश्किल है। लेकिन फिर से, कोड उपलब्ध है (लिनक्स कर्नेल, यू-बूट, सीएसयूडी )। उन्नत ग्राफिक्स क्षमताओं का उपयोग करना Video Coreभी कठिन हो सकता है - ग्राफिक्स पुस्तकालयों के लिए कुछ ओपन सोर्स कोड है, लेकिन यह केवल ARMपक्ष के लिए है।
कहा जा रहा है, यह संभव था RISC OSकि उपलब्ध जानकारी से पोर्ट बनाया जाए (यह मेरे लिए पूरी तरह से स्पष्ट नहीं है यदि वे केवल सार्वजनिक रूप से सुलभ जानकारी का उपयोग कर रहे हैं, हालांकि), कुछ लोग फिर से लिख रहे हैं (ब्रॉडकॉम से स्वतंत्र रूप से) मेनलाइन के लिए लिनक्स कर्नेल, वहां एक FreeBSDबंदरगाह है, 'यू-बूट' और अन्य। इसलिए अपना ओएस लिखना निश्चित रूप से संभव है। यह सिर्फ इतना आसान नहीं है जितना संभवतः हो सकता है।
तुम्हारे लक्ष्य
संख्या 1
जहां तक मुझे पता है, ऐसा कोई तरीका नहीं है जो एक वर्णित तरीके से SoC दूसरे तरीके से शुरू कर सकता है। तो पहले चरण का बूटलोडर चालू होना चाहिए SD card। और यह एक GPUबाइनरी होना है , न कि एक ARMबाइनरी जो एक और समस्या है। और रास्पबेरीपी में बोर्ड फ्लैश पर नहीं है जो एक समस्या है।
संख्या 2
मुख्य समस्या यह है कि flashरास्पबेरीपी पर कोई ऑन-बोर्ड नहीं है । आप एक जोड़ सकते हैं और इसे आपके बूटलोडर में सक्रिय किया जा सकता है (जो पहले से ही द्वितीय चरण का बूटलोडर होगा)। हालाँकि USB ड्राइवर लिखना समस्याग्रस्त हो सकता है।
संख्या 3, 4, 5
यह एक समस्या का ज्यादा नहीं होना चाहिए। अधिकांश परिधीय (कम से कम उन लोगों के लिए सुलभ ARM) यहां प्रलेखित हैं । मौजूदा बूटलोडर इसे और भी आसान बनाता है क्योंकि आप अपने SoC को पूरी तरह से कॉन्फ़िगर करते हैं। आप कुछ कोड और प्रलेखन के लिए यहां और यहां देख सकते हैं ।
वैकल्पिक
मैं किसी भी अन्य बोर्ड को रास्पबेरीपी के रूप में अच्छा नहीं जानता, इसलिए कुछ की सिफारिश करना कठिन है, लेकिन आप कुछ परिपक्व परियोजनाओं जैसे ओएमएपी आधारित बीगलबोर्ड / बीगलबोन / पांडोबोर्ड पर एक नज़र डाल सकते हैं या आप कुछ नए उत्पादों जैसे कि ऑलविनर के विकास का अनुसरण कर सकते हैं क्यूबबोर्ड या PCduino । यह सब इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं।