परिचय समस्या
एक नई परियोजना के लिए, हमने Raspberry Pi Compute Module 5 (CM5) को हमारे हार्डवेयर प्लेटफॉर्म के रूप में उपयोग करने का निर्णय लिया।
मुझे एक विकास किट मिली जिसमें शामिल हैं:
- Compute Module 5 (4 GB RAM and 32 GB eMMC)* 27W USB-C Type-C PD Power Supply* Compute Module 5 IO Board* Antenna Kit* Compute Module 5 IO Case* 2 x HDMI® to HDMI® Cable* Cooler for Compute Module 5* USB-A to USB-C Cable.
लक्ष्य
विकास को सरल बनाने के लिए, मैं माइक्रोएसडी कार्ड से सिस्टम सॉफ़्टवेयर (raspiOS) चलाना चाहता था, क्योंकि Compute Module 5 IO Board में माइक्रोएसडी कार्ड स्लॉट शामिल है।
मैंने माइक्रोएसडी कार्ड पर नवीनतम रास्पबेरी पाई ओएस को फ्लैश करने के लिए Raspberry Pi Imager का उपयोग किया, कार्ड को आईओ बोर्ड पर स्लॉट में डाला, और सिस्टम पर संचालित किया।
हालांकि, ओएस में बूट करने के बजाय, डिस्प्ले ने "एसडी: कार्ड का पता नहीं चला" कहते हुए एक टर्मिनल जैसा संदेश दिखाया, और सिस्टम बूट नहीं हुआ।
कारण और प्रभाव
कुछ शोध के बाद, मुझे Compute Module 5के लिए रास्पबेरी पाई प्रलेखन में स्पष्टीकरण मिला:
- माइक्रोएसडी कार्ड स्लॉट (केवल बिना ईएमएमसी वाले लाइट वेरिएंट के साथ उपयोग के लिए; अन्य वेरिएंट स्लॉट को अनदेखा करते हैं)
इसका मतलब है कि माइक्रोएसडी स्लॉट केवल "लाइट" संस्करण पर प्रयोग करने योग्य है, जिसमें ऑनबोर्ड ईएमएमसी स्टोरेज शामिल नहीं है। मेरे CM5 में 32 GB eMMC है, इसलिए SD स्लॉट अक्षम है और बूट के दौरान अनदेखा किया जाता है।
eMMC के साथ CM5 पर सिस्टम सॉफ़्टवेयर स्थापित करने का सही तरीका
eMMC के साथ CM5 पर ऑपरेटिंग सिस्टम स्थापित करने के लिए, setting up the IO Boardके लिए आधिकारिक निर्देशों का पालन करें।
IO बोर्ड पर J2 हेडर पर जम्पर लगाना एक महत्वपूर्ण कदम है। यह CM5 को USB बूट मोड में डालता है, जिससे आपका होस्ट पीसी एक मास-स्टोरेज डिवाइस की तरह eMMC तक पहुंच सकता है।
rpiboot और समाधान के साथ समस्या
मेरी विकास मशीन (उबंटू 22.04) पर, मैंने शुरू में rpiboot स्थापित करने का प्रयास किया:
sudo apt install rpiboot
हालाँकि, यह संस्करण ठीक से काम नहीं करता था - संभवतः यह पुराना या CM5 के साथ असंगत होने के कारण।
इसके बजाय, मुझे स्रोत से rpiboot बनाना पड़ा। यहां दिए गए चरणों का पालन करें:
आधिकारिक भंडार क्लोन करें:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
### निर्भरताएँ स्थापित करें और बनाएँ:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
### rpiboot चलाएँ
CM5 कनेक्ट और J2 जम्पर के साथ:
sudo ./rpiboot -d mass-storage-gadget64
सिस्टम CM5 के eMMC का पता लगाएगा, और अब आप रास्पबेरी पाई इमेजर या डीडी का उपयोग करके उस पर ओएस फ्लैश कर सकते हैं।</:code4:>
</:code3:>
</:code2:></:code1:>
सारांश
- CM5 SD स्लॉट केवल लाइट (कोई eMMC) वेरिएंट पर काम करता है।
- eMMC के साथ CM5 फ्लैश करने के लिए, आपको यह करना होगा:
** J2 जम्पर सेट करें।
** USB पर eMMC को उजागर करने के लिए rpiboot का उपयोग करें। - यदि पैक किया गया rpiboot काम नहीं करता है, तो इसे स्रोत से बनाएं।
एक बार ऐसा करने के बाद, आप रास्पबेरी पाई ओएस को सीधे ईएमएमसी पर फ्लैश कर सकते हैं जैसे कि यह एक एसडी कार्ड था।