devlinux
Bài viết này sẽ hướng dẫn bạn từng bước để thiết lập môi trường, tải mã nguồn, cấu hình, và xây dựng image cho Yocto Project. Đồng thời, chúng ta cũng sẽ sử dụng QEMU để giả lập và kiểm tra image đã tạo ra.
Để đảm bảo quá trình biên dịch và xây dựng image diễn ra mượt mà, bạn cần chuẩn bị phần cứng đáp ứng các tiêu chí sau:
Hệ điều hành: Ubuntu 20.04 LTS hoặc cao hơn, hoặc Debian 10/Buster trở lên. Các bản phân phối Linux khác như Fedora hoặc CentOS cũng có thể được sử dụng, nhưng có thể yêu cầu thêm cấu hình bổ sung.
Thông số:
sudo apt-get update
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm vim
sudo dnf install gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
python3-pexpect findutils which file cpio python python3-pip xz SDL-devel xterm
Tạo và di chuyển vào thư mục ~/yocto:
mkdir ~/yocto
cd ~/yocto
Bắt đầu bằng cách tải mã nguồn của Yocto Project từ kho chính thức:
~/yocto$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
remote: Enumerating objects: 658036, done.
remote: Counting objects: 100% (1018/1018), done.
remote: Compressing objects: 100% (250/250), done.
Receiving objects: 9% (63464/658036), 31.86 MiB | 1.23 MiB/s s
Sau khi tải mã nguồn Yocto Project thành công, cấu trúc thư mục của Poky sẽ bao gồm:
Đảm bảo bạn đang ở trong thư mục mã nguồn poky và chọn branch phù hợp với yêu cầu:
cd ~/yocto/poky
git checkout dunfell
Chạy script oe-init-build-env để thiết lập môi trường xây dựng trên máy chủ.
source oe-init-build-env
Sau khi chạy lệnh này, một thư mục build sẽ được tạo ra. Đây sẽ là nơi chứa các file cấu hình và output của quá trình build.
File local.conf trong Yocto Project là một tệp cấu hình cục bộ được tạo ra khi khởi tạo môi trường xây dựng bằng script oe-init-build-env. Tệp này nằm trong thư mục conf của thư mục build (poky/build/conf) và là nơi để thiết lập các cấu hình cho quá trình build image.
Để tiết kiệm dung lượng ổ đĩa, thêm dòng sau để xóa các thư mục work sau khi build xong:
NHERIT += "rm_work"
Mặc định, máy đích (target machine) là qemux86, tạo ra một image có thể sử dụng trong QEMU và được nhắm đến kiến trúc Intel 32-bit. Sau này, bạn có thể thay đổi nhanh chóng máy đích thông qua biến MACHINE để build một image cho máy khác.
Đặt trình quản lý gói sử dụng trong quá trình build (mặc định là RPM):
ACKAGE_CLASSES ?= "package_rpm"
File bblayers.conf quản lý danh sách các layers mà BitBake sẽ sử dụng. Ví dụ:
BBLAYERS ?= " \
/home/aosp/yocto/poky/meta \
/home/aosp/yocto/poky/meta-poky \
/home/aosp/yocto/meta-openembedded/meta-oe \
/home/aosp/yocto/meta-yocto-bsp \
"
Mở file build/conf/local.conf và thay đổi biến để MACHINE xây dựng máy ảo QEMU cho kiến trúc x86-64:
MACHINE ?= "qemux86-64"
Xây dựng image hệ điều hành cho máy ảo QEMU, trong ví dụ này là core-image-minimal.
bitbake core-image-minimal
Sau khi quá trình build hoàn tất, bạn có thể chạy image trên QEMU để kiểm tra:
runqemu qemux86-64 nographic
Quy trình trên giúp bạn thiết lập môi trường và xây dựng image với Yocto Project một cách bài bản. Việc sử dụng QEMU để giả lập giúp bạn kiểm tra kết quả trước khi triển khai lên phần cứng thực tế. Yocto không chỉ là một công cụ mạnh mẽ mà còn linh hoạt, cho phép bạn tùy chỉnh hệ điều hành nhúng theo nhu cầu cụ thể của mình.
devlinux
0 Bình luận