Bitbake recept pigpio
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"
Globális rendszerkép-konfiguráció
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
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
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.