Bitbake reteta 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"
Configurarea globală a imaginii
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ă
Î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
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.