Skip to main content

Raspberry Pi CM5 Imagen de arranque eMMC
Problemas al instalar el software del sistema

Introducción Problema

Para un nuevo proyecto, decidimos utilizar la Raspberry Pi Compute Module 5 (CM5) como plataforma de hardware.

Recibí un kit de desarrollo compuesto por:

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

Módulo informático 5 Caja IO

Objetivo

Para simplificar el desarrollo, quería ejecutar el software del sistema (raspiOS) desde una tarjeta microSD, ya que el Compute Module 5 IO Board incluye una ranura para tarjetas microSD.

Utilicé Raspberry Pi Imager para flashear la última versión del SO Raspberry Pi en una tarjeta microSD, inserté la tarjeta en la ranura de la placa IO y encendí el sistema.

Sin embargo, en lugar de arrancar en el SO, la pantalla mostraba un mensaje tipo terminal que decía "SD: tarjeta no detectada", y el sistema no arrancaba.

Causa y efecto

Después de investigar un poco, encontré la explicación en la documentación de Raspberry Pi para la función Compute Module 5:

  • ranura para tarjetas microSD (sólo para uso con variantes Lite sin eMMC; otras variantes ignoran la ranura).

Esto significa que la ranura microSD sólo es utilizable en la variante "Lite", que no incluye almacenamiento eMMC a bordo. Mi CM5 tiene 32 GB de eMMC, por lo que la ranura SD está desactivada y se ignora durante el arranque.

Forma correcta de instalar el software del sistema en CM5 con eMMC

Para instalar el sistema operativo en un CM5 con eMMC, siga las instrucciones oficiales de setting up the IO Board.

Un paso crucial es colocar un puente en el cabezal J2 de la placa IO. Esto pone la CM5 en modo de arranque USB, permitiendo que su PC host acceda a la eMMC como un dispositivo de almacenamiento masivo.

Módulo informático 5 Tarjeta IO

Problema con rpiboot y la solución

En mi máquina de desarrollo (Ubuntu 22.04), probé inicialmente a instalar rpiboot con:

sudo apt install rpiboot

Sin embargo, esta versión no funcionó correctamente -probablemente debido a que es obsoleta o incompatible con CM5.

En su lugar, tuve que compilar rpiboot desde el código fuente. Siga los pasos aquí:

Clone el repositorio oficial:

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

Instale las dependencias y compile:

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

Ejecute rpiboot

con el CM5 conectado y el puente J2 colocado:

sudo ./rpiboot -d mass-storage-gadget64

El sistema detectará la eMMC de la CM5, y ahora puede flashear el SO en ella utilizando Raspberry Pi Imager o dd.

Resumen

  • La ranura SD del CM5 sólo funciona en las variantes Lite (sin eMMC).
  • Para flashear un CM5 con eMMC, debe:
    ** Ajustar el puente J2.
    ** Utilizar rpiboot para exponer la eMMC a través de USB.
  • Si el rpiboot empaquetado no funciona, constrúyalo desde el código fuente.

Una vez hecho esto, puede flashear Raspberry Pi OS directamente en la eMMC como si fuera una tarjeta SD.