recette bitbake pigpio
Pour ce projet, nous avons besoin de la bibliothèque pigpio pour avoir accès à I2C, SPI et autres GPIO avec une seule bibliothèque.
Malheureusement, nous n'avons trouvé aucune recette pour cela dans les méta-couches communes pour Yocto et nous devons créer la nôtre.
pigpio_git.bb recette
Créer une recette personnalisée pour Yocto n'est pas si difficile - mais dans le détail, cela peut l'être.
La procédure standard consiste à obtenir la source et la laisser mijoter dans 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
Mais si vous utilisez pigpio dans bitbake, cela génère quelques erreurs, parce qu'il n'y a pas de bibliothèques versionnées configurées et l'emplacement des fichiers de pages de manuel ne sont pas gérés correctement.
manpages error
D'abord, l'erreur suivante se produit :
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Vous pouvez corriger cette erreur avec les paramètres suivants :
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
Après avoir corrigé l'erreur avec les pages de manuel, l'erreur suivante apparaît :
<: code4:>
Ceci se produit car il n'y a pas de bibliothèques versionnées générées à partir de "CMakeLists.txt". Pour y remédier, nous ajoutons :
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
systemd autostart pigpiod
Pour démarrer automatiquement le démon pigpio, nous ajoutons ce qui suit :
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"
Remarque
Si vous avez besoin que des fichiers d'en-tête soient installés pour le développement, vous devez installer IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Téléchargez la méta-couche zippée avec la recette de meta-interelectronix-rpi.
Configuration d'image globale
Téléchargez les fichiers de configuration de la construction zippés à partir de rpi4-build.Jetez d'abord un coup d'œil au fichier bblayers.conf. À l'intérieur, vous trouverez les méta-couches nécessaires. Téléchargez les méta-couches, si vous ne l'avez pas déjà fait et ajustez votre fichier bblayers.conf.
Ensuite, jetez un œil au fichier local.conf.
I2C settings
Si vous souhaitez utiliser une puce de capteur (par exemple, un capteur de température) connectée à I2C, vous devez activer I2C dans le fichier local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Remove X11 and Wayland
Beaucoup d'erreurs subsistent dans le processus bitbake si nous ne supprimons pas X11 et Wayland
Dans notre cas - comme nous n'avons pas besoin de plusieurs fenêtres - nous les supprimons.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Pour utiliser eglfs correctement, nous ajoutons :
VC4DTBO ?= "vc4-fkms-v3d"
image Raspberry bitbake
Dans le fichier "rpi4-64-qt5-gpio-image.bb" nous définissons de quels paquets nous avons besoin dans notre distribution linux. Ici, vous pouvez - comme mentionné précédemment - inclure l'IMAGE_FEATURES "dev-pkgs".
Le fichier est séparé en plusieurs sections comme par exemple DEV-SDK, EXTRA_TOOLS et ainsi de suite, pour ajouter facilement des paquets nécessaires.
pigpio package
Ce paquet est ajouté sous CUSTOM_STUFF :
CUSTOM_STUFF = " \
pigpio \
"
Qt packages
Les paquets nécessaires pour Qt sont ajoutés dans les groupes de paquets et ces groupes de paquets sont ajoutés ici :
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Vous pouvez trouver "packagegroup-qt5" dans le fichier "packagegroup-qt5.bb" et ajouter ou supprimer des paquets Qt.
Téléchargez la méta-couche zippée avec l'image de meta-interelectronix-rpi-qt.Après cela, vous pouvez passer l'image dans bitbake :
bitbake rpi4-64-qt5-gpio-image
SDK bitbake
Si vous voulez développer une application Qt pour cette distribution Linux personnalisée, vous voulez sûrement avoir cross compile toolchain, pour l'ajouter à votre configuration QtCreator.
Vous pouvez facilement créer un SDK avec la commande bitbake suivante :
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Les groupes de paquets "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" ont été ajoutés au fichier de configuration d'image.
Install SDK
Vous trouverez le SDK généré dans le répertoire suivant :
/tmp/deploy/sdk
Dans notre cas, il s'appelle "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Ce fichier contient les instructions d'installation et tous les fichiers nécessaires (dans un format compressé).
Copiez ce fichier sur votre ordinateur de développement et exécutez-le :
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Suivez les instructions pour installer le SDK.
Licence de copyright
Copyright © 2022 Interelectronix e.K.
Le code source de ce projet est sous licence GPL-3.0.