Skip to main content

Raspberry Pi CM5 Boot Image eMMC
Probleme bei der Installation der Systemsoftware

Einführung Problem

Für ein neues Projekt haben wir uns entschieden, die Raspberry Pi Compute Module 5 (CM5) als Hardware-Plattform zu verwenden.

Ich erhielt ein Entwicklungskit bestehend aus:

  • 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 Modul 5 IO Gehäuse

Ziel

Um die Entwicklung zu vereinfachen, wollte ich die Systemsoftware (raspiOS) von einer microSD-Karte ausführen, da das Compute Module 5 IO Board über einen microSD-Kartensteckplatz verfügt.

Ich habe Raspberry Pi Imager um das neueste Raspberry Pi Betriebssystem auf eine microSD-Karte zu flashen, steckte die Karte in den Steckplatz auf dem IO-Board und schaltete das System ein.

Anstatt jedoch das Betriebssystem zu starten, erschien auf dem Display die Meldung "SD: Karte nicht erkannt" und das System ließ sich nicht starten.

Ursache und Wirkung

Nach einigen Recherchen fand ich in der Raspberry Pi Dokumentation die Erklärung für die Compute Module 5:

  • microSD-Kartensteckplatz (nur zur Verwendung mit Lite-Varianten ohne eMMC; andere Varianten ignorieren den Steckplatz)

Das bedeutet, dass der microSD-Kartenslot nur bei der "Lite"-Variante verwendet werden kann, die keinen Onboard-eMMC-Speicher enthält. Mein CM5 hat 32 GB eMMC, daher ist der SD-Steckplatz deaktiviert und wird beim Booten ignoriert.

Korrekter Weg zur Installation der Systemsoftware auf der CM5 mit eMMC

Um das Betriebssystem auf einer CM5 mit eMMC zu installieren, folgen Sie den offiziellen Anweisungen für setting up the IO Board.

Ein entscheidender Schritt besteht darin, einen Jumper auf der J2-Steckleiste der IO-Platine zu setzen. Dadurch wird der CM5 in den USB-Boot-Modus versetzt, so dass Ihr Host-PC auf die eMMC wie auf ein Massenspeichergerät zugreifen kann.

Compute Module 5 IO-Karte

Problem mit rpiboot und die Lösung

Auf meinem Entwicklungsrechner (Ubuntu 22.04) habe ich zunächst versucht, rpiboot mit zu installieren:

sudo apt install rpiboot

Diese Version funktionierte jedoch nicht richtig - wahrscheinlich, weil sie veraltet oder inkompatibel mit CM5 war.

Stattdessen musste ich rpiboot aus dem Quellcode erstellen. Folgen Sie den Schritten hier:

Klonen Sie das offizielle Repository:

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

Installieren Sie die Abhängigkeiten und bauen Sie:

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

Starten Sie rpiboot

mit angeschlossenem CM5 und gestecktem J2-Jumper:

sudo ./rpiboot -d mass-storage-gadget64

Das System erkennt die eMMC des CM5 und Sie können nun das Betriebssystem mit Raspberry Pi Imager oder dd darauf flashen.

Zusammenfassung

  • Der CM5 SD-Slot funktioniert nur bei Lite-Varianten (ohne eMMC).
  • Um einen CM5 mit eMMC zu flashen, müssen Sie:
    ** Setzen Sie den J2-Jumper.
    ** Verwenden Sie rpiboot, um die eMMC über USB freizulegen.
  • Wenn das mitgelieferte rpiboot nicht funktioniert, erstellen Sie es aus den Quellen.

Danach können Sie Raspberry Pi OS direkt auf die eMMC flashen, als wäre es eine SD-Karte.