Skip to main content

Raspberry Pi CM5 zagonska slika eMMC
Težave pri nameščanju sistemske programske opreme

Uvod Problem

Pri novem projektu smo se odločili, da kot strojno platformo uporabimo Raspberry Pi Compute Module 5 (CM5).

Prejel sem razvojni komplet, ki ga sestavljajo:

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

Računalniški modul 5 IO Case

Cilj

Za poenostavitev razvoja sem želel sistemsko programsko opremo (raspiOS) poganjati s kartice microSD, saj je Compute Module 5 IO Board opremljen z režo za kartico microSD.

Uporabil sem Raspberry Pi Imager da sem na kartico microSD prenesel najnovejši operacijski sistem Raspberry Pi, vstavil kartico v režo na plošči IO in vklopil sistem.

Vendar se je namesto zagona operacijskega sistema na zaslonu prikazalo terminalu podobno sporočilo "SD: card not detected" in sistem se ni zagnal.

Vzrok in posledica

Po nekaj raziskavah sem našel razlago v dokumentaciji Raspberry Pi za Compute Module 5:

  • reža za kartico microSD (samo za uporabo z različicami Lite brez eMMC; druge različice te reže ne upoštevajo)

To pomeni, da je reža za microSD uporabna samo pri različici "Lite", ki nima vgrajenega pomnilnika eMMC. Moj CM5 ima 32 GB eMMC, zato je reža SD onemogočena in se med zagonom ne upošteva.

Pravilen način namestitve sistemske programske opreme na CM5 z eMMC

Če želite namestiti operacijski sistem v računalnik CM5 z eMMC, sledite uradnim navodilom za setting up the IO Board.

Ključni korak je namestitev prečke na glavo J2 na plošči IO. S tem CM5 preklopite v zagonski način USB in omogočite gostiteljskemu računalniku, da do eMMC dostopa kot do naprave za množično shranjevanje.

Računalniški modul 5 IO Board

Težava z rpiboot in rešitev

Na svojem razvojnem računalniku (Ubuntu 22.04) sem najprej poskusil namestiti rpiboot z:

sudo apt install rpiboot

Vendar ta različica ni delovala pravilno - verjetno zato, ker je bila zastarela ali nezdružljiva s CM5.

Namesto tega sem moral sestaviti rpiboot iz izvorne kode. Sledite korakom tukaj:

Kloniranje uradne shrambe:

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

Namestite odvisnosti in zgradite:

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

Zaženite rpiboot

s priključenim CM5 in nameščenim mostičkom J2:

sudo ./rpiboot -d mass-storage-gadget64

Sistem bo zaznal eMMC CM5 in zdaj lahko operacijski sistem nanj prenesete s programom Raspberry Pi Imager ali dd.

Povzetek

  • Reža za SD CM5 deluje samo v različicah Lite (brez eMMC).
  • Če želite vklopiti CM5 z eMMC, morate:
    ** Nastaviti mostiček J2.
    ** Uporabiti rpiboot za izpostavitev eMMC prek USB.
  • Če paketni rpiboot ne deluje, ga sestavite iz izvorne kode.

Ko je to opravljeno, lahko operacijski sistem Raspberry Pi OS vstavite neposredno na eMMC, kot da bi šlo za kartico SD.