Hướng Dẫn Build Yocto với Kernel Real-Time cho BeagleBone Black
Giới thiệu
Hệ thống real-time (RT) đóng vai trò quan trọng trong nhiều ngành công nghiệp như ô tô, robot, và hàng không vũ trụ. Bài viết này sẽ hướng dẫn bạn cách build Yocto với kernel được patch real-time (RT) dành cho BeagleBone – một máy tính phần cứng mở mạnh mẽ.
Thiết lập môi trường build
Trước tiên, chúng ta cần thiết lập môi trường build. Việc này bao gồm clone dự án Poky và cài đặt môi trường theo hướng dẫn chính thức của Yocto Project.
Cấu hình conf/local.conf
Mở file conf/local.conf
và chỉnh sửa hoặc thêm các dòng sau:
# Change or verify these following lines
MACHINE ?= "beaglebone-yocto"
PACKAGE_CLASSES ?= "package_deb"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks tools-sdk package-management"
# Add the following
PREFERRED_VERSION_linux-yocto ?= "5.15%"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
CORE_IMAGE_EXTRA_INSTALL += "usbinit"
Patching Kernel và cấu hình
Để áp dụng patch RT cho kernel, ta cần tạo một layer mới trong Yocto. Layer này sẽ bao gồm các thư mục và file cấu hình sau:
Tạo Layer mới
Chạy các lệnh sau để tạo layer mới có tên meta-mylayer
:
mkdir meta-mylayer
mkdir meta-mylayer/conf
mkdir meta-mylayer/recipes-kernel
mkdir meta-mylayer/recipes-kernel/linux
mkdir meta-mylayer/recipes-kernel/linux/linux-yocto
Cấu hình Layer
Tạo file meta-mylayer/conf/layer.conf
và thêm nội dung sau:
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"
BBFILE_PRIORITY_mylayer = "5"
Thêm cấu hình Kernel
Tạo file linuxyocto_5.15.bbappend
trong meta-mylayer/recipes-kernel/linux
với nội dung:
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
KBRANCH:beaglebone-yocto = "v5.15/standard/beaglebone"
KMACHINE:beaglebone-yocto ?= "beaglebone"
SRCREV_machine:beaglebone-yocto ?= "9aabbaa89fcb21af7028e814c1f5b61171314d5a"
LINUX_VERSION:beaglebone-yocto = "5.15.54"
SRC_URI += "file://usbeth.cfg"
SRC_URI += "file://patch-5.15.55-rt48.patch"
Thêm file cấu hình và patch
- Tải patch RT tương thích với kernel và đặt vào
meta-mylayer/recipes-kernel/linux/linux-yocto
. - Tạo file
usbeth.cfg
trong cùng thư mục với nội dung sau:
cd ~/poky/build
bitbake-layers add-layer ../../meta-mylayer
Build Image và ghi vào thẻ SD
Khi đã sẵn sàng, bạn có thể build image bằng lệnh:
bitbake core-image-minimal
Quá trình này có thể mất nhiều thời gian, hãy kiên nhẫn chờ đợi. Sau khi hoàn tất, image sẽ được lưu tại:
<build directory>/tmp/deploy/images/beaglebone-yocto/
Ghi image vào thẻ SD
Dùng lệnh dd
để ghi image vào thẻ SD:
sudo dd if=<path-to-image> of=/dev/sdX bs=4M status=progress
Việc build Yocto với kernel RT cho BeagleBone có vẻ phức tạp, nhưng với hướng dẫn chi tiết này, bạn hoàn toàn có thể thực hiện dễ dàng. Đừng quên kết nối với BeagleBone qua serial và đăng nhập bằng tài khoản root sau khi hoàn tất.
Nếu bạn chưa có board thực hành hãy liên hệ ngay:
BeagleBone Black – Rev C | Giá cực rẻ cho các bạn sinh viên thực hành nhúng
Govapemaker shop đang bán board beaglebone black với giá rất tốt 950k / bo kèm cáp mini usb và nguồn 5V2A xịn.
Mạch đẹp, chức năng đầy đủ, các bạn có thể qua xem trực tiếp hoặc có video test nếu các bạn muốn SHIP COD.
Mọi thông tin liên hệ:
- Zalo: 0387521116
- Địa chỉ: 386/33 Quang Trung Phường 10 Gò Vấp
- Shopee link cho các bạn muốn tự tin mua hàng online