Programu Iliyopachikwa Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt picha ya skrini ya programu ya kompyuta

Yocto - Raspberry - PIGPIO - Qt

Linux na maktaba ya pigpio na mnyororo wa zana wa Qt

mapishi ya bitbake pigpio

Unda mapishi ya maktaba ya pigpio

Kwa mradi huu tunahitaji kuwa na maktaba ya nguruwe ili kufikia I2C, SPI na GPIOs zingine na maktaba moja.

Kwa bahati mbaya hatukupata kichocheo kwa ajili yake katika safu za kawaida za meta kwa Yocto na tunapaswa kuunda yetu wenyewe.

pigpio_git.bb mapishi

Kuunda mapishi maalum kwa Yocto sio ngumu sana - lakini kwa undani inaweza kuwa.

Utaratibu wa kawaida ni, kupata chanzo na kuiruhusu 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

Lakini ikiwa "bitbake pigpio", inatupa makosa kadhaa, kwa sababu hakuna maktaba zilizosanidiwa na eneo la faili za manpages hazishughulikiwi vizuri.

Hitilafu ya kurasa za manpages

Kwanza kosa lifuatalo hutokea:

ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
  /usr/man
  /usr/man/man1
  ...

Unaweza kurekebisha kosa hili kwa mipangilio ifuatayo:

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 \
"

Hitilafu isiyo ya Symlink

Baada ya kurekebisha kosa na kurasa za manpages, kosa linalofuata linakuja:

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]

Hii hutokea, kwa sababu hakuna maktaba za toleo zinazozalishwa kutoka "CMakeLists.txt". Ili kurekebisha hii, tunaongeza:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

Mfumo wa kuanza kiotomatiki nguruwe

Ili kuanzisha kiotomatiki Daemon ya nguruwe, tunaongeza yafuatayo:

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"

Kumbuka

Ikiwa unahitaji faili za kichwa zilizosakinishwa kwa maendeleo, lazima usakinishe IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Pakua safu ya meta iliyofungwa na kichocheo kutoka kwa meta-interelectronix-rpi.

Usanidi wa picha ya ulimwengu

mipangilio ya local.conf

Pakua faili za usanidi zilizofungwa kutoka kwa rpi4-build.

Kwanza angalia faili ya bblayers.conf. Ndani unapata safu za meta zinazohitajika. Pakua safu za meta, ikiwa haujafanya tayari na urekebishe faili yako ya bblayers.conf.

Pili angalia faili ya local.conf.

Mipangilio ya I2C

Ikiwa unataka kutumia chip ya sensor (kwa mfano sensor ya joto) iliyounganishwa na I2C, lazima uwezeshe I2C kwenye faili ya local.conf.

ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"

Ondoa X11 na Wayland

Kuna makosa mengi katika mchakato wa bitbake, ikiwa hatutaondoa X11 na Wayland

Kwa upande wetu - kwa kuwa hatuhitaji madirisha mengi - tunayaondoa.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Ili kutumia eglfs vizuri, tunaongeza:

VC4DTBO ?= "vc4-fkms-v3d"

picha ya bitbake Raspberry

Unda faili ya usanidi wa picha

Katika faili "rpi4-64-qt5-gpio-image.bb" tunafafanua, ni vifurushi gani tunahitaji katika usambazaji wetu wa linux. Hapa unaweza - kama ilivyoelezwa hapo awali - ni pamoja na IMAGE_FEATURES "dev-pkgs".

Faili imegawanywa katika sehemu kadhaa kama kwa mfano DEV-SDK, EXTRA_TOOLS na kadhalika, ili kuongeza vifurushi vinavyohitajika kwa urahisi.

mfuko wa pigpio

Kifurushi hiki kinaongezwa chini ya CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Vifurushi vya Qt

Vifurushi vinavyohitajika kwa Qt vinaongezwa kwenye vikundi vya kifurushi na vikundi hivi vya kifurushi vimeongezwa hapa:

IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"

Unaweza kupata "packagegroup-qt5" kwenye faili "packagegroup-qt5.bb" na kuongeza au kufuta vifurushi vya Qt.

Pakua safu ya meta iliyofungwa na picha kutoka kwa meta-interelectronix-rpi-qt.

Baada ya hapo unaweza kupiga picha:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Unda mnyororo wa zana wa SDK

Ikiwa unataka kuunda programu ya Qt kwa usambazaji huu maalum wa Linux, hakika unataka kuwa na mnyororo wa zana wa kukusanya, ili kuiongeza kwenye usanidi wako wa QtCreator.

Unaweza kuunda SDK kwa urahisi na amri ifuatayo ya bitbake:

bitbake -c populate_sdk rpi4-64-qt5-gpio-image

Tuna vikundi vya kifurushi "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" iliyoongezwa kwenye faili ya usanidi wa picha.

Sakinisha SDK

Unapata SDK iliyozalishwa katika saraka ifuatayo:

/tmp/deploy/sdk

Kwa upande wetu inaitwa "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Faili hii ina maagizo ya usanidi na faili zote zinazohitajika (katika umbizo lililobanwa).

Nakili faili hii kwenye kompyuta yako ya ukuzaji na uitekeleze:

./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh

Fuata maagizo ya kusakinisha SDK.</:code16:></:code15:></:code14:>

Leseni ya Hakimiliki

Copyright © 2022 Interelectronix e.K.
Msimbo huu wa chanzo cha Mradi una leseni chini ya leseni ya GPL-3.0.