Vgrajena programska oprema Raspberry Pi - Yocto - Malina - PIGPIO - Qt posnetek zaslona računalniškega programa

Yocto - Malina - PIGPIO - Qt

Linux s knjižnico pigpio in Qt toolchain

bitbake recept pigpio

Ustvarjanje recepta za knjižnico pigpio

Za ta projekt moramo imeti pigpio knjižnico, da imajo dostop do I2C, SPI in drugih GPIOs z eno knjižnico.

Na žalost nismo našli recepta za to v skupnih meta-plasteh za Yocto in morajo ustvariti svoje.

pigpio_git.bb recept

Ustvarjanje recepta po meri za Yocto ni tako težko - ampak podrobno je lahko.

Standardni postopek je, da bi dobili vir in naj 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

Če pa "bitbake pigpio", vrže nekaj napak, saj ni konfigurirane različice knjižnic in mesto manpages datotek niso obravnavane pravilno.

manpages napaka

Najprej se pojavi naslednja napaka:

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

To napako lahko odpravite z naslednjimi nastavitvami:

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

nesymlink napaka

Ko odpravite napako z manpages, se prikaže naslednja napaka:

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]

To se zgodi, ker ni različice knjižnic, ustvarjenih iz »CMakeLists.txt«. Če želite to popraviti, dodamo:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

sistemski samodejni zagon pigpiod

Če želite samodejno zagnati prašičjega demona, dodamo naslednje:

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"

Opomba

Če potrebujete nameščene datoteke glave za razvoj, morate namestiti IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Prenesite zipped meta-sloj z receptom iz meta-interelektronix-rpi.

Globalna konfiguracija slike

nastavitve lokalnega.konfa

Prenesite konfiguracijske datoteke za gradnjo z zadrgo iz rpi4-build.

Najprej si oglejte datoteko bblayers.conf. V notranjosti najdeš potrebna meta-sloja. Prenesite meta-plasti, če še niste storili in prilagodite datoteko bblayers.conf.

Drugo pa si oglejte lokalno.conf datoteko.

I2C nastavitve

Če želite uporabiti senzorski čip (npr. temperaturni senzor), povezan z I2C, morate omogočiti I2C v datoteki local.conf.

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

Odstrani X11 in Wayland

Obstaja veliko napak v bitbake procesu, če ne odstranimo X11 in Wayland

V našem primeru - ker ne potrebujemo več oken - jih odstranimo.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Če želite pravilno uporabiti eglfs, dodamo:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Malina slika

Ustvarjanje konfiguracijske datoteke slike

V datoteki "rpi4-64-qt5-gpio-image.bb" definiramo, katere pakete potrebujemo v naši distribuciji linuxa. Tukaj lahko - kot smo že omenili - vključite IMAGE_FEATURES "dev-pkgs".

Datoteka je ločena v več odsekih, kot na primer DEV-SDK, EXTRA_TOOLS in tako naprej, da dodate enostavno potrebna paketa.

paket pigpio

Ta paket se doda pod CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Qt paketi

Paketi, ki so potrebna za Qt, se dodajo v skupine paketov in te skupine paketov so dodane tukaj:

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

»Paketna skupina-qt5« lahko najdete v datoteki »packagegroup-qt5.bb« in dodate ali izbrišete pakete Qt.

Prenesite zipped meta-sloj s sliko iz meta-interelectronix-rpi-qt.

Po tem lahko bitbake sliko:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Ustvarjanje navtika za orodje SDK

Če želite razviti Qt aplikacijo za to distribucijo Linux po meri, zagotovo želite imeti cross compile toolchain, da ga dodate v konfiguracijo QtCreator.

SdK lahko preprosto ustvarite z naslednjim ukazom bitbake:

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

V datoteko konfiguracije slike so dodane skupine paketov "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug".

Namesti SDK

Ustvarjeni SDK najdete v tem imeniku:

/tmp/deploy/sdk

V našem primeru se imenuje "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Ta datoteka vsebuje navodila za namestitev in vse potrebno datoteke (v stisnjeni obliki).

Kopirajte to datoteko v svoj razvojni računalnik in jo izvršite:

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

Sledite navodilom, da namestite SDK.</:code16:></:code15:></:code14:>

Licenca za avtorske pravice

Copyright © 2022 Interelectronix e.K.
Izvorna koda projekta je licencirana pod licenco GPL-3.0.