Inleiding Probleem
Vir 'n nuwe projek het ons besluit om die Raspberry Pi Compute Module 5 (CM5) as ons hardewareplatform te gebruik.
Ek het 'n ontwikkelingsstel ontvang wat bestaan uit:
- 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.
Doel
Om ontwikkeling te vereenvoudig, wou ek die stelselsagteware (raspiOS) vanaf 'n microSD-kaart laat loop, aangesien die Compute Module 5 IO Board 'n microSD-kaartgleuf bevat.
Ek het Raspberry Pi Imager gebruik om die nuutste Raspberry Pi OS op 'n microSD-kaart te flits, die kaart in die gleuf op die IO-bord te plaas en die stelsel aan te skakel.
In plaas daarvan om in die bedryfstelsel te begin, het die skerm egter 'n terminale boodskap gewys wat sê "SD: kaart nie opgespoor nie", en die stelsel het nie begin nie.
Oorsaak en gevolg
Na 'n bietjie navorsing het ek die verduideliking in die Raspberry Pi-dokumentasie vir die Compute Module 5gevind:
- microSD-kaartgleuf (slegs vir gebruik met Lite-variante sonder eMMC; ander variante ignoreer die gleuf)
Dit beteken dat die microSD-gleuf slegs bruikbaar is op die "Lite"-variant, wat nie eMMC-berging aan boord insluit nie. My CM5 het 32 GB eMMC, so die SD-gleuf word gedeaktiveer en geïgnoreer tydens opstart.
Korrekte manier om stelselsagteware op CM5 met eMMC te installeer
Om die bedryfstelsel op 'n CM5 met eMMC te installeer, volg die amptelike instruksies vir setting up the IO Board.
'n Deurslaggewende stap is om 'n springer op die J2-kop op die IO-bord te plaas. Dit plaas die CM5 in die USB-opstartmodus, sodat u gasheerrekenaar toegang tot die eMMC kan kry soos 'n massabergingstoestel.
Probleem met rpiboot en die oplossing
Op my ontwikkelingsmasjien (Ubuntu 22.04) het ek aanvanklik probeer om rpiboot te installeer met:
sudo apt install rpiboot
Hierdie weergawe het egter nie behoorlik gewerk nie - waarskynlik omdat dit verouderd of onversoenbaar is met CM5.
In plaas daarvan moes ek rpiboot vanaf die bron bou. Volg die stappe hier:
Kloon die amptelike bewaarplek:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
### Installeer afhanklikhede en bou:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
### Voer rpiboot uit
met die CM5 gekoppel en die J2-springer op sy plek:
sudo ./rpiboot -d mass-storage-gadget64
Die stelsel sal die CM5 se eMMC opspoor, en jy kan nou die bedryfstelsel daarop flits met Raspberry Pi Imager of dd.</:code4:>
</:code3:>
</:code2:></:code1:>
Opsomming
- Die CM5 SD-gleuf werk slegs op Lite (geen eMMC) variante.
- Om 'n CM5 met eMMC te flits, moet jy:
** Stel die J2-trui in.
** Gebruik rpiboot om die eMMC oor USB bloot te stel. - As die verpakte rpiboot nie werk nie, bou dit vanaf die bron.
Sodra dit klaar is, kan jy Raspberry Pi OS direk op die eMMC flits asof dit 'n SD-kaart is.