Ugrađeni softver Raspberry Pi - Yocto - Malina - PIGPIO - Qt snimka zaslona računalnog programa

Yocto - Malina - PIGPIO - Qt

Linux s pigpio bibliotekom i Qt alatnim lancem

bitbake recept pigpio

Napravite recept za pigpio biblioteku

Za ovaj projekt moramo imati pigpio knjižnicu kako bismo imali pristup I2C, SPI i drugim GPIO-ima s jednom knjižnicom.

Nažalost, nismo pronašli recept za to u uobičajenim meta-slojevima za Yocto i moramo stvoriti vlastiti.

pigpio_git.bb recept

Stvaranje prilagođenog recepta za Yocto nije tako teško - ali detaljno može biti.

Standardni postupak je, dobiti izvor i pustiti ga da se 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

Ali ako "bitbake pigpio", to baca neke pogreške, jer nema konfiguriranih biblioteka s verzijama, a mjesto manpages datoteka nije ispravno obrađeno.

pogreška manpagesa

Najprije se pojavljuje sljedeća pogreška:

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

Ovu pogrešku možete ispraviti sljedećim postavkama:

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

pogreška koja nije simlink

Nakon ispravljanja pogreške s manpagesima pojavljuje se sljedeća pogreška:

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 događa jer iz "CMakeLists.txt" nema biblioteka s verzijama. Da bismo to popravili, dodamo:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemd autostart pigpiod

Da bismo automatski pokrenuli pigpio demon, dodajemo sljedeće:

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"

Bilješka

Ako su vam za razvoj potrebne instalirane datoteke zaglavlja, morate instalirati IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Preuzmite meta-sloj s patentnim zatvaračem s receptom iz meta-interelektronix-rpi.

Globalna konfiguracija slike

postavke local.conf

Preuzmite zipane konfiguracijske datoteke međuverzije iz rpi4-builda.

Prvo pogledajte datoteku bblayers.conf. Unutra možete pronaći potrebne meta-slojeve. Preuzmite meta-slojeve, ako to već niste učinili i prilagodite datoteku bblayers.conf.

Drugo, pogledajte datoteku local.conf.

I2C postavke

Ako želite koristiti senzorski čip (npr. senzor temperature) povezan s I2C, morate omogućiti I2C u datoteci local.conf.

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

Ukloni X11 i Wayland

Postoje mnoge pogreške u procesu bitbake, ako ne uklonimo X11 i Wayland

U našem slučaju - budući da nam ne treba više prozora - uklanjamo ih.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Da bismo pravilno koristili EGLF-ove, dodamo:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Raspberry slika

Stvaranje konfiguracijske datoteke slike

U datoteci "rpi4-64-qt5-gpio-image.bb" definiramo koje pakete trebamo u našoj linux distribuciji. Ovdje možete - kao što je već spomenuto - uključiti IMAGE_FEATURES "dev-pkgs".

Datoteka je podijeljena u nekoliko odjeljaka kao što su na primjer DEV-SDK, EXTRA_TOOLS i tako dalje, kako bi se dodali lako potrebni paketi.

pigpio paket

Ovaj se paket dodaje u odjeljku CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Qt paketi

Paketi potrebni za Qt dodaju se u grupe paketa, a ove grupe paketa dodaju se ovdje:

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

Možete pronaći "packagegroup-qt5" u datoteci "packagegroup-qt5.bb" i dodati ili izbrisati Qt pakete.

Preuzmite zipani meta-sloj sa slikom iz meta-interelectronix-rpi-qt.

Nakon toga možete bitbakirati sliku:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Stvaranje lanca alata za SDK

Ako želite razviti Qt aplikaciju za ovu prilagođenu Linux distribuciju, sigurno želite imati crosscompiled lanac alata, kako biste ga dodali u svoju QtCreator konfiguraciju.

SDK možete jednostavno stvoriti pomoću sljedeće bitbake naredbe:

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

Imamo grupe paketa "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" dodane u konfiguracijsku datoteku slike.

Instaliraj SDK

Generirani SDK možete pronaći u sljedećem direktoriju:

/tmp/deploy/sdk

U našem slučaju nazvan je "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Ova datoteka sadrži upute za postavljanje i sve potrebne datoteke (u komprimiranom obliku).

Kopirajte ovu datoteku na razvojno računalo i izvršite je:

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

Slijedite upute za instalaciju SDK-a.</:code16:></:code15:></:code14:>

Licenca za autorska prava

Autorska prava © 2022. Interelectronix e.K.
Ovaj izvorni kod projekta licenciran je pod licencom GPL-3.0.