Skip to main content

เรียนรู้วิธีสร้างระบบ Linux ที่พร้อมใช้งานจริงสําหรับ Raspberry Pi Compute Module 5 (CM5)

นําเสนอรูปภาพที่กําหนดเอง การอัปเดต A/B และการจัดเตรียมอัตโนมัติ

เรียนรู้วิธีสร้างระบบ Linux ที่พร้อมใช้งานจริงสําหรับ Raspberry Pi Compute Module 5 (CM5) ซึ่งมีอิมเมจแบบกําหนดเอง การอัปเดต A/B และการจัดเตรียมอัตโนมัติ

Raspberry Pi Compute Module 5 มอบประสิทธิภาพแบบฝังตัวที่จริงจัง — PCIe, NVMe, LPDDR4X และรากฐาน BSP ที่มั่นคง อย่างไรก็ตาม การเปลี่ยนจากบอร์ดพัฒนาไปสู่สภาพแวดล้อมLinuxระดับการผลิตที่บํารุงรักษาได้ทําให้เกิดความท้าทายใหม่ๆ ได้แก่ การปรับแต่งรูปภาพ การจัดเตรียม และการอัปเดตแบบ over-the-air (OTA) ที่เชื่อถือได้

โมดูลประมวลผล 5 บอร์ด IO

ในซีรีส์นี้ เราจะสํารวจวิธีสร้างระบบ Linux แบบลีนและทําซ้ําได้สําหรับ CM5 โดยไม่ต้องใช้ Yocto. แทนที่จะสร้างการแจกจ่ายทั้งหมดตั้งแต่เริ่มต้น เราจะใช้เครื่องมือและเวิร์กโฟลว์ที่ใช้งานได้จริง — แสดงให้เห็นว่าrpi-image-genสามารถสร้างอิมเมจที่กําหนดเองได้อย่างไร, เลย์เอาต์ A/B rootfs ช่วยให้การอัปเดตที่ปลอดภัยได้อย่างไร, วิธีrpi-sb-provisionerตั้งค่าอุปกรณ์โดยอัตโนมัติ และวิธีที่ SWUpdate จัดการการส่งมอบเฟิร์มแวร์ในภาคสนาม

แต่ละบทความให้ภาพรวมทางเทคนิคของส่วนประกอบที่จําเป็น ไม่ใช่ผลิตภัณฑ์สําเร็จรูป แต่เป็นแผนที่ของระบบนิเวศ คุณจะได้เรียนรู้ว่าเครื่องมือแต่ละอย่างเหมาะกับตําแหน่งใดปัญหาที่แก้ไขได้และวิธีรวมเข้าด้วยกันเป็นไปป์ไลน์การสร้างและอัปเดตที่ยืดหยุ่นสําหรับโครงการที่ใช้ CM5 ของคุณเอง

ในตอนท้ายของซีรีส์ คุณจะเข้าใจวิธีพัฒนาจากภาพสต็อกRaspberry Pi OSไปเป็นแพลตฟอร์มฝังตัวที่ควบคุมและอัปเกรดได้ — โดยไม่ต้องYoctoหรือBuildroot

บทนํา — จากระบบปฏิบัติการสต็อกสู่แพลตฟอร์มการผลิต

ค้นพบว่าเหตุใด Yocto จึงไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป โดยเฉพาะอย่างยิ่งสําหรับทีมขนาดเล็กหรือวงจรผลิตภัณฑ์ที่เปลี่ยนแปลงอย่างรวดเร็ว เราจะแนะนําแนวทางแบบแยกส่วนที่ใช้งานได้จริงซึ่งสร้างขึ้นบนรากฐาน Raspberry Pi OS ที่คุ้นเคย

ประเด็นสําคัญ:

  • เหตุใด "พร้อมใช้งานจริง" จึงมีความหมายมากกว่าแค่การบูต
  • ความท้าทายในการใช้ Yocto สําหรับผลิตภัณฑ์ที่ใช้ Pi
  • ภาพรวมของสแต็กทางเลือก: Raspberry Pi OS, rpi-image-gen, dual-rootfs (A / B), การจัดเตรียมและ SWUpdate
  • เป้าหมายสุดท้าย: ไปป์ไลน์ระบบที่ทําซ้ําได้และบํารุงรักษาได้

ดู: จากระบบปฏิบัติการสต็อกสู่แพลตฟอร์มการผลิต

การสร้างภาพ — การปรับแต่ง Raspberry Pi OS ด้วย rpi-image-gen

เรียนรู้วิธีสร้างอิมเมจระบบที่ทําซ้ําได้โดยไม่ต้องพึ่งพาการตั้งค่า Yocto หรือ Buildroot เต็มรูปแบบ โพสต์นี้แนะนํา rpi-image-genซึ่งเป็นเครื่องมือสร้างอิมเมจที่เรียบง่ายและสคริปต์ได้สําหรับการปรับแต่งRaspberry Pi OSให้เหมาะกับความต้องการด้านฮาร์ดแวร์และแอปพลิเคชันของคุณ

ประเด็นสําคัญ:

  • กายวิภาคของอิมเมจRaspberry Pi (boot, rootfs, config)
  • การใช้ rpi-image-gen เพื่อประกอบและปรับแต่งรูปภาพ
  • การเพิ่มไฟล์ บริการ และโมดูลเคอร์เนลแบบกําหนดเอง
  • การสร้างอัตโนมัติสําหรับสภาพแวดล้อม CI/CD

ดู: การปรับแต่งRaspberry Pi OSด้วย rpi-image-gen

ความทนทานของระบบ — การออกแบบเค้าโครงระบบไฟล์ราก A/B

การแบ่งพาร์ติชัน A/B เป็นกระดูกสันหลังของการอัปเดตและการย้อนกลับระบบที่ปลอดภัย บทความนี้อธิบายวิธีการกําหนดค่าและจัดการพาร์ติชันรูทสองพาร์ติชันสลับไปมาระหว่างพาร์ติชันเหล่านั้นเมื่อบูตและเตรียมพร้อมสําหรับกลไก OTA ที่เชื่อถือได้

ประเด็นสําคัญ:

  • โครงร่างพาร์ติชันสําหรับ A/B rootfs บน CM5
  • การกําหนดค่าบรรทัดคําสั่ง Bootloader และเคอร์เนล
  • การจัดการสล็อตที่ใช้งานอยู่/ไม่ได้ใช้งานและการติดตามสถานะ
  • การรวมตรรกะการอัปเดตกับ systemd และ SWUpdate

ดู: ความทนทานของระบบ — การออกแบบเค้าโครงระบบไฟล์ราก A/B

การจัดเตรียม — การบูตครั้งแรกโดยอัตโนมัติด้วย rpi-sb-provisioner

การจัดเตรียมเป็นจุดที่ซอฟต์แวร์มาบรรจบกับฮาร์ดแวร์ เราจะสํารวจ rpi-sb-provisioner เป็นเครื่องมือที่มีน้ําหนักเบาสําหรับการเริ่มต้นอุปกรณ์ใหม่

ประเด็นสําคัญ:

  • บทบาทของการเตรียมใช้งานในระบบฝังตัว
  • การใช้ rpi-sb-provisioner เพื่อตั้งค่าข้อมูลประจําตัวและพารามิเตอร์ของอุปกรณ์
  • ตัวอย่างสคริปต์ระบบอัตโนมัติสําหรับการบูตครั้งแรก
  • แนวคิดของข้อมูลประจําตัวอุปกรณ์ ใบรับรอง และการแทรกการกําหนดค่า

ดู: Provisioning — การบูตครั้งแรกโดยอัตโนมัติด้วย rpi-sb-provisioner

OTA และวงจรชีวิต — การอัปเดตซอฟต์แวร์ด้วย SWUpdate

การอัปเดต A/B มีชีวิตขึ้นมาด้วย SWUpdateซึ่งเป็นเฟรมเวิร์กโอเพ่นซอร์สที่แข็งแกร่งสําหรับการส่งมอบซอฟต์แวร์ไปยังอุปกรณ์ในภาคสนามอย่างปลอดภัย โพสต์นี้แสดงให้เห็นว่า SWUpdate ผสานรวมกับเค้าโครงรูปภาพและพาร์ติชันของคุณอย่างไร เพื่อให้แน่ใจว่าการอัปเดตเป็นแบบอะตอมและสามารถกู้คืนได้

ประเด็นสําคัญ:

  • ภาพรวมของสถาปัตยกรรมSWUpdate (ตัวจัดการ ตัวอัปเดต เว็บอินเตอร์เฟส)
  • การสร้างและลงนามชุดการอัปเดต
  • การผสานรวมกับระบบ A/B
  • ตัวอย่างการอัปเดตและโฟลว์การย้อนกลับ

ดู: OTA และวงจรชีวิต — การอัปเดตซอฟต์แวร์ด้วย SWUpdate

แหล่งที่มา