Les solutions de billettique électronique de Kuba accompagnent les utilisateurs des transports en commun dans plus de 500 villes et régions à travers le monde.

Contexte et enjeux
Pour accompagner le développement de ses systèmes de paiement et de validation de titres de transport, KUBA a confié à Openest le développement du BSP Linux de sa nouvelle carte électronique embarquée.
Ce projet ambitieux, basé sur un SoC double cœur Cortex-A55 avec coprocesseur Cortex-M, combinait des défis techniques complexes de sécurisation, d’optimisation et de maintenance long terme.
Découvrez comment Openest a mis en œuvre un environnement Linux sous Yocto, sécurisé, fiable et taillé pour l’industrialisation.
Défis techniques et réponses apportées
Bring-up carte électronique sur mesure
Objectif :La plateforme étant un design spécifique, aucun support prêt-à-l’emploi n’existait.
Nous avons donc réalisé un bring-up complet du matériel, incluant :
- Debug hardware intensif sur les bus RS485, I2C, DDR et interfaces UART
- Intégration des périphériques critiques : écran MIPI-DSI, codec audio, interfaces Ethernet, modem LTE.
- Intégration de drivers propriétaires de prestataires externes sous la formes de modules noyaux
Solutions mises en œuvre :
- Création du BSP sur mesure dans un layer Yocto spécifique tirant parti du BSP fourni par le fabricant du SoC cible
- Définition de l’ensemble des périphériques de la carte dans le device-tree
- Mise en place de tests bas-niveau (devmem2, scripts pour GPIO, RS485, I2C, etc ) pour la validation du hardware.
- Automatisation du build et du flashage via des scripts Shell adaptés.
Sécurisation de la chaîne de démarrage et des données
Objectif :Assurer la protection du système contre toute compromission logicielle.
Cela impliquait :
- Mise en œuvre d’une Secure Boot chain : un mécanisme où chaque logiciel impliqué dans le démarrage est vérifié avant son exécution
- Chiffrement des données sensibles stockées sur eMMC.
Solutions mises en œuvre :
- Secure Boot par chaîne de confiance :
- Signature du bootloader et vérification par la ROM du SoC
- Signature de l’image de Linux et vérification par U-Boot
- Vérification de l’intégrité de la partition de boot avec dm-verity
- Chiffrement des partitions critiques par dm-crypt
- Documentation de la solution et des outils disponibles pour le passage d’audits de sécurité et en vue de l’industrialisation
- Rootfs monté en lecture seule pour éviter toute modification non autorisée et renforcer la résilience du système
- Gestion des partitions et services via systemd
Communication entre Inter-processeur avec RPMSG
Objectif :Assurer une communication fiable et rapide entre le noyau Linux tournant sur Cortex-A55 et un logiciel développé sur mesure sur un cœur Cortex-M.
Solution mise en œuvre :
- Configuration du mécanisme RPMSG (Remote Processor Messaging) pour permettre la communication inter-cœurs directement dans des recettes Yocto
- Validation du fonctionnement et mise à disposition de documentation et d’exemples permettant la prise en main de la solution par l’équipe de développement de Kuba
Mise en place d’un système de mise à jour sécurisé (OTA)
Défi :Le système devait pouvoir être mis à jour de manière sécurisée, sans risque de corruption, et permettre un retour à la version antérieure en cas d’échec.
Solutions mises en œuvre :
- Intégration de RAUC pour la gestion de mises à jour atomiques A/B.
- Système de validation automatique au redémarrage (rollback si nécessaire).
- Signatures et chiffrement des paquets de mise à jour
Résultats techniques obtenus
- Prototype Linux/Yocto sécurisé et fonctionnel avec boot complet
- Chaîne de démarrage sécurisée avec mise en oeuvre des fonctionnalités hardware intégrés au SoC
- Communication inter-processeur Cortex-A55/Cortex-M opérationnelle pour les échanges de commandes.
- Mise en place d’un environnement Yocto documenté et transféré à l’équipe R&D de KUBA.
La transmission de connaissances a été réalisée tout au long du projet par Openest auprès de l’équipe projet de Kuba.
Cette étude de cas illustre la capacité d’Openest à prendre en charge des projets embarqués complexes mêlant carte sur mesure, BSP Yocto, Linux sécurisé, et communication inter-processeur dans un environnement certifié critique.
Le projet repose sur un SoC double cœur ARM Cortex-A55 associé à un coprocesseur Cortex-M plus proche d’un microcontrôleur. Le fabricant exact tu SoC est confidentiel
Secure Boot (TF-A), chiffrement des partitions critiques (dm-crypt) et rootfs monté en lecture seule pour maximiser la résilience.
Grâce à l’intégration de RAUC, le système permet des mises à jour atomiques avec rollback automatique en cas d’échec.