ปัญหาเบื้องต้น
สําหรับโครงการใหม่ เราตัดสินใจใช้Raspberry Pi Compute Module 5 (CM5)เป็นแพลตฟอร์มฮาร์ดแวร์ของเรา
ฉันได้รับชุดพัฒนาที่ประกอบด้วย:
- 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.
เป้าหมาย
ฉันต้องการเรียกใช้ซอฟต์แวร์ระบบ (raspiOS) จากการ์ด microSD เนื่องจาก Compute Module 5 IO Board มีช่องเสียบการ์ด microSD
ฉันใช้ Raspberry Pi Imager เพื่อแฟลช Raspberry Pi OS ล่าสุดลงบนการ์ด microSD ใส่การ์ดลงในช่องเสียบบนบอร์ด IO และเปิดระบบ
อย่างไรก็ตามแทนที่จะบูตเข้าสู่ระบบปฏิบัติการหน้าจอจะแสดงข้อความคล้ายเทอร์มินัลที่ระบุว่า "SD: ตรวจไม่พบการ์ด" และระบบไม่บู๊ต
เหตุและผล
หลังจากค้นคว้าแล้วฉันพบคําอธิบายในเอกสาร Raspberry Pi สําหรับ Compute Module 5:
ช่องเสียบการ์ด microSD* ช่อง (สําหรับใช้กับรุ่น Lite ที่ไม่มี eMMC เท่านั้น รุ่นอื่นๆ ละเว้นช่อง)
ซึ่งหมายความว่าช่องเสียบ microSD สามารถใช้ได้เฉพาะกับรุ่น "Lite" ซึ่งไม่รวมที่เก็บข้อมูล eMMC ออนบอร์ด CM5 ของฉันมี eMMC ขนาด 32 GB ดังนั้นสล็อต SD จึงถูกปิดใช้งานและละเว้นระหว่างการบูต
วิธีที่ถูกต้องในการติดตั้งซอฟต์แวร์ระบบบน CM5 ด้วย eMMC
ในการติดตั้งระบบปฏิบัติการบน CM5 ด้วย eMMC ให้ทําตามคําแนะนําอย่างเป็นทางการสําหรับ setting up the IO Board.
ขั้นตอนสําคัญคือการวางจัมเปอร์บนส่วนหัว J2 บนบอร์ด IO สิ่งนี้ทําให้ CM5 เข้าสู่โหมดบูต USB ทําให้โฮสต์พีซีของคุณสามารถเข้าถึง eMMC ได้เหมือนอุปกรณ์จัดเก็บข้อมูลขนาดใหญ่
ปัญหาเกี่ยวกับ rpiboot และวิธีแก้ไข
บนเครื่องพัฒนาของฉัน (Ubuntu 22.04) ในตอนแรกฉันลองติดตั้งrpibootด้วย:
sudo apt install rpiboot
อย่างไรก็ตาม เวอร์ชันนี้ทํางานไม่ถูกต้อง อาจเป็นเพราะล้าสมัยหรือเข้ากันไม่ได้กับ CM5
ฉันต้องสร้าง rpiboot จากแหล่งที่มาแทน ทําตามขั้นตอนที่นี่:
โคลนที่เก็บอย่างเป็นทางการ:
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
### ติดตั้งการพึ่งพาและสร้าง:
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
### เรียกใช้ rpiboot
เมื่อเชื่อมต่อ CM5 และจัมเปอร์ J2 เข้าที่:
sudo ./rpiboot -d mass-storage-gadget64
ระบบจะตรวจจับ eMMC ของ CM5 และตอนนี้คุณสามารถแฟลชระบบปฏิบัติการลงบนคอมพิวเตอร์ได้โดยใช้ Raspberry Pi Imager หรือ dd</:code4:>
</:code3:>
</:code2:></:code1:>
สรุป
- สล็อต CM5 SD ใช้งานได้กับรุ่น Lite (ไม่มี eMMC) เท่านั้น
- ในการแฟลช CM5 ด้วย eMMC คุณต้อง:
** ตั้งจัมเปอร์ J2
** ใช้ rpiboot เพื่อแสดง eMMC ผ่าน USB - หาก rpiboot ที่แพคเกจไม่ทํางาน ให้สร้างจากแหล่งที่มา
เมื่อเสร็จแล้ว คุณสามารถแฟลช Raspberry Pi OS บน eMMC ได้โดยตรงราวกับว่าเป็นการ์ด SD