Skip to main content

Immagine di avvio di Raspberry Pi CM5 eMMC
Problemi nell'installazione del software di sistema

Introduzione Problema

Per un nuovo progetto, abbiamo deciso di utilizzare Raspberry Pi Compute Module 5 (CM5) come piattaforma hardware.

Ho ricevuto un kit di sviluppo composto da:

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

Modulo di calcolo 5 Caso IO

Obiettivo

Per semplificare lo sviluppo, ho voluto eseguire il software di sistema (raspiOS) da una scheda microSD, dato che Compute Module 5 IO Board include uno slot per schede microSD.

Ho usato Raspberry Pi Imager per flashare l'ultimo sistema operativo di Raspberry Pi su una scheda microSD, ho inserito la scheda nello slot sulla scheda IO e ho acceso il sistema.

Tuttavia, invece di avviare il sistema operativo, il display mostrava un messaggio simile a un terminale che diceva "SD: scheda non rilevata" e il sistema non si avviava.

Causa ed effetto

Dopo un po' di ricerche, ho trovato la spiegazione nella documentazione di Raspberry Pi per l'opzione Compute Module 5:

  • slot per scheda microSD (da utilizzare solo con le varianti Lite senza eMMC; le altre varianti ignorano lo slot)

Ciò significa che lo slot microSD è utilizzabile solo sulla variante "Lite", che non include l'archiviazione eMMC a bordo. Il mio CM5 ha 32 GB eMMC, quindi lo slot SD è disabilitato e ignorato durante l'avvio.

Modo corretto per installare il software di sistema su CM5 con eMMC

Per installare il sistema operativo su una CM5 con eMMC, segua le istruzioni ufficiali di setting up the IO Board.

Un passo fondamentale è quello di posizionare un ponticello sull'intestazione J2 della scheda IO. Questo mette la CM5 in modalità di avvio USB, consentendo al suo PC host di accedere all'eMMC come un dispositivo di archiviazione di massa.

Modulo di calcolo 5 Scheda IO

Il problema con rpiboot e la soluzione

Sulla mia macchina di sviluppo (Ubuntu 22.04), inizialmente ho provato a installare rpiboot con:

sudo apt install rpiboot

Tuttavia, questa versione non funzionava correttamente, probabilmente perché era obsoleta o incompatibile con CM5.

Invece, ho dovuto creare rpiboot dai sorgenti. Segua i passaggi qui:

Clonare il repository ufficiale:

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

Installare le dipendenze e costruire:

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

Eseguire rpiboot

con la CM5 collegata e il ponticello J2 in posizione:

sudo ./rpiboot -d mass-storage-gadget64

Il sistema rileverà l'eMMC della CM5 e ora potrà flashare il sistema operativo su di esso utilizzando Raspberry Pi Imager o dd.

Sommario

  • Lo slot SD della CM5 funziona solo sulle varianti Lite (senza eMMC).
  • Per flashare una CM5 con eMMC, deve:
    ** Impostare il ponticello J2.
    ** Utilizzare rpiboot per esporre l'eMMC tramite USB.
  • Se il pacchetto rpiboot non funziona, lo costruisca dai sorgenti.

Una volta fatto questo, può flashare Raspberry Pi OS direttamente sull'eMMC come se fosse una scheda SD.