bitbake pigpio oppskrift
For dette prosjektet må vi ha pigpio-biblioteket for å ha tilgang til I2C, SPI og andre GPIO-er med ett bibliotek.
Dessverre fant vi ingen oppskrift på det i de vanlige metalagene til Yocto og må lage våre egne.
pigpio_git.bb oppskrift
Det er ikke så vanskelig å lage en tilpasset oppskrift for Yocto, men detaljert kan det være.
Standard prosedyre er å få kilden og la 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 "bitbake pigpio" blir det noen feil, fordi det er ingen versjonerte biblioteker konfigurert og plasseringen av manpages filene håndteres ikke riktig.
manpages feil
Først oppstår følgende feil:
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 feilen med følgende innstillinger:
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 feil
Etter å ha rettet feilen med manpages, kommer neste feil opp:
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 skjer, fordi det ikke er noen versjonerte biblioteker generert fra "CMakeLists.txt". For å fikse dette, legger vi til:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
For å starte pigpio-demonen automatisk, legger vi til 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"
Merknad
Hvis du trenger header filer installert for utvikling, må du installere IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Last ned metalaget med glidelås med oppskriften fra meta-interelectronix-rpi.
Global bildekonfigurasjon
Last ned konfigurasjonsfilene for zip-bygg fra rpi4-bygg.Ta først en titt på filen bblayers.conf. På innsiden finner du de nødvendige metalagene. Last ned metalagene hvis du ikke allerede har gjort det, og juster bblayers.conf-filen.
Ta så en titt på filen local.conf.
I2C-innstillinger
Hvis du vil bruke en sensorbrikke (f.eks. en temperatursensor) koblet til I2C, må du aktivere I2C i local.conf-filen.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Fjern X11 og Wayland
Det er mange feil i bitbakeprosessen, hvis vi ikke fjerner X11 og Wayland.
I vårt tilfelle fjerner vi dem, siden vi ikke trenger flere vinduer.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
For å bruke eglfs riktig, legger vi til:
VC4DTBO ?= "vc4-fkms-v3d"
bitbake Raspberry bilde
I filen "rpi4-64-qt5-gpio-image.bb" definerer vi hvilke pakker vi trenger i linuxdistribusjonen vår. Her kan du, som nevnt tidligere, inkludere IMAGE_FEATURES "dev-pkgs".
Filen er delt inn i flere seksjoner som for eksempel DEV-SDK, EXTRA_TOOLS også videre, for å legge til lett tiltrengte pakker.
pigpio pakke
Denne pakken er lagt til under CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
# Qt-pakker
Pakkene som trengs for Qt legges til i pakkegrupper, og denne pakkegruppen legges til her:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Du kan finne "packagegroup-qt5" i filen "packagegroup-qt5.bb" og legge til eller slette Qt-pakker.
Last ned metalaget med glidelås med bildet fra meta-interelectronix-rpi-qt.Etter det kan du bitbake bildet:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
Hvis du vil utvikle et Qt-program for denne egendefinerte Linux-distribusjonen, vil du sikkert ha en krysskompilerings verktøykjede for å legge den til i QtCreator-konfigurasjonen.
Du kan enkelt opprette en SDK med følgende bitbake-kommando:
<: code14:>
Vi har pakkegruppene "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" lagt til i bildekonfigurasjonsfilen.
Installer SDK
Du finner generert SDK i følgende katalog:
/tmp/deploy/sdk
I vårt tilfelle heter den "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Denne filen inneholder installasjonsinstruksjoner og alle nødvendige filer (i et komprimert format).
Kopier denne filen til utviklingsmaskinen og kjør den:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Følg instruksjonene for å installere SDK.
Opphavsrettslisens
Copyright © 2022 Interelectronix e.K.
Denne Project-kildekoden er lisensiert under GPL-3.0 -lisensen.