Zabudovaný softvér Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt snímka obrazovky počítačového programu

Yocto - Malina - PIGPIO - Qt

Linux s knižnicou pigpio a Qt toolchain

Bitbake recept pigpio

Vytvorte recept na knižnicu 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"
Stiahnite si meta-vrstvu na zips s receptom z meta-interelectronix-rpi.

Globálna konfigurácia obrazu

Nastavenia local.conf

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

Vytvorenie konfiguračného súboru obrázka

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

Vytvorenie reťazca nástrojov 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.