Embedded Software Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt isang screenshot ng isang computer program

Yocto - Raspberry - PIGPIO - Qt

Linux na may pigpio library at Qt toolchain

bitbake recipe pigpio

Lumikha ng recipe para sa pigpio library

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"
I-download ang zipped meta-layer na may recipe mula sa meta-interelectronix-rpi.

Global configuration ng imahe

Mga setting ng lokal.conf

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

Lumikha ng file ng pagsasaayos ng 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

Lumikha ng SDK toolchain

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.