Software încorporat Raspberry Pi - Yocto - Zmeură - PIGPIO - Qt o captură de ecran a unui program de calculator

Yocto - Zmeură - PIGPIO - Qt

Linux cu bibliotecă pigpio și lanț de instrumente Qt

Bitbake reteta pigpio

Creați o rețetă pentru biblioteca pigpio

Pentru acest proiect trebuie să avem biblioteca pigpio pentru a avea acces la I2C, SPI și alte GPIO-uri cu o singură bibliotecă.

Din păcate, nu am găsit nicio rețetă pentru aceasta în meta-straturile comune pentru Yocto și trebuie să le creăm pe ale noastre.

Reteta pigpio_git.bb

Crearea unei rețete personalizate pentru Yocto nu este atât de dificilă - dar în detaliu poate fi.

Procedura standard este, pentru a obține sursa și lăsați-o 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

Dar dacă "bitbake pigpio", aruncă unele erori, deoarece nu există biblioteci cu versiuni configurate și locația fișierelor manpages nu sunt tratate corect.

eroare manpages

Mai întâi apare următoarea eroare:

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

Puteți remedia această eroare cu următoarele setări:

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

eroare non-symlink

După remedierea erorii cu manpages, apare următoarea eroare:

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]

Acest lucru se întâmplă, deoarece nu există biblioteci cu versiuni generate din "CMakeLists.txt". Pentru a remedia acest lucru, adăugăm:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

Pigpiod de autostart sistematizat

Pentru a porni automat demonul pigpio, adăugăm următoarele:

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"

Notă

Dacă aveți nevoie de fișiere antet instalate pentru dezvoltare, trebuie să instalați IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Descărcați meta-stratul cu fermoar cu rețeta din meta-interelectronix-rpi.

Configurarea globală a imaginii

Setări local.conf

Descărcați fișierele de configurare a compilării zip din rpi4-build.

Mai întâi aruncați o privire la fișierul bblayers.conf. În interior găsiți meta-straturile necesare. Descărcați meta-straturile, dacă nu ați făcut-o deja și ajustați fișierul bblayers.conf.

În al doilea rând, aruncați o privire la fișierul local.conf.

Setări I2C

Dacă doriți să utilizați un cip senzor (de exemplu, un senzor de temperatură) conectat cu I2C, trebuie să activați I2C în fișierul local.conf.

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

Eliminați X11 și Wayland

Există multe erori în procesul bitbake, dacă nu eliminăm X11 și Wayland

În cazul nostru - deoarece nu avem nevoie de mai multe ferestre - le eliminăm.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Pentru a utiliza eglfs în mod corespunzător, adăugăm:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Imagine de zmeură

Creați un fișier de configurare a imaginii

În fișierul "rpi4-64-qt5-gpio-image.bb" definim, ce pachete avem nevoie în distribuția noastră linux. Aici puteți - așa cum am menționat anterior - să includeți IMAGE_FEATURES "dev-pkgs".

Fișierul este separat în mai multe secțiuni, cum ar fi, de exemplu, DEV-SDK, EXTRA_TOOLS și așa mai departe, pentru a adăuga pachete ușor necesare.

Pachet Pipigio

Acest pachet este adăugat sub CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Pachete Qt

Pachetele necesare pentru Qt sunt adăugate în grupuri de pachete și aceste grupuri de pachete sunt adăugate aici:

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

Puteți găsi "packagegroup-qt5" în fișierul "packagegroup-qt5.bb" și puteți adăuga sau șterge pachete Qt.

Descărcați meta-stratul zip cu imaginea din meta-interelectronix-rpi-qt.

După aceea, puteți bitbake imaginea:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Creați un lanț de instrumente SDK

Dacă doriți să dezvoltați o aplicație Qt pentru această distribuție Linux personalizată, cu siguranță doriți să aveți un lanț de instrumente de compilare încrucișată, pentru a-l adăuga la configurația QtCreator.

Puteți crea cu ușurință un SDK cu următoarea comandă bitbake:

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

Avem grupurile de pachete "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" adăugate la fișierul de configurare a imaginii.

Instalați SDK

Găsiți SDK-ul generat în următorul director:

/tmp/deploy/sdk

În cazul nostru se numește "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Acest fișier conține instrucțiuni de configurare și toate fișierele necesare (într-un format comprimat).

Copiați acest fișier pe computerul de dezvoltare și executați-l:

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

Urmați instrucțiunile pentru a instala SDK-ul.</:code16:></:code15:></:code14:>

Licență pentru drepturi de autor

Copyright © 2022 Interelectronix e.K.
Acest cod sursă al Proiectului este licențiat sub licența GPL-3.0.