Hướng Dẫn Build Yocto với Kernel Real-Time cho BeagleBone Black

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