สารบัญ:
วีดีโอ: การสร้าง GNU/Linux Distribution สำหรับ Raspberry Pi โดยใช้ Yocto Project: 6 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
Raspberry Pi น่าจะเป็นคอมพิวเตอร์บอร์ดเดี่ยวราคาประหยัดที่ได้รับความนิยมมากที่สุดในตลาด มักใช้สำหรับ Internet of Things และโครงการฝังตัวอื่นๆ GNU/Linux หลายรุ่นรองรับ Raspberry Pi ได้ดีเยี่ยม และยังมี Microsoft Windows สำหรับ Raspberry Pi 2 อีกด้วย
หากคุณต้องการสร้าง Internet of Things (IoT) โดยใช้ Raspberry Pi และหากคุณต้องการทำอย่างมืออาชีพ ขอแนะนำให้สร้างการแจกจ่าย Linux แบบฝังตัวที่เหมาะกับความต้องการที่แท้จริงของอุปกรณ์ของคุณ ในการบู๊ต Linux บน Raspberry Pi คุณต้องมี bootloader, เคอร์เนล Linux และแอพพลิเคชั่นต่างๆ ในพื้นที่ผู้ใช้
วิธีหนึ่งที่ได้รับความนิยมมากที่สุดในการสร้างการกระจาย Linux แบบฝังตัวแบบกำหนดเองคือการใช้โครงการ Yocto Yocto เป็นโครงการความร่วมมือของมูลนิธิลินุกซ์ที่ใช้เฟรมเวิร์ก Openembedded และเอ็นจิ้นการสร้างบิตเบค Poky เป็นระบบอ้างอิงของโครงการ Yocto ที่มีรอบการเผยแพร่หกเดือน ให้ข้อมูลเมตาที่แบ่งออกเป็นเลเยอร์และสูตรสำหรับการสร้างแพ็คเกจและรูปภาพต่างๆ
บทช่วยสอนนี้มีขั้นตอนที่แน่นอนสำหรับการสร้างอิมเมจที่มีการกระจาย GNU/Linux น้อยที่สุดสำหรับ Raspberry Pi ซึ่งรวมถึง systemd และ connman
ขั้นตอนที่ 1: เตรียมพร้อม
สำหรับบทช่วยสอนนี้ คุณจะต้อง:
- คอมพิวเตอร์ส่วนบุคคลที่มีการแจกจ่าย GNU/Linux เช่น Ubuntu ซึ่งคุณจะสร้าง GNU/Linux distribution สำหรับ Raspberry Pi
- ราสเบอร์รี่ปี่
- การ์ด microSD หรือ SD ขึ้นอยู่กับรุ่นของ Raspberry Pi
- สาย HDMI และจอภาพ
- แป้นพิมพ์ USB
- แหล่งจ่ายไฟ
ติดตั้งแพ็คเกจที่จำเป็นบนคอมพิวเตอร์ส่วนบุคคลของคุณโดยขึ้นอยู่กับการแจกจ่าย GNU/Linux ของคุณ: https://www.yoctoproject.org/docs/2.0/yocto-projec…Notes (โดย Yunus EmreI):
- คุณไม่สามารถอบรูปภาพได้หากไดเร็กทอรีโฮมของคุณถูกเข้ารหัสเพราะมันไม่ยอมให้ชื่อไฟล์ยาว
- บิลด์เริ่มต้นใช้เวลานานมากหากคุณมีการเชื่อมต่อที่ช้า
- ขณะแฟลชภาพไปยังการ์ด SD ตรวจสอบให้แน่ใจว่าคุณได้เลือกหลัก /dev/sdX ไม่ใช่ /dev/sdXp1 หรือรูปแบบอื่น ๆ ของชิ้นส่วนภายใน
ขั้นตอนที่ 2: รับซอร์สโค้ด
ดำเนินการด้านล่างบนคอมพิวเตอร์ส่วนบุคคลของคุณ:
-
โคลน Poky โดยใช้ Git (ในกรณีนี้ฉันกำลังดาวน์โหลดรุ่น Jethro (2.0) ของ Yocto Project):
git clone -b jethro git://git.yoctoproject.org/poky
-
ไปที่ไดเร็กทอรี poky:
cd poky
-
โคลน meta-raspberrypi:
โคลน git -b jethro git://git.yoctoproject.org/meta-raspberrypi
ขั้นตอนที่ 3: กำหนดค่า
-
เริ่มต้นสภาพแวดล้อมการสร้าง
แหล่งที่มา oe-init-build-env
-
เพิ่ม meta-raspberrypi ให้กับ BBLAYERS ใน conf/bblayers.conf หลังจากนั้นควรคล้ายกัน (แต่ในกรณีของคุณที่มีเส้นทางต่างกัน) ไปที่:
เบลเยอร์ ?=
/home/leon/poky/meta / /home/leon/poky/meta-yocto / /home/leon/poky/meta-yocto-bsp / /home/leon/poky/meta-raspberrypi \"
-
เปิด conf/local.conf และเปลี่ยน MACHINE เป็น raspberrypi, raspberrypi0, raspberrypi2 หรือ raspberrypi3 ขึ้นอยู่กับรุ่น Raspberry Pi ของคุณ ตัวอย่างเช่น
เครื่องจักร ??= "raspberrypi2"
-
ต่อท้ายบรรทัดต่อไปนี้เพื่อ conf/local.conf เพื่อตั้งค่าหน่วยความจำ GPU เป็นเมกะไบต์:
GPU_MEM = "16"
-
หรือ ต่อท้ายบรรทัดต่อไปนี้เพื่อ conf/local.conf เพื่อแทนที่ System V ด้วย systemd:
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" VIRTUAL-RUNTIME_initscripts = ""
-
หรือ ผนวกบรรทัดต่อไปนี้ใน conf/local.conf เพื่อรวม connman ตัวจัดการเครือข่ายของบรรทัดคำสั่งในอิมเมจ:
IMAGE_INSTALL_append = " connman connman-client"
ขั้นตอนที่ 4: สร้างภาพ
-
ดำเนินการคำสั่งต่อไปนี้เพื่อสร้างอิมเมจขั้นต่ำของการแจกจ่าย GNU/Linux สำหรับ Raspberry Pi ของคุณ:
bitbake rpi-basic-image
โปรดทราบว่าการสร้างอาจใช้เวลาหลายชั่วโมงขึ้นอยู่กับฮาร์ดแวร์ของคอมพิวเตอร์ส่วนบุคคลของคุณและความเร็วของการเชื่อมต่ออินเทอร์เน็ต
ขั้นตอนที่ 5: แฟลชการ์ด SD
เมื่อบิลด์เสร็จสิ้น รูปภาพจะอยู่ที่พาธต่อไปนี้ในไดเร็กทอรีบิลด์ของคุณ: tmp/deploy/images/raspberrypi2/rpi-basic-image-raspberrypi2.rpi-sdimg
เสียบการ์ด microSD เข้ากับคอมพิวเตอร์ของคุณ แทนที่ X ด้วย ID ที่เกี่ยวข้อง (ซึ่งสามารถพบได้ผ่านคำสั่งเช่น lsblk หรือ fdisk -l) และดำเนินการคำสั่งต่อไปนี้เพื่อแฟลชรูปภาพบนการ์ด:
sudo umount /dev/sdX
sudo dd if=tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2.rpi-sdimg of=/dev/sdX ซิงค์ sudo umount /dev/sdX
หรือหากต้องการ คุณสามารถใช้ bmaptool แทน dd
โปรดใช้ความระมัดระวังในขณะที่แฟลชการ์ด SD และตรวจสอบให้แน่ใจว่าคุณใช้ตัวอักษรที่ถูกต้องสำหรับพาธไปยังอุปกรณ์ ยอมรับความเสี่ยงเองและจำไว้ว่าความผิดพลาดอาจทำให้ไดรฟ์ในคอมพิวเตอร์ส่วนบุคคลของคุณเสียหายได้!
ขั้นตอนที่ 6: บูตและทดสอบ
บูต Raspberry Pi และทำตามขั้นตอนต่อไปนี้เพื่อตรวจสอบว่ารูปภาพทำงานสำเร็จหรือไม่:
- เข้าสู่ระบบในฐานะรูทโดยไม่ต้องใช้รหัสผ่าน
-
หากมีการติดตั้ง connman ให้ตรวจสอบว่าโหลดบริการ systemd แล้ว:
สถานะ systemctl -l connman