Bỏ qua nội dung
Embedded Linux A-Z

Embedded Linux A-Z

    • About
    • Beaglebone Black
    • FRDM i.MX93
    • STM32MP157
  • Facebook
  • GitHub
  • LinkedIn

[Yocto-BBB] 20. Build Yocto 6.0 wrynose cho board Beaglebone Black

Vậy là tròn 1 năm từ hồi mình đăng bài đầu tiên về build Yocto cho Beaglebone Black. Ban đầu mình dùng phiên bản Kirkstone, sau đó update lên Scarthgap và mình nghĩ là nó sẽ khá bền :vv , nhưng lên phiên bản Wrynose đã có sự thay đổi khá lớn về cấu trúc. Nên mình viết thêm bài này về cách build ở version mới nhé, mình nghĩ từ bản 6.0 này trở đi, cấu trúc sẽ được giữ nguyên.

1. Chuẩn bị máy bên host

sudo apt install -y 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
sudo locale-gen en_US.UTF-8

2. Clone source code

Ngày xưa lúc học, đa số ta sẽ clone poky là reference distro từ Yocto Project và build quanh nó. Thực tế đi làm, các dự án sẽ luôn define distro của riêng mình. Do đó, giờ họ sẽ không support poky git nữa, mà thành meta-poky với poky distro bên trong, nếu ta dùng thì sẽ chọn, không thì chỉ lấy cái lõi openembedded-core và các meta cần thiết thôi

mkdir -p ~/yocto-bbb/layers
cd ~/yocto-bbb/layers

Ta để các meta clone về trong folder layers (Theo hướng dẫn chuẩn từ Yocto Project)

git clone -b 2.18    https://git.openembedded.org/bitbake
git clone -b wrynose https://git.openembedded.org/openembedded-core
git clone -b wrynose https://git.yoctoproject.org/meta-yocto

Thêm các BSP và extra-layer cho Beaglebone Black

git clone -b wrynose https://git.openembedded.org/meta-openembedded
git clone -b wrynose https://git.yoctoproject.org/meta-arm
git clone -b wrynose https://git.yoctoproject.org/meta-ti

3. Khởi tạo môi trường và build

3.1 Khởi tạo môi trường

Giờ oe-init-build-env sẽ lấy từ openembedded-core chứ không từ poky nữa, nên default sẽ là DISTRO= “nodistro”.

cd ~/yocto-bbb/
source layers/openembedded-core/oe-init-build-env build-bbb

Câu lệnh này sẽ

  • Set $OEROOT : Xác định thư mục gốc của yocto
  • Set $PATH : Thêm bitbake vào path của session terminal, giống kiểu thêm vào biến môi trường ở Windows
  • Set $BUILDDIR : Chọn thư mục output ./build-bbb (default sẽ là build, nhưng nếu chạy cho nhiều board thì nên chia riêng)
  • Set $BBPATH : Để bitbake tìm thấy các layer
  • Tạo cấu trúc thư mục $BUILDDIR

3.2 Sửa lại conf file

Đầu tiên là add layer vào bblayers.conf

bitbake-layers add-layer ../layers/meta-yocto/meta-poky
bitbake-layers add-layer ../layers/meta-yocto/meta-yocto-bsp
bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
bitbake-layers add-layer ../layers/meta-arm/meta-arm-toolchain
bitbake-layers add-layer ../layers/meta-arm/meta-arm
bitbake-layers add-layer ../layers/meta-ti/meta-ti-bsp
bitbake-layers add-layer ../layers/meta-ti/meta-ti-extras
bitbake-layers add-layer ../layers/meta-ti/meta-beagle
bitbake-layers show-layers

Okay, giờ các bạn mở build-bbb/conf/local.conf lên và thêm dòng MACHINE = “beaglebone” là ta xong phần config

Thực tế bên trên mình đã clone meta-poky, thì bạn có thể hoàn toàn set DISTRO= “poky” và làm các cái tương tự như guide cũ.

3.3 Và build thôi

bitbake core-image-minimal

Việc flash và debug các bạn tham khảo 2 bài Yocto-BBB 1 và Yocto-BBB 2 nhé !!

Chúc các bạn thực hành thành công

Chia sẻ:

  • Chia sẻ trên X (Mở trong cửa sổ mới) X
  • Chia sẻ lên Facebook (Mở trong cửa sổ mới) Facebook
Thích Đang tải…
Trước đó

Bình luận về bài viết này Hủy trả lời

  • Facebook
  • GitHub
  • LinkedIn
  • YouTube
  • TikTok
  • Bình luận
  • Đăng lại
  • Theo dõi Đã theo dõi
    • Embedded Linux A-Z
    • Đã có tài khoản WordPress.com? Đăng nhập.
    • Embedded Linux A-Z
    • Theo dõi Đã theo dõi
    • Đăng ký
    • Đăng nhập
    • URL rút gọn
    • Báo cáo nội dung
    • Xem toàn bộ bài viết
    • Quản lý theo dõi
    • Ẩn menu
%d