Bevezetés Probléma
Egy új projektünkhöz úgy döntöttünk, hogy a Raspberry Pi Compute Module 5 (CM5) oldalt használjuk hardverplatformként.
Kaptam egy fejlesztőkészletet, amely a következőkből állt:
- 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.
Cél
A fejlesztés egyszerűsítése érdekében a rendszerszoftvert (raspiOS) microSD-kártyáról akartam futtatni, mivel a Compute Module 5 IO Board tartalmaz egy microSD-kártyahelyet.
Ehhez használtam Raspberry Pi Imager a legújabb Raspberry Pi operációs rendszert egy microSD-kártyára flasheltem, majd a kártyát behelyeztem az IO-kártyán lévő nyílásba, és bekapcsoltam a rendszert.
Azonban ahelyett, hogy az operációs rendszer indult volna be, a kijelzőn egy terminálszerű üzenet jelent meg: "SD: card not detected", és a rendszer nem indult el.
Ok és okozat
Némi kutatás után megtaláltam a magyarázatot a Raspberry Pi dokumentációjában a Compute Module 5:
- microSD kártyahely (csak az eMMC nélküli Lite változatoknál használható; más változatok figyelmen kívül hagyják a nyílást)
Ez azt jelenti, hogy a microSD foglalat csak a "Lite" változatban használható, amely nem tartalmaz beépített eMMC tárolót. Az én CM5-öm 32 GB eMMC-vel rendelkezik, így az SD foglalat le van tiltva és figyelmen kívül marad a rendszerindítás során.
A rendszerszoftver telepítésének helyes módja CM5 CM5 eMMC-vel
Az operációs rendszer eMMC-vel ellátott CM5-re történő telepítéséhez kövesse az alábbi hivatalos utasításokat setting up the IO Board.
Fontos lépés, hogy az IO lap J2 fejlécén elhelyezzen egy jumper-t. Ez a CM5-öt USB-indítási módba állítja, így a központi számítógép tömeges tárolóeszközként férhet hozzá az eMMC-hez.
Probléma az rpiboot-tal és a megoldás
A fejlesztőgépemen (Ubuntu 22.04) kezdetben a rpiboot telepítésével próbálkoztam:
sudo apt install rpiboot
Ez a verzió azonban nem működött megfelelően - valószínűleg azért, mert elavult vagy nem kompatibilis a CM5-tel.
Ehelyett az rpibootot forrásból kellett megépítenem. Kövesd a lépéseket itt:
Klónozd a hivatalos tárolót:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
Telepítse a függőségeket és építsen:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
Futtassa az rpiboot-ot
a CM5 csatlakoztatásával és a J2 jumperrel a helyén:
sudo ./rpiboot -d mass-storage-gadget64
A rendszer érzékeli a CM5 eMMC-jét, és most már a Raspberry Pi Imager vagy a dd segítségével flashelheted rá az operációs rendszert.
Összefoglaló
- A CM5 SD-nyílás csak a Lite (eMMC nélküli) változatokban működik.
- A CM5 eMMC-vel történő flasheléséhez a következőkre van szükség:
** Állítsa be a J2 jumper-t.
** Az eMMC USB-n keresztül történő feltöltéséhez használd az rpiboot-ot. - Ha a csomagolt rpiboot nem működik, építsd meg a forrásból.
Ha ez megtörtént, akkor a Raspberry Pi OS-t közvetlenül az eMMC-re flashelheted, mintha SD-kártya lenne.