Zalo Inbox

Build Image cho Raspberry Pi Zero W


  • author-image

    devlinux

  • blog-tag yocto
  • blog-comment 0 Bình luận
  • blog-comment 289 Views
  • created-date 08 Mar, 2025
blog-image


Yocto Project là một công cụ mạnh mẽ cho phép tạo ra các hệ thống Linux tùy chỉnh cho các thiết bị nhúng. Trong bài viết này, tôi sẽ hướng dẫn bạn cách xây dựng một image hoàn chỉnh cho Raspberry Pi Zero W - một trong những board phát triển phổ biến và linh hoạt nhất hiện nay.

1. Chuẩn bị môi trường

1.1. Yêu cầu phần cứng và phần mềm

Trước khi bắt đầu, hãy đảm bảo bạn có đầy đủ:

  • Máy host: Ubuntu (khuyến nghị chạy trên VMware) với ít nhất 100GB không gian trống.
  • Thiết bị: Raspberry Pi Zero W.
  • Bộ nhớ: Thẻ microSD tối thiểu 16GB.
  • Kết nối internet: Để tải các package và source code.

1.2. Cài đặt các package cần thiết

Đầu tiên, cài đặt các package cần thiết trên máy host Ubuntu:

sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat \
cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping \
python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1

2. Thiết lập môi trường Yocto

2.1. Tải meta-raspberrypi layer

Tải xuống layer dành riêng cho Raspberry Pi:

~/yocto/poky$ git clone git://git.yoctoproject.org/meta-raspberrypi -b dunfell

Tải xuống meta-openembedded:

~/yocto/poky$ git clone git://git.openembedded.org/meta-openembedded -b dunfell

2.2. Khởi tạo môi trường build

Lệnh này sẽ thiết lập các biến môi trường cần thiết:

~/yocto/poky$ source oe-init-build-env

2.3. Cấu hình build

2.3.1. Chỉnh sửa local.conf

Mở file conf/local.conf, tìm và thay đổi cấu hình máy thành Raspberry Pi Zero W:

# MACHINE ??= "qemux86-64"
MACHINE ??= "raspberrypi0-wifi"

2.3.2. Thêm meta layer vào bblayers.conf

Mở file conf/bblayers.conf, Cập nhật biến BBLAYERS để thêm layer meta-raspberrypimeta-openembedded/meta-oe:

BBLAYERS ?= " \
  /home/aosp/yocto/poky/meta \
  /home/aosp/yocto/poky/meta-poky \
  /home/aosp/yocto/poky/meta-yocto-bsp \
  /home/aosp/yocto/poky/build/workspace \
  /home/aosp/yocto/poky/meta-devlinux \
  /home/aosp/yocto/poky/meta-raspberrypi \
  /home/aosp/yocto/poky/meta-openembedded/meta-oe \
  "

Lưu ý: Điều chỉnh đường dẫn cho phù hợp với cấu trúc thư mục trên máy của bạn.

3. Build và flash image

3.1. Tiến hành build

~/yocto/poky$ bitbake core-image-sato

Quá trình này có thể mất từ 30 phút đến vài giờ tùy thuộc vào cấu hình máy tính của bạn.

3.2. Flash image vào thẻ nhớ

Sau khi build hoàn tất, image sẽ được lưu tại:

~/yocto/poky/build/tmp/deploy/images/raspberrypi0-wifi/

3.3. Các bước flash image

3.3.1. Xác định thiết bị thẻ nhớ

~/yocto/poky$ lsblk

3.3.2. Tạo bản sao và giải nén image

~/yocto/poky$ cp build/tmp/deploy/images/raspberrypi0-wifi/core-image-minimal-raspberrypi0-wifi-20241123012031.rootfs.wic.bz2 temp.wic.bz2
~/yocto/poky$ bzip2 -d temp.wic.bz2

3.3.3. Flash image vào thẻ nhớ

~/yocto/poky$ sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1
~/yocto/poky$ sudo dd if=temp.wic of=/dev/sdb bs=4M status=progress
~/yocto/poky$ sync

Chú ý: Đảm bảo /dev/sdb là đúng thiết bị thẻ nhớ của bạn!

3.4. Khởi động Raspberry Pi

Cắm thẻ nhớ vào Raspberry Pi Zero W và cấp nguồn. Nếu có màn hình HDMI, bạn có thể kết nối để theo dõi quá trình khởi động.

4. Kết luận

Xây dựng image tùy chỉnh cho Raspberry Pi Zero W với Yocto Project mang lại nhiều lợi ích:

  • Tùy biến cao: Bạn có thể thêm/bớt các package theo nhu cầu cụ thể.
  • Tối ưu hóa: Image được tạo ra nhỏ gọn và hiệu quả.
  • Kiểm soát đầy đủ: Bạn nắm rõ các thành phần trong hệ thống.

Với hướng dẫn này, bạn đã có thể xây dựng thành công một image tùy chỉnh cho Raspberry Pi Zero W, tạo nền tảng cho các dự án IoT và nhúng của mình.

author_photo
devlinux

0 Bình luận