Beágyazott szoftver Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt egy számítógépes program képernyőképe

Yocto - Málna - PIGPIO - Qt

Linux pigpio könyvtárral és Qt eszköztárral

Bitbake recept pigpio

Hozzon létre receptet a pigpio könyvtárhoz

Ehhez a projekthez szükségünk van a pigpio könyvtárra, hogy hozzáférjünk az I2C, SPI és más GPIO-khoz egy könyvtárral.

Sajnos nem találtunk rá receptet a Yocto közös metarétegeiben, és létre kell hoznunk a sajátunkat.

pigpio_git.bb recept

A Yocto egyedi receptjének létrehozása nem olyan nehéz - de részletesen lehet.

A szokásos eljárás az, hogy megkapjuk a forrást, és hagyjuk bitsütni:

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

De ha "bitbake pigpio", akkor hibákat dob, mert nincsenek verziószámmal ellátott könyvtárak konfigurálva, és a manpages fájlok helyét nem kezelik helyesen.

manpages hiba

Először a következő hiba történik:

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

Ezt a hibát a következő beállításokkal javíthatja:

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

Nem szimbolikus hivatkozás hiba

Miután kijavította a hibát a manpages-szel, a következő hiba jelenik meg:

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]

Ez azért fordul elő, mert nincsenek verziószámmal ellátott könyvtárak a "CMakeLists.txt" programból. A probléma megoldásához hozzáadjuk a következőket:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemd autostart pigpiod

A pigpio démon automatikus indításához hozzáadjuk a következőket:

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"

Jegyzet

Ha fejlécfájlokat kell telepítenie a fejlesztéshez, telepítenie kell IMAGE_FEATURES "dev-pkgs"

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Töltse le a tömörített metaréteget a meta-interelectronix-rpi receptjével.

Globális rendszerkép-konfiguráció

local.conf beállítások

Töltse le a tömörített build konfigurációs fájljait az rpi4-build webhelyről.

Először vessen egy pillantást a bblayers.conf fájlra. Belül megtalálja a szükséges metarétegeket. Töltsd le a metarétegeket, ha még nem tetted meg, és állítsd be a bblayers.conf fájlt.

Másodszor, vessen egy pillantást a local.conf fájlra.

I2C beállítások

Ha I2C-hez csatlakoztatott érzékelő chipet (pl. hőmérséklet-érzékelőt) szeretne használni, engedélyeznie kell az I2C-t a local.conf fájlban.

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

Távolítsa el az X11-et és a Waylandet

Sok hiba van a bitbake folyamatban, ha nem távolítjuk el az X11-et és a Waylandet

Esetünkben - mivel nincs szükségünk több ablakra - eltávolítjuk őket.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Az eglfs megfelelő használatához hozzáadjuk:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Málna kép

Rendszerképkonfigurációs fájl létrehozása

A "rpi4-64-qt5-gpio-image.bb" fájlban meghatározzuk, hogy mely csomagokra van szükségünk linux disztribúciónkban. Itt - mint korábban említettük - a "dev-pkgs" IMAGE_FEATURES is beillesztheti.

A fájl több szakaszra van osztva, például DEV-SDK, EXTRA_TOOLS és így tovább, hogy könnyen szükséges csomagokat adjon hozzá.

Pigpio csomag

Ez a csomag a CUSTOM_STUFF alatt kerül hozzáadásra:

CUSTOM_STUFF = " \
    pigpio \
"

Qt csomagok

A Qt-hez szükséges csomagok csomagcsoportokba kerülnek, és ezek a csomagcsoportok itt kerülnek hozzáadásra:

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

A "packagegroup-qt5" megtalálható az "packagegroup-qt5.bb" fájlban, és hozzáadhat vagy törölhet Qt csomagokat.

Töltse le a tömörített metaréteget a képpel a meta-interelectronix-rpi-qt webhelyről.

Ezután bitsütheti a képet:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

SDK-eszközlánc létrehozása

Ha Qt alkalmazást szeretne fejleszteni ehhez az egyedi Linux disztribúcióhoz, akkor biztosan keresztfordítási eszközláncot szeretne, hogy hozzáadja a QtCreator konfigurációjához.

A következő bitbake paranccsal egyszerűen létrehozhat SDK-t:

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

A "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" csomagcsoportok hozzá vannak adva a képkonfigurációs fájlhoz.

SDK telepítése

A létrehozott SDK a következő könyvtárban található:

/tmp/deploy/sdk

Esetünkben a neve "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Ez a fájl tartalmazza a telepítési utasításokat és az összes szükséges fájlt (tömörített formátumban).

Másolja ezt a fájlt a fejlesztői számítógépre, és hajtsa végre:

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

Az SDK telepítéséhez kövesse az utasításokat.</:code16:></:code15:></:code14:>

Szerzői jogi licenc

Copyright © 2022 Interelectronix e.K.
Ez a Project forráskód a GPL-3.0 licenc alatt van licencelve.