Skip to main content

Raspberry Pi CM5 Boot Image eMMC
Problemy z instalacją oprogramowania systemowego

Wprowadzenie Problem

W przypadku nowego projektu zdecydowaliśmy się wykorzystać Raspberry Pi Compute Module 5 (CM5) jako naszą platformę sprzętową.

Otrzymałem zestaw deweloperski składający się z:

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

Moduł obliczeniowy 5 IO Case

Cel

Aby uprościć rozwój, chciałem uruchomić oprogramowanie systemowe (raspiOS) z karty microSD, ponieważ Compute Module 5 IO Board zawiera gniazdo kart microSD.

Użyłem Raspberry Pi Imager aby sflashować najnowszy system operacyjny Raspberry Pi na kartę microSD, włożyłem kartę do gniazda na płytce IO i włączyłem system.

Jednak zamiast uruchomić system operacyjny, na wyświetlaczu pojawił się komunikat podobny do terminala "SD: karta nie została wykryta", a system nie uruchomił się.

Przyczyna i skutek

Po kilku poszukiwaniach znalazłem wyjaśnienie w dokumentacji Raspberry Pi dla funkcji Compute Module 5:

  • gniazdo kart microSD (tylko do użytku z wariantami Lite bez eMMC; inne warianty ignorują gniazdo)

Oznacza to, że gniazdo microSD jest użyteczne tylko w wariancie "Lite", który nie zawiera wbudowanej pamięci eMMC. Mój CM5 ma 32 GB eMMC, więc gniazdo SD jest wyłączone i ignorowane podczas uruchamiania.

Prawidłowy sposób instalacji oprogramowania systemowego na CM5 z eMMC

Aby zainstalować system operacyjny na CM5 z eMMC, proszę postępować zgodnie z oficjalnymi instrukcjami dla setting up the IO Board.

Kluczowym krokiem jest umieszczenie zworki na złączu J2 na płycie IO. Spowoduje to przełączenie CM5 w tryb rozruchu USB, umożliwiając komputerowi hosta dostęp do eMMC jak do urządzenia pamięci masowej.

Moduł obliczeniowy 5 IO Board

Problem z rpiboot i rozwiązanie

Na mojej maszynie deweloperskiej (Ubuntu 22.04) początkowo próbowałem zainstalować rpiboot z:

sudo apt install rpiboot

Jednak ta wersja nie działała poprawnie - prawdopodobnie dlatego, że była przestarzała lub niekompatybilna z CM5.

Zamiast tego musiałem zbudować rpiboot ze źródła. Proszę postępować zgodnie z instrukcjami tutaj:

Proszę sklonować oficjalne repozytorium:

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

Zainstalować zależności i zbudować:

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

Proszę uruchomić rpiboot

z podłączonym CM5 i założoną zworką J2:

sudo ./rpiboot -d mass-storage-gadget64

System wykryje pamięć eMMC CM5 i można teraz sflashować na nią system operacyjny za pomocą Raspberry Pi Imager lub dd.

Podsumowanie

  • Gniazdo SD CM5 działa tylko w wariantach Lite (bez eMMC).
  • Aby sflashować CM5 z eMMC, należy:
    ** Ustawić zworkę J2.
    ** Użyć rpiboot, aby ujawnić eMMC przez USB.
  • Jeśli spakowany rpiboot nie działa, proszę zbudować go ze źródła.

Gdy to zrobimy, można sflashować system operacyjny Raspberry Pi bezpośrednio na eMMC, tak jakby była to karta SD.