bitbake opskrift pigpio
Til dette projekt skal vi have pigpio-biblioteket til at have adgang til I2C, SPI og andre GPIO'er med ét bibliotek.
Desværre fandt vi ingen opskrift på det i de almindelige metalag for Yocto, og vi er nødt til at skabe vores egen.
###pigpio_git.bb opskrift
Det er ikke så svært at oprette en brugerdefineret opskrift til Yocto – men i detaljer kan det være.
Standardproceduren er, at få kilden og lade den 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
Men hvis du "bitbarke pigpio", opstår der nogle fejl, fordi der ikke er nogle versionerede biblioteker konfigureret, og placeringen af manpages-filerne ikke håndteres korrekt.
manpages-fejl
Først opstår følgende fejl:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Du kan rette denne fejl med følgende indstillinger:
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 \
"
ikke-symlink-fejl
Efter fastsættelse af fejlen med manpages, kommer den næste fejl op:
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]
Dette sker, fordi der ikke er nogen versionerede biblioteker genereret fra "CMakeLists.txt". For at løse dette, tilføjer vi:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
For at autostarte pigpio-dæmonen, tilføjer vi følgende:
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"
Bemærkning
Hvis du har brug for at have header-filer installeret til udvikling, du er nødt til at installere IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Download det zippede metalag med opskriften fra meta-interelectronix-rpi.
Global billedkonfiguration
Download de zippede byggekonfigurationsfiler fra rpi4-build.
Tag først et kig på bblayers.conf-filen. Indeni finder du de nødvendige metalag. Download metalagene, hvis du ikke allerede har gjort det, og juster din bblayers.conf-fil.
Derefter tager du et kig på local.conf-filen.
I2C-indstillinger
Hvis du vil bruge en sensorchip (f.eks. en temperaturføler) forbundet med I2C, skal du aktivere I2C i local.conf-filen.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Fjern X11 og Wayland
Der er mange fejl i bitbake-processen, hvis vi ikke fjerner X11 og Wayland
I vores tilfælde – da vi ikke har brug for flere vinduer – fjerner vi dem.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
For at bruge eglfs korrekt tilføjer vi:
VC4DTBO ?= "vc4-fkms-v3d"
bitbake Raspberry-billede
I filen "rpi4-64-qt5-gpio-image.bb" definerer vi, hvilke pakker vi har brug for i vores linux-distribution. Her kan du – som tidligere nævnt – inkludere image_Funktioner IMAGE_FEATURES "dev-pkgs".
Filen er opdelt i flere sektioner som for eksempel DEV-SDK, extra_ TOOLS og så videre, for nemt at tilføje nødvendige pakker.
pigpio-pakke
Denne pakke er tilføjet under CUSTOM_TUFF:
CUSTOM_STUFF = " \
pigpio \
"
Qt-pakker
De pakker, der er nødvendige for Qt, tilføjes i pakkegrupper, og disse pakkegrupper tilføjes her:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Du kan finde "packagegroup-qt5" i filen "packagegroup-qt5.bb" og tilføje eller slette Qt-pakker.
Download det zippede metalag med billedet fra meta-interelectronix-rpi-qt. Efter at du kan bitbake billedet:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
Hvis du ønsker at udvikle en Qt-applikation til denne brugerdefinerede Linux-distribution, vil du helt sikkert gerne have en krydskompileringsværktøjskæde for at tilføje den til din QtCreator-konfiguration.
Du kan nemt oprette en SDK med følgende bitbake-kommando:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Vi har pakkegrupperne "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" tilføjet til billedkonfigurationsfilen.
Installer SDK
Du finder den genererede SDK i følgende mappe:
/tmp/deploy/sdk
I vores tilfælde hedder den "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Denne fil indeholder installationsinstruktioner og alle de nødvendige filer (i et komprimeret format).
Kopier denne fil til din udviklingscomputer, og kør den:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Følg instruktionerne for at installere SDK.
Ophavsretslicens
Copyright © 2022 Interelectronix e.K.
Denne projektkildekode er licenseret under GPL-3.0-licensen.