Úvod Problém
Pro nový projekt jsme se rozhodli použít jako hardwarovou platformu Raspberry Pi Compute Module 5 (CM5).
Obdržel jsem vývojovou sadu, která se skládá 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.
Cíl
Pro zjednodušení vývoje jsem chtěl spustit systémový software (raspiOS) z karty microSD, protože Compute Module 5 IO Board obsahuje slot pro kartu microSD.
Použil jsem Raspberry Pi Imager k flashování nejnovějšího operačního systému Raspberry Pi na kartu microSD, vložil kartu do slotu na desce IO a zapnul systém.
Místo zavedení operačního systému se však na displeji objevila terminálu podobná zpráva "SD: karta nebyla detekována" a systém nenaběhl.
Příčina a následek
Po chvíli pátrání jsem našel vysvětlení v dokumentaci k Raspberry Pi pro Compute Module 5:
- slot pro kartu microSD (pouze pro použití s variantami Lite bez eMMC; ostatní varianty slot ignorují)
To znamená, že slot microSD je použitelný pouze u varianty "Lite", která neobsahuje vestavěné úložiště eMMC. Můj CM5 má 32 GB eMMC, takže slot SD je zakázán a při spouštění systému ignorován.
Správný způsob instalace systémového softwaru na CM5 s eMMC
Chcete-li nainstalovat operační systém do zařízení CM5 s eMMC, postupujte podle oficiálních pokynů pro. setting up the IO Board.
Zásadním krokem je umístění propojky na header J2 na desce IO. Tím se zařízení CM5 přepne do zaváděcího režimu USB, což umožní hostitelskému počítači přistupovat k eMMC jako k hromadnému úložnému zařízení.
Problém s rpiboot a řešení
Na svém vývojovém počítači (Ubuntu 22.04) jsem zpočátku zkoušel nainstalovat rpiboot s:
sudo apt install rpiboot
Tato verze však nefungovala správně - pravděpodobně proto, že byla zastaralá nebo nekompatibilní s CM5.
Místo toho jsem musel sestavit rpiboot ze zdrojových kódů. Postupujte podle tohoto návodu:
Klonujte oficiální repozitář:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
Nainstalujte závislosti a sestavte:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
Spusťte rpiboot
s připojeným CM5 a s nasazenou propojkou J2:
sudo ./rpiboot -d mass-storage-gadget64
Systém detekuje eMMC CM5 a nyní na něj můžete flashnout operační systém pomocí Raspberry Pi Imager nebo dd.
Souhrn
- Slot SD CM5 funguje pouze u variant Lite (bez eMMC).
- Chcete-li flashovat CM5 s eMMC, musíte:
** Nastavte propojku J2.
** Použijte rpiboot pro vystavení eMMC přes USB. - Pokud přibalený rpiboot nefunguje, sestavte jej ze zdrojových kódů.
Jakmile to uděláte, můžete flashovat operační systém Raspberry Pi přímo na eMMC, jako by to byla karta SD.