Bitbake recept 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"
Globální konfigurace image
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
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
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.