Logiciel embarqué - Application Autostart Qt une capture d’écran d’un ordinateur

Démarrage automatique de l'application Qt

Yocto et Raspberry Pi 4

Configuration de la couche Méta

Pour la première étape, vous devez définir la configuration de la méta-couche de votre projet Yocto. Nous avons créé 2 métacouches personnalisées et fourni un lien de téléchargement dans le texte qui suit.

Splash screen de la méta-couche

Vous pouvez ajouter une méta-couche pour utiliser un splash screen personnalisé. Comment utiliser cette méta-couche est décrit dans Yocto Raspberry Pi 4 avec splash screen personnalisé.Vous pouvez télécharger le fichier zip de la méta-couche via le navigateur à partir de meta-interelectronix-rpi.zip.

Méta-couche Qt et application de démonstration

Vous pouvez télécharger le fichier zip de la méta-couche via un navigateur à partir de meta-interelectronix-rpi-qt.zip.Cette méta-couche contient des informations de configuration pour inclure Qt et l'application de démonstration Qt. Nous utilisons l'application de démonstration Qt pour le démarrage automatique car elle est disponible dans les recettes Qt.

La couche comprend également les informations d'image « qt5-ix-basic-image », dont nous avons besoin plus tard pour construire le projet avec

bitbake -k qt5-ix-basic-image

Incluez la méta-couche dans bblayers.conf

Vous pouvez maintenant ajouter les calques téléchargés à votre fichier bblayers.conf du projet Yocto. Si vous utilisez la configuration décrite dans Yocto build Raspberry Pi 4 dans un environnement docker, le fichier bblayers.conf devrait ressembler à :

BBLAYERS ?= " \
  /workdir/poky-honister/meta \
  /workdir/poky-honister/meta-poky \
  /workdir/poky-honister/meta-yocto-bsp \
  /workdir/poky-honister/meta-openembedded/meta-oe \
  /workdir/poky-honister/meta-openembedded/meta-multimedia \
  /workdir/poky-honister/meta-openembedded/meta-networking \
  /workdir/poky-honister/meta-openembedded/meta-perl \
  /workdir/poky-honister/meta-openembedded/meta-python \
  /workdir/poky-honister/meta-raspberrypi \
  /workdir/poky-honister/meta-security \ 
  /workdir/poky-honister/meta-qt5 \
  /workdir/rpi-build/meta-interelectronix-rpi \
  /workdir/rpi-build/meta-interelectronix-rpi-qt \
  "

Si vous utilisez votre propre projet, vous devez ajuster les chemins de fichiers en fonction de vos besoins.

Configuration Qt de démarrage automatique

Pour démarrer automatiquement l'application de démonstration Qt, nous utilisons systemd et installons un service. Tous les fichiers nécessaires et les fichiers de configuration sont inclus dans le fichier meta-interelectronix-rpi-qt.zip téléchargé ci-dessus.

qt_demo_start.service

Les fichiers nécessaires sont stockés dans le répertoire « meta-interelectronix-rpi-qt/recipes-ext/systemd/... ».

local.conf

Vous devez activer systemd dans le fichier local.conf de votre projet Yocto.

Yocto local.conf

Vous devez, au moins, ajuster votre fichier de configuration local.conf de votre projet. Téléchargez bblayers.conf et local.conf à partir derpi4-build.zip et utilisez-les tels quels ou inspectez-les et copiez les sections nécessaires dans votre projet.

systemd

Pour activer systemd, les lignes suivantes doivent être ajoutées à votre fichier local.conf :

## systemd settings
DISTRO_FEATURES:append = " security systemd usbhost ${DISTRO_FEATURES_LIBC}"

INIT_MANAGER = "systemd"

VIRTUAL-RUNTIME:init_manager = "systemd"
VIRTUAL-RUNTIME:initscripts = "systemd-compat-units"

Informations sur la licence Qt

Veuillez faire attention si vous utilisez Qt dans un projet commercial. Les contrats de licence de Qt ne sont pas faciles à comprendre et à utiliser. Vous trouverez quelques réflexions et idées critiques dans le blog Yocto/Qt5: hello-qt part2 - Licensing de Robert Berger.

Suggestions ou erreurs

Si vous avez des suggestions d'améliorations ou si vous trouvez des erreurs, n'hésitez pas à utiliser le formulaire de contact à la fin de cette page et à nous les communiquer.

Licence de copyright

Copyright © 2022 Interelectronix e.K.
Le code source de ce projet est sous licence GPL-3.0.