Úvod Problém
Pri novom projekte sme sa rozhodli použiť ako hardvérovú platformu Raspberry Pi Compute Module 5 (CM5).
Dostal som vývojovú súpravu, ktorá pozostáva z:
- 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.
Cieľ
Aby som zjednodušil vývoj, chcel som spustiť systémový softvér (raspiOS) z karty microSD, pretože Compute Module 5 IO Board obsahuje slot na kartu microSD.
Použil som Raspberry Pi Imager na flashovanie najnovšieho operačného systému Raspberry Pi na kartu microSD, vložil kartu do slotu na doske IO a zapol systém.
Namiesto zavedenia operačného systému sa však na displeji zobrazila správa podobná terminálu "SD: card not detected" (SD: karta nebola detekovaná) a systém sa nespustil.
Príčina a následok
Po určitom výskume som našiel vysvetlenie v dokumentácii Raspberry Pi pre Compute Module 5:
- slot na kartu microSD (len pre použitie s variantmi Lite bez eMMC; ostatné varianty tento slot ignorujú)
To znamená, že slot microSD je použiteľný len vo variante "Lite", ktorý neobsahuje vstavané úložisko eMMC. Môj CM5 má 32 GB eMMC, takže slot SD je deaktivovaný a počas štartu systému ignorovaný.
Správny spôsob inštalácie systémového softvéru na CM5 s eMMC
Ak chcete nainštalovať operačný systém na CM5 s eMMC, postupujte podľa oficiálnych pokynov pre setting up the IO Board.
Rozhodujúcim krokom je umiestnenie prepojky na konektor J2 na doske IO. Tým sa CM5 prepne do režimu bootovania z USB, čo umožní vášmu hostiteľskému počítaču pristupovať k eMMC ako k hromadnému úložnému zariadeniu.
Problém s rpiboot a riešenie
Na mojom vývojovom počítači (Ubuntu 22.04) som pôvodne skúšal nainštalovať rpiboot s:
sudo apt install rpiboot
Táto verzia však nefungovala správne - pravdepodobne preto, že bola zastaraná alebo nekompatibilná s CM5.
Namiesto toho som musel zostaviť rpiboot zo zdrojových kódov. Postupujte podľa tohto návodu:
Klonujte oficiálny repozitár:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
Nainštalujte závislosti a zostavte:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
Spustite rpiboot
s pripojeným CM5 a s jumperom J2 na mieste:
sudo ./rpiboot -d mass-storage-gadget64
Systém rozpozná eMMC CM5 a teraz naň môžete flashnúť operačný systém pomocou Raspberry Pi Imager alebo dd.
Zhrnutie
- Slot SD CM5 funguje len vo variantoch Lite (bez eMMC).
- Ak chcete flashovať CM5 s eMMC, musíte:
** Nastavte prepojku J2.
** Pomocou nástroja rpiboot sprístupniť eMMC cez USB. - Ak pribalený rpiboot nefunguje, zostavte ho zo zdrojových kódov.
Keď to urobíte, môžete flashovať operačný systém Raspberry Pi priamo na eMMC, ako keby to bola karta SD.