devlinux
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.
Trước khi bắt đầu, hãy đảm bảo bạn có đầy đủ:
Đầ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
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
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
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"
Mở file conf/bblayers.conf, Cập nhật biến BBLAYERS để thêm layer meta-raspberrypi và meta-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.
~/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.
Sau khi build hoàn tất, image sẽ được lưu tại:
~/yocto/poky/build/tmp/deploy/images/raspberrypi0-wifi/
~/yocto/poky$ lsblk
~/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
~/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!
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.
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:
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.
devlinux
0 Bình luận