Embedded Software Raspberry Pi - Yocto - Malina - PIGPIO - Qt screenshot počítačového programu

Yocto - Malina - PIGPIO - Qt

Linux s pigpio knihovnou a Qt toolchainem

Bitbake recept Pigpio

Vytvořit recept na knihovnu pigpio

Pro tento projekt potřebujeme mít knihovnu pigpio, abychom měli přístup k I2C, SPI a dalším GPIO s jednou knihovnou.

Bohužel jsme na to nenašli žádný recept ve společných metavrstvách pro Yocto a musíme vytvořit vlastní.

pigpio_git.bb recept

Vytvoření vlastního receptu pro Yocto není tak obtížné - ale podrobně to může být.

Standardní postup je, získat zdroj a nechat 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 pokud "bitbake pigpio", vyvolá to nějaké chyby, protože nejsou nakonfigurovány žádné knihovny s verzemi a umístění souborů manpages není zpracováno správně.

chyba manuálových stránek

Nejprve dojde k následující chybě:

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

Tuto chybu můžete opravit pomocí následujících 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 symbolických odkazů

Po opravě chyby s manuálovými stránkami se objeví další 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]

K tomu dochází, protože neexistují žádné knihovny s verzemi generované z "CMakeLists.txt". Chcete-li tento problém vyřešit, přidáme:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemd autostart pigpiod

Chcete-li automaticky spustit démona pigpio, přidáme následující:

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"

Poznámka

Pokud potřebujete nainstalovat hlavičkové soubory pro vývoj, musíte nainstalovat IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Stáhněte si komprimovanou metavrstvu s receptem z meta-interelectronix-rpi.

Globální konfigurace image

Nastavení souboru local.conf

Stáhněte si komprimované konfigurační soubory sestavení z rpi4-build.

Nejprve se podívejte na soubor bblayers.conf. Uvnitř najdete potřebné meta-vrstvy. Stáhněte si meta-vrstvy, pokud jste to ještě neudělali, a upravte soubor bblayers.conf.

Za druhé se podívejte na soubor local.conf.

Nastavení I2C

Pokud chcete použít senzorový čip (např. teplotní senzor) spojený s I2C, musíte povolit I2C v souboru local.conf.

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

Odstraňte X11 a Wayland

V procesu bitbake je mnoho chyb, pokud neodstraníme X11 a Wayland

V našem případě - protože nepotřebujeme více oken - je odstraníme.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Pro správné používání eglfs přidáme:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Malina obrázek

Vytvořit konfigurační soubor bitové kopie

V souboru "rpi4-64-qt5-gpio-image.bb" definujeme, které balíčky potřebujeme v naší linuxové distribuci. Zde můžete - jak již bylo zmíněno - zahrnout IMAGE_FEATURES "dev-pkgs".

Soubor je rozdělen do několika sekcí, jako je například DEV-SDK, EXTRA_TOOLS a tak dále, aby se přidaly snadno potřebné balíčky.

pigpio balíček

Tento balíček je přidán pod CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Qt balíčky

Balíky potřebné pro Qt se přidávají do skupin balíčků a tyto skupiny balíčků se přidávají zde:

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

V souboru "packagegroup-qt5.bb" můžete najít "packagegroup-qt5" a přidat nebo odstranit balíčky Qt.

Stáhněte si zazipovanou metavrstvu s obrázkem z meta-interelectronix-rpi-qt.

Poté můžete obrázek bitbake:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Vytvoření sady SDK toolchain

Pokud chcete vyvinout Qt aplikaci pro tuto vlastní distribuci Linuxu, určitě budete chtít mít křížovou kompilaci toolchain, abyste ji mohli přidat do konfigurace QtCreator.

SDK můžete snadno vytvořit pomocí následujícího příkazu bitbake:

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

Do konfiguračního souboru image jsme přidali skupiny balíčků "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug".

Instalace sady SDK

Vygenerovanou sadu SDK najdete v následujícím adresáři:

/tmp/deploy/sdk

V našem případě se jmenuje "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

Tento soubor obsahuje pokyny k instalaci a všechny potřebné soubory (v komprimovaném formátu).

Zkopírujte tento soubor do vývojového počítače a spusťte ho:

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

Podle pokynů nainstalujte sadu SDK.</:code16:></:code15:></:code14:>

Licence na autorská práva

Autorská práva © 2022 Interelectronix e.K.
Tento zdrojový kód projektu je licencován pod licencí GPL-3.0.