Bitbake recept pigpio
Pre tento projekt potrebujeme mať knižnicu pigpio, aby sme mali prístup k I2C, SPI a iným GPIO s jednou knižnicou.
Bohužiaľ sme na to nenašli recept v spoločných meta-vrstvách pre Yocto a musíme si vytvoriť vlastné.
pigpio_git.bb recept
Vytvorenie vlastného receptu pre Yocto nie je také ťažké - ale podrobne to môže byť.
Štandardný postup je, získať zdroj a nechať ho 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
Ale ak "bitbake pigpio", hodí to nejaké chyby, pretože nie sú nakonfigurované žiadne verzované knižnice a umiestnenie súborov manpages nie je spracované správne.
Chyba manpages ####
Najprv sa vyskytne nasledujúca chyba:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Túto chybu môžete opraviť pomocou nasledujúcich nastavení:
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 \
"
chyba bez symlinku
Po oprave chyby s manpages sa objaví ďalšia chyba:
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]
Stáva sa to, pretože neexistujú žiadne knižnice s verziou generované z "CMakeLists.txt". Ak chcete tento problém vyriešiť, pridajte:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd automatické spustenie prasiatko
Na automatické spustenie pigpio démona pridáme nasledujúce:
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"
Nota
Ak potrebujete na vývoj nainštalovať hlavičkové súbory, musíte nainštalovať IMAGE_FEATURES "dev-pkgs"
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Globálna konfigurácia obrazu
Stiahnite si komprimované konfiguračné súbory zostavy z rpi4-build.
Najprv sa pozrite na súbor bblayers.conf. Vo vnútri nájdete potrebné metavrstvy. Stiahnite si metavrstvy, ak ste to ešte neurobili, a upravte svoj súbor bblayers.conf.
Po druhé, pozrite sa na súbor local.conf.
Nastavenia I2C
Ak chcete použiť senzorový čip (napr. snímač teploty) pripojený k I2C, musíte povoliť I2C v súbore local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Odstráňte X11 a Wayland
V procese bitbake je veľa chýb, ak neodstránime X11 a Wayland
V našom prípade - keďže nepotrebujeme viac okien - ich odstránime.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Pre správne používanie eglfs pridávame:
VC4DTBO ?= "vc4-fkms-v3d"
bitbake Malinový obrázok
V súbore "rpi4-64-qt5-gpio-image.bb" definujeme, ktoré balíky potrebujeme v našej linuxovej distribúcii. Tu môžete - ako už bolo spomenuté - zahrnúť IMAGE_FEATURES "dev-pkgs".
Súbor je rozdelený do niekoľkých sekcií, ako napríklad DEV-SDK, EXTRA_TOOLS a podobne, aby sa pridali ľahko potrebné balíky.
Balík pigpio
Tento balík sa dopĺňa pod CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
Qt balíčky
Balíčky potrebné pre Qt sú pridané do skupín balíkov a tieto skupiny balíkov sú pridané tu:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Môžete nájsť "packagegroup-qt5" v súbore "packagegroup-qt5.bb" a pridať alebo odstrániť Qt balíčky.
Stiahnite si meta-vrstvu so zipsom s obrázkom z meta-interelectronix-rpi-qt.
Potom môžete obrázok bitbacovať:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
Ak chcete vyvinúť aplikáciu Qt pre túto vlastnú distribúciu Linuxu, určite chcete mať krížovú kompiláciu nástrojov, aby ste ju pridali do svojej konfigurácie QtCreator.
SDK môžete ľahko vytvoriť pomocou nasledujúceho príkazu bitbake:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Do súboru konfigurácie obrázka máme pridané skupiny balíkov "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug".
Nainštalujte súpravu SDK
Vygenerovanú súpravu SDK nájdete v nasledujúcom adresári:
/tmp/deploy/sdk
V našom prípade má názov "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Tento súbor obsahuje pokyny na nastavenie a všetky potrebné súbory (v komprimovanom formáte).
Skopírujte tento súbor do vývojového počítača a spustite ho:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Podľa pokynov nainštalujte súpravu SDK.</:code16:></:code15:></:code14:>
Licencia na autorské práva
Copyright © 2022 Interelectronix e.K.
Tento zdrojový kód Projectu je licencovaný pod licenciou GPL-3.0.