Johdanto Ongelma
Uutta projektia varten päätimme käyttää laitteistoalustana Raspberry Pi Compute Module 5 (CM5).
Sain kehityspaketin, joka koostui seuraavista osista:
- 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.
Tavoite
Yksinkertaistaakseni kehitystyötä halusin käyttää järjestelmäohjelmistoa (raspiOS) microSD-kortilta, koska Compute Module 5 IO Board sisältää microSD-korttipaikan.
Käytin Raspberry Pi Imager flashasin uusimman Raspberry Pi -käyttöjärjestelmän microSD-kortille, asetin kortin IO-levyn korttipaikkaan ja käynnistin järjestelmän.
Sen sijaan, että käyttöjärjestelmä olisi käynnistynyt, näyttö näytti terminaalin kaltaisen viestin "SD: card not detected", eikä järjestelmä käynnistynyt.
Syy ja seuraus
Joidenkin tutkimusten jälkeen löysin selityksen Raspberry Pi -dokumentaatiosta. Compute Module 5:
- microSD-korttipaikka (vain Lite-versioissa, joissa ei ole eMMC:tä; muut versiot jättävät korttipaikan huomiotta).
Tämä tarkoittaa, että microSD-korttipaikkaa voidaan käyttää vain "Lite"-versiossa, jossa ei ole sisäistä eMMC-tallennustilaa. Minun CM5:ssäni on 32 GB eMMC, joten SD-korttipaikka on poistettu käytöstä ja jätetään huomiotta käynnistyksen aikana.
Oikea tapa asentaa järjestelmäohjelmisto CM5:een eMMC:llä varustettuna
Jos haluat asentaa käyttöjärjestelmän eMMC:llä varustettuun CM5-tietokoneeseen, noudata virallisia ohjeita, jotka koskevat seuraavia asioita setting up the IO Board.
Ratkaiseva vaihe on asettaa hyppääjä IO-piirilevyn J2-otsakkeeseen. Tämä asettaa CM5:n USB-käynnistystilaan, jolloin isäntätietokone voi käyttää eMMC:tä kuin massamuistilaitetta.
Ongelma rpibootin kanssa ja ratkaisu
Kehityskoneellani (Ubuntu 22.04) yritin aluksi asentaa rpiboot kanssa:
sudo apt install rpiboot
Tämä versio ei kuitenkaan toiminut kunnolla - todennäköisesti siksi, että se on vanhentunut tai yhteensopimaton CM5:n kanssa.
Sen sijaan minun oli rakennettava rpiboot lähdekoodista. Seuraa ohjeita täältä:
Kloonaa virallinen arkisto:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
Asenna riippuvuudet ja rakenna:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
Suorita rpiboot
kun CM5 on kytketty ja J2-jumpperi on paikallaan:
sudo ./rpiboot -d mass-storage-gadget64
Järjestelmä havaitsee CM5:n eMMC:n, ja voit nyt flashata käyttöjärjestelmän sille Raspberry Pi Imagerin tai dd:n avulla.
Yhteenveto
- CM5:n SD-korttipaikka toimii vain Lite-versioissa (ei eMMC:tä).
- Jos haluat flashata CM5:n eMMC:llä, sinun on:
** Aseta J2-jumpperi.
** Käytä rpibootia eMMC:n avaamiseen USB:n kautta. - Jos pakattu rpiboot ei toimi, rakenna se lähdekoodista.
Kun tämä on tehty, voit flashata Raspberry Pi OS:n suoraan eMMC:lle, aivan kuin se olisi SD-kortti.