Formation
STM32MP13x
Réf : PHYTEC-5181
- Durée : 4 jours
- Sessions : intra-entreprise
- Plates-formes: Kit STM32MP13
- 4ème journée au choix : 2 options possibles
Cette formation STM32MP13x est réalisée sur la base de la distribution OpenSTLinux 6.6 Yocto Scarthgap, du BSP-Yocto-OpenSTLinux-STM32MP13x-PD25.1.0, Linux kernel v6.6.
Les travaux pratiques de la formation STM32MP13x sont réalisés sur les Kits Phytec phyBOARDSegin
avec SOM phyCORE-STM32MP13x.
• Maîtriser l’installation et l'utilisation de l’environnement Yocto OpenSTLinux
• Maîtriser les commandes usuelles Bitbake
• Gérer la configuration de build Yocto OpenSTLinux
• Ajouter et mettre en oeuvre ses propres layers Yocto
• Configurer et adapter le noyau linux à sa plate-forme STM32MP135
• Customisez et construire son image OpenSTLinux sous Yocto
• Générer ses propres devicetree à l’aide de STM32CubeMX pour sa plateforme à base de SOM phyCORE-STM32MP13x
• Développer et mettre au point des applications Linux Arm Cortex-A7 avec le SDK Yocto STM32MP1 et l’IDE STM32CubeIDE
Le stage de formation STM32MP13x est proposé sur 4 jours dont la quatrième journée peut être dédiée aux clients qui souhaiteraient aborder les problématiques suivantes :
• Mettre en oeuvre une solution Secure Boot pour Système-On-Module phyCORE-STM32MP135
• Le Développement et la mise au point d’applications graphiques utilisant le Framework Qt6 et Qt Quick 2D Renderer
Le contenu de la formation STM32MP13x peut être également adapté aux besoins clients, en renforçant certains points techniques de manière à mieux couvrir les attentes des stagiaires à l’issue de ce stage.
Notre formation Yocto BSP pour processeurs STM32MP1 est adaptée aux développeurs en informatique et techniciens dans le domaine de Linux embarqué confrontés aux problèmes de portage d’applications sur Système-On-Module phyCORE-STM32MP13x sous Yocto, en exploitant les mécanismes de sécurité du Cortex-A7.
Présentation de Linux pour plateforme STM32MP13x
• Architecture OS Linux
- Arm Trusted Firmware
- u-boot
- Linux kernel + Devicetree
- Rootfs muti-partionning
• Distribution OpenSTLinux packaging
Projet Yocto
• Présentation du projet Yocto
• OpenEmbedded Core et poky
• Notion de Layers et de Recettes
• Les utilitaires GIT et repo : installation des sources Yocto OpenSTLinux
• Rôle de l’outil de construction bitbake
Le BSP Yocto OpenSTLinux
• Les layers spécifiques OpenSTLinux
• Les layers spécifiques Phytec BSP
• Notions de MACHINE et de DISTRO
• Fichier local.conf et réglages globaux d’un projet de Build Yocto
• Les images applicatives proposées
Environnement Yocto OpenSTLinux
• Recettes Yocto et syntaxe Bitbake
• Méthodologie de customisation de recettes Yocto : fichiers bbappend et priorités de Layers
• Recette minimale de construction de paquetage
• Notion de packagegroup
• Gestion des dépendances : notions de OVERRIDES et de FEATURES
Travaux pratiques
• Écriture et ajout de son propre layer à la compilation du système Linux embarqué Yocto pour MACHINE STM32MP13x
• Mise en oeuvre d’une configuration de BSP avec gestion des OVERRIDES et des FEATURES
• Analyse d’exemples de packagegroup de la distribution OpenSTLinux
• Configuration de la distribution et de l’image à générer pour une machine spécifique STM32MP13x
• Génération d’une image Linux pour kit Phytec Segin STM32MP13x
Phytec BSP-Yocto-OpenSTLinux-STM32MP13x
• Présentation du Noyau Linux
- Sources
- Boot Sequence
- Licence GPL et code driver propriétaire
• Choix des périphériques supportés sous Linux
- Driver Linux et Kconfig
- Devicetree STM32MP1 : structure et syntaxe
- Mécanismes de devicetree Binding
- Recette Yocto spécifique à la construction du Linux Kernel
• Customisations matérielles de la plateforme à base de SOM phyCORE-STM32MP13x à l’aide du devicetree
- Structure et syntaxe des devicetree sous Linux
- API Kernel devicetree
- Architecture et fichiers devicetree pour phyCORE-STM32MP13x
- Pin Muxing STM32MP2
- Devicetree Overlay
Travaux pratiques
• Ajout de son propre Layer Yocto BSP et création de sa propre machine à base de SOM phyCORESTM32MP13x
• Configuration du noyau Linux pour plateforme STM32MP13x avec l’environnement Yocto devtool
• Mise en oeuvre d’un patch noyau avec l’utilitaire Git sous Yocto
• Customisation du devicetree et du Pin Muxing su System-On-Module phyCORE-STM32MP13x à l’aide de STM32CubeMX
• Génération d’un noyau Linux et de devicetree custom pour kits Phytec Segin STM32MP13x
Customisation d’une Image Yocto openSTLinux
• Ajout d’étapes de construction Bitbake
• Méthodes de débogage de recette
• Notion de classes
Travaux pratiques
• Génération et déploiement d’un SDK Yocto complet
• Mise en oeuvre du SDK Yocto sous IDE STM32CubeIDE : configuration, compilation et débogage sur kit Phytec
Segin STM32MP13x
Customisation du File System
• Notion de FILESEXTRAPATHS
• Notion de système de fichiers et points de montage
• Les fichiers de configurations Linux (service, network, udev…)
• Notion de services Systemd :
- Présentation
- Syntaxe de déclaration d’un service systemd
- Installation d’un service systemd
- Support Systemd avec Yocto
• Notion d’utilisateurs et de droits sur le système de fichiers, read-only-rootfs
• Packages management : mises à jour unitaires de composants logiciels dans l’image Linux Yocto
• Partitionnement de la mémoire flash (SPI, NAND, SD-CARD/eMMC)
Travaux pratiques
• Écriture d’une recette simple Yocto pour l’ajout d’une librairie propriétaire/externe à l’image finale de l’OS Linux et au SDK associé.
• Écriture d’une recette simple Yocto pour l’intégration de votre application à l’image filesystem finale.
• Ajout de fichiers de configuration à une recette pour installation dans l’image Linux générée par Yocto
• Écriture d’une recette d’installation d’un utilisateur Linux appartenant au groupe sudoers dans l’image Linux générée par Yocto
• Écriture d’une recette d’installation d’un service systemd dans l’image Linux générée par Yocto
Option 1 : Secure Boot sur SOM phyCORE-STM32MP13x
Mise en oeuvre de la solution Secure Boot du BSP-Yocto-OpenSTLinux-STM32MP13x-PD25.1.0 Phytec
• Context Cortex-A Secure et Non-Secure
• Basic boot chain et trusted boot chain
• Trusted Firmware et Trusted Devices
• Notion de Trusted Application et de secure Monitor
• Crypto support et Signed Bootloader
Travaux pratiques
• Importation et gestion d’un projet Yocto OpenSTLinux sous environnement IDE STM32CubeIDE
• Mise en oeuvre de Trusted device et limitations STM32MP13x
Support de mises à jour Rauc sur plateforme Secure Boot avec le BSP-Yocto-OpenSTLinux-STM32MP13x-PD25.1.0 Phytec
• Configuration de mises à jour redondantes sur plateforme phyCORE-STM32MP13x : notion de machine et de révision
• Variables d’environnement et script u-boot spécifique Rauc
• Partitionnement Flash eMMC pour mises à jour redondantes
• Bundles : Image RAUC
• Gestion de la signature/cryptage des bundles RAUC
• Services de mise à jour automatisée : USB updater et hawkbit updater
Travaux Pratiques
• Mise en oeuvre du support Rauc sur STM32MP13x sous Yocto
• Création et installation d'un bundle Rauc signé
• Mise en oeuvre d'un client et d’une configuration serveur Hawkbit de gestion déploiement de mises à jour de parc de machines à
base de SOM phyCORE-STM32MP13x
Option 2 : Introduction au développement Qt6 QML sur plateforme STM32MP13x
Intégration Qt6 dans la distribution OpenSTLinux Eglfs
• Layer Yocto meta-qt6
- classe qt6-qmake et projet.pro
- classe qt6-qmake et projet CMake
- Variables environnement QT6
• Configuration spécifique support Qt Quick 2D Renderer sur STM32MP135F
• Image st-image-eglfs
• Génération du SDK Yocto Qt6
Travaux Pratiques
• Installation du SDK Yocto Qt 6 sur poste de développement
• Paramétrage du Kit de déploiement sous IDE QtCreator pour cible phyBOARD-Segin STM32MP135 sous Yocto
• Débogage distant sur cible Phytec phyBOARD-Segin STM32MP135F sous QtCreator
Introduction à QtQuick 2 Toolkit
• Éléments graphiques
• Élément texte
• Layout « ancrage »
• Bindings
• Handlers
Interaction avec l'utilisateur
• Interaction à la souris
• Interaction tactile
Travaux pratiques
• Prise en main du Toolkit QML sous environnement Qt Creator
• Premières applications QML tactiles sur cible Phytec phyBOARD-Segin STM32MP13x
• Écriture d’une recette Yocto de construction d’une application Qt6 QML avec installation d’un service systemd au démarrage du
système Linux,spécifique à l’environnement graphique eglfs sur cible Phytec phyBOARD-Segin STM32MP13x