Masalah Pengenalan
Untuk projek baharu, kami memutuskan untuk menggunakan Raspberry Pi Compute Module 5 (CM5) sebagai platform perkakasan kami.
Saya menerima kit pembangunan yang terdiri daripada:
- 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.
Matlamat
Untuk memudahkan pembangunan, saya ingin menjalankan perisian sistem (raspiOS) dari kad microSD, kerana Compute Module 5 IO Board termasuk slot kad microSD.
Saya menggunakan Raspberry Pi Imager untuk memancarkan OS Raspberry Pi terkini ke kad microSD, memasukkan kad ke dalam slot pada papan IO, dan menghidupkan sistem.
Walau bagaimanapun, daripada boot ke dalam OS, paparan menunjukkan mesej seperti terminal yang mengatakan "SD: kad tidak dikesan", dan sistem tidak but.
Sebab dan akibat
Selepas beberapa penyelidikan, saya menemui penjelasan dalam dokumentasi Raspberry Pi untuk Compute Module 5:
- slot kad microSD (hanya untuk digunakan dengan varian Lite tanpa eMMC; varian lain mengabaikan slot)
Ini bermakna slot microSD hanya boleh digunakan pada varian "Lite", yang tidak termasuk storan eMMC onboard. CM5 saya mempunyai eMMC 32 GB, jadi slot SD dilumpuhkan dan diabaikan semasa but.
Cara Betul untuk Memasang Perisian Sistem pada CM5 dengan eMMC
Untuk memasang sistem pengendalian pada CM5 dengan eMMC, ikut arahan rasmi untuk setting up the IO Board.
Langkah penting ialah meletakkan pelompat pada tajuk J2 di papan IO. Ini meletakkan CM5 ke dalam mod but USB, membolehkan PC hos anda mengakses eMMC seperti peranti storan besar-besaran.
Isu dengan rpiboot dan Penyelesaian
Pada mesin pembangunan saya (Ubuntu 22.04), saya pada mulanya cuba memasang rpiboot dengan:
sudo apt install rpiboot
Walau bagaimanapun, versi ini tidak berfungsi dengan betul—mungkin kerana ia sudah lapuk atau tidak serasi dengan CM5.
Sebaliknya, saya terpaksa membina rpiboot daripada sumber. Ikuti langkah-langkah di sini:
Klon repositori rasmi:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
### Pasang kebergantungan dan bina:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
### Jalankan rpiboot
dengan CM5 disambungkan dan pelompat J2 di tempatnya:
sudo ./rpiboot -d mass-storage-gadget64
Sistem akan mengesan eMMC CM5, dan anda kini boleh memancarkan OS padanya menggunakan Raspberry Pi Imager atau dd.</:code4:>
</:code3:>
</:code2:></:code1:>
Ringkasan
- Slot CM5 SD hanya berfungsi pada varian Lite (tiada eMMC).
- Untuk memancarkan CM5 dengan eMMC, anda mesti:
** Tetapkan pelompat J2.
** Gunakan rpiboot untuk mendedahkan eMMC melalui USB. - Jika rpiboot yang dibungkus tidak berfungsi, binanya daripada sumber.
Setelah selesai, anda boleh memancarkan OS Raspberry Pi terus ke eMMC seolah-olah ia adalah kad SD.