Innebygd programvare Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt et skjermbilde av et dataprogram

Yocto - Raspberry - PIGPIO - Qt

Linux med PIGPIO- bibliotek og Qt verktøykjede

bitbake pigpio oppskrift

Opprett oppskrift for pigpio-bibliotek

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

local.conf-innstillinger

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

Opprett bildekonfigurasjonsfil

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

Opprett SDK-verktøykjede

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.