Skip to main content

Raspberry Pi CM5 Boot Image eMMC
Problemer med at installere systemsoftware

Introduktionsproblem

Til et nyt projekt besluttede vi at bruge Raspberry Pi Compute Module 5 (CM5) som vores hardwareplatform.

Jeg modtog et udviklingskit bestående af:

  • 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 at forenkle udviklingen ville jeg køre systemsoftwaren (raspiOS) fra et microSD-kort, da Compute Module 5 IO Board har et slot til microSD-kort.

Jeg brugte Raspberry Pi Imager til at flashe det nyeste Raspberry Pi OS på et microSD-kort, satte kortet i åbningen på IO-kortet og tændte for systemet.

Men i stedet for at starte op i operativsystemet viste displayet en terminallignende besked, der sagde "SD: card not detected", og systemet startede ikke op.

Årsag og virkning

Efter lidt research fandt jeg forklaringen i Raspberry Pi-dokumentationen for Compute Module 5:

  • microSD-kortplads (kun til brug med Lite-varianter uden eMMC; andre varianter ignorerer pladsen)

Det betyder, at microSD-slottet kun kan bruges på "Lite"-varianten, som ikke har indbygget eMMC-lager. Min CM5 har 32 GB eMMC, så SD-slottet er deaktiveret og ignoreres under opstart.

Korrekt måde at installere systemsoftware på CM5 med eMMC

For at installere operativsystemet på en CM5 med eMMC skal du følge de officielle instruktioner for setting up the IO Board.

Et vigtigt skridt er at sætte en jumper på J2-hovedet på IO-kortet. Det sætter CM5'eren i USB-opstartstilstand, så din host-pc kan få adgang til eMMC'en som en masselagringsenhed.

Compute Module 5 IO Board

Problem med rpiboot og løsningen

På min udviklingsmaskine (Ubuntu 22.04) prøvede jeg i første omgang at installere rpiboot med:

sudo apt install rpiboot

Men denne version fungerede ikke ordentligt - sandsynligvis fordi den er forældet eller inkompatibel med CM5.

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

Klon det officielle repository:

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

Installer afhængigheder og byg:

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

Kør rpiboot

med CM5 tilsluttet og J2-jumperen på plads:

sudo ./rpiboot -d mass-storage-gadget64

Systemet vil registrere CM5's eMMC, og du kan nu flashe operativsystemet på den ved hjælp af Raspberry Pi Imager eller dd.

Sammenfatning

  • CM5 SD-slot fungerer kun på Lite-varianter (uden eMMC).
  • For at flashe en CM5 med eMMC skal du:
    ** Sætte J2-jumperen.
    ** Bruge rpiboot til at eksponere eMMC'en via USB.
  • Hvis den pakkede rpiboot ikke virker, skal du bygge den fra kilden.

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