تجاوز إلى المحتوى الرئيسي

Raspberry Pi CM5 صورة التمهيد eMMC ل Raspberry Pi CM5
مشاكل في تثبيت برنامج النظام

مشكلة المقدمة

بالنسبة لمشروعنا الجديد، قررنا استخدام 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.

حالة وحدة الحوسبة 5 وحدة الحوسبة 5 IO

الهدف

لتبسيط عملية التطوير، أردت تشغيل برنامج النظام (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 مثل جهاز تخزين كبير.

لوحة الإدخال والإخراج لوحدة الحوسبة 5 IO

مشكلة في 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.