receita de BitBake do Pigpio
Para este projeto, precisamos ter a biblioteca do Pigpio para ter acesso a I2C, SPI e outros GPIOs com uma biblioteca.
Infelizmente, não encontramos nenhuma receita para ele nas meta-camadas comuns para o Yocto e temos que criar a nossa própria.
pigpio_git.bb recipe
Criar uma receita personalizada para o Yocto não é tão difícil, mas, de forma detalhada, pode ser.
O procedimento padrão é obter a fonte e deixá-la fazer 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
Mas se você fizer "BitBake do Pigpio", ele emite alguns erros, porque não há bibliotecas configuradas nessa versão e a localização dos arquivos de páginas de manual não é tratada corretamente.
manpages error
Primeiro, ocorre o seguinte erro:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Você pode corrigir esse erro com as seguintes configurações:
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 \
"
non-symlink error
Depois de corrigir o erro com as páginas de manual, o próximo erro aparece:
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]
Isso acontece, porque não há bibliotecas com versões geradas a partir de "CMakeLists.txt". Para corrigir isso, adicionamos:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
Para iniciar automaticamente o daemon do Pigpio, adicionamos o seguinte:
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"
Observação:
Se você precisa de arquivos de cabeçalho instalados para desenvolver, é preciso instalar IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Baixe a meta-camada zipada com a receita de meta-interelectronix-rpi.
Configuração da imagem global
Baixe os arquivos de configuração de compilação zipados do rpi4-build.
Primeiro dê uma olhada no arquivo bblayers.conf. Dentro você encontra as meta-camadas necessárias. Baixe as meta-camadas, se você ainda não tiver feito isso e ajuste o seu arquivo bblayers.conf.
Em segundo lugar, dê uma olhada no arquivo local.conf.
I2C settings
Se você quiser usar um chip de sensor (por exemplo, um sensor de temperatura) conectado ao I2C, será preciso habilitar o I2C no arquivo local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Remove X11 and Wayland
Existem muitos erros no processo do BitBake se não removermos X11 e Wayland
No nosso caso, como não precisamos de várias janelas, nós as removemos.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Para usar eglfs corretamente, adicionamos:
VC4DTBO ?= "vc4-fkms-v3d"
imagem de BitBake do Raspberry
No arquivo "rpi4-64-qt5-gpio-image.bb" definimos quais pacotes precisamos na nossa distribuição Linux. Aqui você pode, como mencionamos anteriormente, incluir IMAGE_FEATURES "dev-pkgs".
O arquivo é separado em várias seções, como, por exemplo, DEV-SDK, EXTRA_TOOLS e assim por diante, para adicionar facilmente pacotes necessários.
pigpio package
Este pacote é adicionado em CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
Qt packages
Os pacotes necessários para o Qt são adicionados aos grupos de pacotes e estes grupos de pacotes são adicionados aqui:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Você pode encontrar "packagegroup-qt5" no arquivo "packagegroup-qt5.bb" e adicionar ou excluir pacotes do Qt.
Baixe a meta-camada zipada com a imagem em meta-interelectronix-rpi-qt.
Depois disso, você pode fazer o BitBake da imagem:
bitbake rpi4-64-qt5-gpio-image
SDK de BitBake
Se você deseja desenvolver um aplicativo do Qt para esta distribuição Linux personalizada, será essencial ter ferramentas de compilação cruzada, para adicioná-lo à sua configuração do QtCreator.
Você pode facilmente criar um SDK com o seguinte comando de BitBake:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Temos os grupos de pacotes "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" adicionados ao arquivo de configuração da imagem.
Install SDK
Você encontra o SDK gerado no seguinte diretório:
/tmp/deploy/sdk
No nosso caso, ele se chama "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Este arquivo contém instruções de configuração e todos os arquivos necessários (em um formato compactado).
Copie este arquivo para o seu computador de desenvolvimento e execute-o:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Siga as instruções para instalar o SDK.
Licença de direitos autorais
Copyright © 2022 Interelectronix e.K.
Este código-fonte do Projeto está licenciado sob a licença * * GPL-3.0 * *.