Công thức bitbake Pigpio
Đối với dự án này, chúng ta cần có thư viện pigpio để có quyền truy cập vào I2C, SPI và các GPIO khác với một thư viện.
Thật không may, chúng tôi không tìm thấy công thức nào cho nó trong các lớp meta phổ biến cho Yocto và phải tạo ra lớp của riêng mình.
pigpio_git.bb công thức
Tạo một công thức tùy chỉnh cho Yocto không quá khó - nhưng chi tiết nó có thể.
Quy trình tiêu chuẩn là, để có được nguồn và để nó bitbake:
DESCRIPTION = "pigpio"
SECTION = "devel/libs"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "file://UNLICENCE"
COMPATIBLE_MACHINE = "^rpi$"
SRC_URI = "git://github.com/joan2937/pigpio.git;protocol=https;tag=v79 \
"
S = "${WORKDIR}/git"
inherit pkgconfig cmake
Nhưng nếu bạn "bitbake pigpio", nó sẽ gây ra một số lỗi, vì không có thư viện phiên bản nào được cấu hình và vị trí của các tệp manpages không được xử lý chính xác.
lỗi manpages
Đầu tiên, lỗi sau xảy ra:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Bạn có thể khắc phục lỗi này bằng các cài đặt sau:
FILES:${PN}-doc += "\
/usr/man/man1/pigs.1 \
/usr/man/man1/pig2vcd.1 \
/usr/man/man1/pigpiod.1 \
/usr/man/man3/pigpio.3 \
/usr/man/man3/pigpiod_if.3 \
/usr/man/man3/pigpiod_if2.3 \
"
lỗi không liên kết tượng trưng
Sau khi sửa lỗi với các manpages, lỗi tiếp theo xuất hiện:
ERROR: pigpio-git-r0 do_package_qa: QA Issue: pigpio rdepends on pigpio-dev [dev-deps]
ERROR: pigpio-git-r0 do_package_qa: QA Issue: -dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpio.so'
-dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpiod_if2.so'
-dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpiod_if.so' [dev-elf]
Điều này xảy ra, bởi vì không có thư viện phiên bản nào được tạo ra từ "CMakeLists.txt". Để khắc phục điều này, chúng tôi thêm:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
Để tự động khởi động pigpio daemon, chúng tôi thêm như sau:
do_install() {
install -d ${D}${bindir}
install -d ${D}${libdir}
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
install -m 0644 ${S}/pigpio.py ${D}${PYTHON_SITEPACKAGES_DIR}
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/util/pigpiod.service ${D}${systemd_system_unitdir}
cmake_do_install
}
SYSTEMD_SERVICE:${PN} = "pigpiod.service"
Ghi
Nếu bạn cần cài đặt các tệp tiêu đề để phát triển, bạn phải cài đặt IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Cấu hình hình ảnh toàn cầu
Tải xuống các tệp cấu hình xây dựng đã nén từ bản dựng rpi4.
Đầu tiên hãy xem tệp bblayers.conf. Bên trong bạn tìm thấy các lớp meta cần thiết. Tải xuống các lớp meta, nếu bạn chưa thực hiện và điều chỉnh tệp bblayers.conf của mình.
Thứ hai, hãy xem tệp local.conf.
Cài đặt I2C
Nếu bạn muốn sử dụng chip cảm biến (ví dụ: cảm biến nhiệt độ) được kết nối với I2C, bạn phải bật I2C trong tệp local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Xóa X11 và Wayland
Có rất nhiều lỗi trong quá trình bitbake, nếu chúng ta không loại bỏ X11 và Wayland
Trong trường hợp của chúng tôi - vì chúng tôi không cần nhiều cửa sổ - chúng tôi xóa chúng.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Để sử dụng eglfs đúng cách, chúng tôi thêm:
VC4DTBO ?= "vc4-fkms-v3d"
bitbake Hình ảnh quả mâm xôi
Trong tệp "rpi4-64-qt5-gpio-image.bb", chúng tôi xác định, gói nào chúng tôi cần trong bản phân phối linux của mình. Ở đây bạn có thể - như đã đề cập trước đây - bao gồm IMAGE_FEATURES "dev-pkgs".
Tệp được chia thành nhiều phần như ví dụ DEV-SDK, EXTRA_TOOLS, v.v., để thêm các gói dễ dàng cần thiết.
Gói pigpio
Gói này được thêm vào theo CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
Gói Qt
Các gói cần thiết cho Qt được thêm vào các nhóm gói và các nhóm gói này được thêm vào đây:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Bạn có thể tìm thấy "packagegroup-qt5" trong tệp "packagegroup-qt5.bb" và thêm hoặc xóa các gói Qt.
Tải xuống lớp meta nén với hình ảnh từ meta-interelectronix-rpi-qt.
Sau đó, bạn có thể bitbake hình ảnh:
bitbake rpi4-64-qt5-gpio-image
SDK bitbake
Nếu bạn muốn phát triển một ứng dụng Qt cho bản phân phối Linux tùy chỉnh này, bạn chắc chắn muốn có chuỗi công cụ biên dịch chéo, để thêm nó vào cấu hình QtCreator của bạn.
Bạn có thể dễ dàng tạo SDK bằng lệnh bitbake sau:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Chúng tôi có các nhóm gói "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" được thêm vào tệp cấu hình hình ảnh.
Cài đặt SDK
Bạn tìm thấy SDK được tạo trong thư mục sau:
/tmp/deploy/sdk
Trong trường hợp của chúng tôi, nó được đặt tên là "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Tệp này chứa hướng dẫn thiết lập và tất cả các tệp cần thiết (ở định dạng nén).
Sao chép tệp này vào máy tính phát triển của bạn và thực thi nó:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Làm theo hướng dẫn để cài đặt SDK.</:code16:></:code15:></:code14:>
Giấy phép bản quyền
**Bản quyền © 2022 Interelectronix ví dụ: **
Mã nguồn Project này được cấp phép theo giấy phép GPL-3.0.