bitbake recipe pigpio
Para sa proyektong ito kailangan nating magkaroon ng pigpio library upang magkaroon ng access sa I2C, SPI at iba pang mga GPIO na may isang library.
Sa kasamaang palad ay wala kaming nakitang recipe para dito sa mga karaniwang meta layer para sa Yocto at kailangang lumikha ng ating sariling.
pigpio_git.bb recipe
Ang paglikha ng isang pasadyang recipe para sa Yocto ay hindi gaanong mahirap - ngunit sa detalye maaari itong maging.
Ang standard na pamamaraan ay, upang makuha ang pinagmulan at hayaan itong 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
Ngunit kung "bitbake pigpio" ka, nagtatapon ito ng ilang mga error, dahil walang mga versioned library na naka configure at ang lokasyon ng mga file ng manpages ay hindi hinahawakan nang tama.
error sa manpages
Una ang sumusunod na error ay nangyayari:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Maaari mong ayusin ang error na ito sa mga sumusunod na setting:
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 \
"
di symlink error
Matapos ayusin ang error sa mga manpage, ang susunod na error ay dumating up:
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]
Nangyayari ito, dahil walang mga versioned library na nabuo mula sa "CMakeLists.txt". Upang ayusin ito, idagdag namin:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
Upang autostart ang pigpio daemon, idagdag namin ang mga sumusunod:
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"
Tala
Kung kailangan mo ng mga header file na naka-install para sa pag-unlad, kailangan mong i-install IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Global configuration ng imahe
I-download ang mga zipped build configuration file mula sa rpi4-build.
Una ay magkaroon ng isang pagtingin sa bblayers.conf file. Sa loob mo matatagpuan ang mga kinakailangang meta-layer. Download mo na lang yung mga meta layers, kung wala ka pa tapos at adjust mo na yung bblayers.conf file mo.
Pangalawa magkaroon ng isang pagtingin sa local.conf file.
Mga setting ng I2C
Kung nais mong gumamit ng isang sensor chip (hal. isang sensor ng temperatura) na konektado sa I2C, kailangan mong paganahin ang I2C sa lokal.conf file.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Tanggalin ang X11 at Wayland
Maraming error sa proseso ng bitbake, kung hindi namin alisin ang X11 at Wayland
Sa aming kaso - bilang hindi namin kailangan ng maramihang mga bintana - alisin namin ang mga ito.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Upang magamit ang eglfs nang maayos, idinagdag namin:
VC4DTBO ?= "vc4-fkms-v3d"
bitbake Raspberry imahe
Sa file na "rpi4-64-qt5-gpio-image.bb" tinutukoy namin, kung aling mga pakete ang kailangan namin sa aming pamamahagi ng linux. Dito maaari mong - tulad ng nabanggit bago - isama ang IMAGE_FEATURES "dev-pkgs".
Ang file ay pinaghihiwalay sa ilang mga seksyon tulad ng halimbawa DEV-SDK, EXTRA_TOOLS at iba pa, upang magdagdag ng madaling kailanganing mga pakete.
pakete ng pigpio
Ang paketeng ito ay idinagdag sa ilalim ng CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
Mga pakete ng Qt
Ang mga pakete na kailangan para sa Qt ay idinagdag sa mga grupo ng pakete at ang mga grupo ng pakete na ito ay idinagdag dito:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Maaari mong mahanap ang "packagegroup-qt5" sa file na "packagegroup-qt5.bb" at magdagdag o magtanggal ng mga Qt package.
I-download ang zipped meta-layer na may imahe mula sa meta-interelectronix-rpi-qt.
Pagkatapos nito maaari mong bitbake ang imahe:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
Kung nais mong bumuo ng isang application ng Qt para sa pasadyang pamamahagi ng Linux na ito, tiyak na nais mong magkaroon ng cross compile toolchain, upang idagdag ito sa iyong QtCreator configuration.
Madali kang makalikha ng isang SDK gamit ang sumusunod na bitbake command:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Mayroon kaming mga grupo ng pakete na "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" na idinagdag sa file ng pagsasaayos ng imahe.
Mag install ng SDK
Hanapin mo ang nabuong SDK sa sumusunod na direktoryo:
/tmp/deploy/sdk
Sa aming kaso ito ay pinangalanang "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Ang file na ito ay naglalaman ng mga tagubilin sa pag setup at lahat ng kinakailangang mga file (sa isang compressed format).
Kopyahin ang file na ito sa iyong development computer at isagawa ito:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Sundin ang mga tagubilin upang mai install ang SDK.</:code16:></:code15:></:code14:>
Lisensya sa Copyright
Copyright © 2022 Interelectronix e.K.
Ang source code na ito ng Proyekto ay lisensyado sa ilalim ng GPL-3.0 lisensya.