مشكلة المقدمة
بالنسبة لمشروعنا الجديد، قررنا استخدام 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) من بطاقة microSD، حيث يتضمن Compute Module 5 IO Board فتحة بطاقة microSD.
لقد استخدمت Raspberry Pi Imager لفلاش أحدث نظام تشغيل Raspberry Pi OS على بطاقة microSD، وأدخلت البطاقة في الفتحة الموجودة على لوحة الإدخال والإخراج، وشغّلت النظام.
ومع ذلك، بدلاً من الإقلاع في نظام التشغيل، أظهرت الشاشة رسالة تشبه المحطة الطرفية تقول "SD: لم يتم اكتشاف البطاقة"، ولم يتم تشغيل النظام.
السبب والنتيجة
بعد بعض البحث، وجدتُ الشرح في وثائق Raspberry Pi لـ Compute Module 5:
- فتحة بطاقة microSD (فقط للاستخدام مع متغيرات Lite التي لا تحتوي على eMMC؛ تتجاهل المتغيرات الأخرى الفتحة)
هذا يعني أن فتحة بطاقة microSD قابلة للاستخدام فقط على متغير "لايت"، والذي لا يتضمن وحدة تخزين eMMC مدمجة. يحتوي جهاز CM5 الخاص بي على eMMC بسعة 32 جيجابايت، لذا يتم تعطيل فتحة SD وتجاهلها أثناء الإقلاع.
الطريقة الصحيحة لتثبيت برنامج النظام على CM5 باستخدام eMMC
لتثبيت نظام التشغيل على CM5 المزود بـ eMMC، اتبع التعليمات الرسمية لـ setting up the IO Board.
الخطوة الحاسمة هي وضع وصلة على رأس J2 على لوحة الإدخال والإخراج. هذا يضع CM5 في وضع التمهيد USB، مما يسمح للكمبيوتر المضيف بالوصول إلى eMMC مثل جهاز تخزين كبير.
مشكلة في rpiboot والحل
على جهاز التطوير الخاص بي (Ubuntu 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 الخاصة بـ CM5، ويمكنك الآن وميض نظام التشغيل عليها باستخدام Raspberry Pi Imager أو dd.
الملخص
- لا تعمل فتحة SD الخاصة بـ CM5 إلا على متغيرات Lite (بدون eMMC).
- لوميض CM5 مع eMMC، يجب عليك:
** ضبط وصلة J2.
** استخدم rpiboot لكشف eMMC عبر USB. - إذا لم يعمل rpiboot المعبأ، فقم ببنائه من المصدر.
بمجرد الانتهاء من ذلك، يمكنك وميض نظام التشغيل Raspberry Pi OS مباشرة على eMMC كما لو كانت بطاقة SD.