Trong bài viết này, ta tập trung vào việc tạo một bản phân phối Linux bằng cách sử dụng dự án Yocto trên nền tảng Ubuntu. Dự án Yocto rất nổi tiếng trong thế giới nhúng Linux vì tính linh hoạt và dễ sử dụng của nó. Mục đích của dự án Yocto là tạo ra một bản phân phối Linux cho các nhà sản xuất phần cứng và phần mềm nhúng. Một bản phân phối Linux mới sẽ được tạo cho qemu làm máy thử nghiệm (qemu là một phần mềm giả lập cơ bản) và chúng tôi sẽ chạy nó trong qemu.
Điều kiện tiên quyết
- RAM ít nhất 4 - 6 GB.
- Hệ điều hành Ubuntu.
- Ổ đĩa trống ít nhất 60-80 GB dung lượng trống.
- Cài đặt các gói bắt buộc trước khi tạo bản phân phối Linux mới.
- Tải xuống nhánh stable Yocto (Poky là môi trường phát triển tối thiểu) mới nhất.
Cập nhật hệ thống và cài đặt các package cần thiết:
apt-get update
apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop
git clone -b morty git://git.yoctoproject.org/poky.git
source oe-init-build-env
Như được hiển thị bên dưới, sau khi chạy tập lệnh xây dựng môi trường nhúng mở, vị trí đường dẫn trong terminal sẽ được thay đổi thành thư mục "build" để cấu hình thêm và biên dịch bản phân phối mới.
Ảnh chụp màn hình ở trên cho thấy tệp "local.conf" được tạo bên trong thư mục "conf". Đây là tệp cấu hình cho yocto chỉ định chi tiết của máy target và SDK cho kiến trúc mong muốn, v.v.
Như hình dưới đây, thiết lập máy mục tiêu "qemux86-64".
DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
Như hình dưới đây, hãy đặt mật khẩu trống cho Linux dựa trên nền tảng Yocto và bao gồm các tham số sau trong tệp local.conf. Nếu không, người dùng sẽ không thể đăng nhập vào bản phân phối mới.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
Biên dịch Yocto
Bây giờ hãy chạy lệnh của tiện ích bitbake để bắt đầu tải xuống và biên dịch các gói cho máy target đã chọn.
bitbake core-image-minimal
Điều quan trọng là phải chạy lệnh trên với tư cách người dùng Linux bình thường chứ không phải người dùng root. Như được hiển thị trong ảnh chụp screenshot sau đây, một lỗi được tạo ra khi bạn chạy lệnh bitbake với tư cách là người dùng root.
Một lần nữa, hãy chạy tập lệnh export các biến môi trường (oe-init-build-env) và chạy lại lệnh tương tự để bắt đầu quá trình tải xuống và biên dịch.Như hình dưới đây, một lệnh sẽ tạo ra lỗi nếu chạy trong Putty.