Skip to main content

Raspberry Pi CM5 Boot Image eMMC
Problemer med å installere systemprogramvare

Innledning Problem

I et nytt prosjekt bestemte vi oss for å bruke Raspberry Pi Compute Module 5 (CM5) som maskinvareplattform.

Jeg mottok et utviklingssett bestående av:

  • 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.

Compute Module 5 IO Case

Mål

For å forenkle utviklingen ønsket jeg å kjøre systemprogramvaren (raspiOS) fra et microSD-kort, siden Compute Module 5 IO Board har et spor for microSD-kort.

Jeg brukte Raspberry Pi Imager til å flashe det nyeste Raspberry Pi-operativsystemet på et microSD-kort, satte kortet inn i sporet på IO-kortet og slo på systemet.

Men i stedet for å starte opp i operativsystemet, viste displayet en terminallignende melding som sa "SD: card not detected", og systemet startet ikke.

Årsak og virkning

Etter noen undersøkelser fant jeg forklaringen i Raspberry Pi-dokumentasjonen for Compute Module 5:

  • microSD-kortspor (kun for bruk med Lite-varianter uten eMMC; andre varianter ignorerer sporet)

Dette betyr at microSD-kortsporet bare kan brukes på "Lite"-varianten, som ikke har innebygd eMMC-lagring. Min CM5 har 32 GB eMMC, så SD-sporet er deaktivert og ignoreres under oppstart.

Riktig måte å installere systemprogramvare på CM5 med eMMC

For å installere operativsystemet på en CM5 med eMMC, følg de offisielle instruksjonene for setting up the IO Board.

Et viktig trinn er å plassere en jumper på J2-hovedet på IO-kortet. Dette setter CM5 i USB-oppstartsmodus, slik at verts-PC-en får tilgang til eMMC-en som en masselagringsenhet.

Compute Module 5 IO-kort

Problem med rpiboot og løsningen

På min utviklingsmaskin (Ubuntu 22.04) prøvde jeg først å installere rpiboot med:

sudo apt install rpiboot

Denne versjonen fungerte imidlertid ikke skikkelig - sannsynligvis fordi den er utdatert eller inkompatibel med CM5.

I stedet måtte jeg bygge rpiboot fra kildekode. Følg trinnene her:

Klone det offisielle depotet:

git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot

Installer avhengigheter og bygg:

sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make

Kjør rpiboot

med CM5 tilkoblet og J2-bryteren på plass:

sudo ./rpiboot -d mass-storage-gadget64

Systemet vil oppdage CM5s eMMC, og du kan nå flashe operativsystemet på den ved hjelp av Raspberry Pi Imager eller dd.

Sammendrag

  • CM5 SD-sporet fungerer bare på Lite-varianter (uten eMMC).
  • For å flashe en CM5 med eMMC, må du:
    ** Sette inn J2-genseren.
    ** Bruke rpiboot for å eksponere eMMC over USB.
  • Hvis den medfølgende rpiboot ikke fungerer, må du bygge den fra kildekode.

Når det er gjort, kan du flashe Raspberry Pi OS direkte på eMMC-en som om det var et SD-kort.