Article rédigé par : Mohamed BELOUARGA

L'ajout d'une fonctionnalité, la correction d'un bogue ou la correction d'une faille de sécurité font tous partie du cycle de vie d'un logiciel, d'une bibliothèque ou d'un microprogramme. Cependant, pour les architectes et les développeurs, l'exécution de ces tâches comporte toujours des inconvénients techniques et peut entraîner de nombreux résultats indésirables (plus de bogues, annulations, etc.)

Jusqu'à présent, l'industrie, et en particulier l'industrie des systèmes embarqués, continue d'envoyer ses techniciens sur site pour effectuer des mises à jour de leurs produits. Ces procédures prennent du temps, nécessitent une logistique lourde, sont coûteuses et sont donc souvent négligées, ce qui suscite beaucoup de mépris pour les clients et les utilisateurs.

Les mises à jour à distance, également appelées mises à jour Over The Air (OTA), sont plus adaptées aux besoins futurs de la plupart des industriels, des fabricants et de leurs futurs produits.

Dans Linux intégré, les mises à jour OTA sont disponibles

Cet article traite des mises à jour à distance pour les systèmes Linux intégrés.

Les mises à jour OTA permettent d'apporter des modifications logicielles à un système sans entrer en contact physique avec celui-ci. Ces mises à jour peuvent être effectuées à l'aide de plusieurs solutions open source, mais leur mise en œuvre n'est pas toujours simple.

Lorsque les fabricants étudient les options de mise à jour, la première solution qu'ils envisagent est de procéder à la mise à jour par paquet. Cette solution est la moins adaptée aux systèmes embarqués pour plusieurs raisons :

  • Si la mise à jour ne se déroule pas comme prévu, vous ne pouvez pas effectuer d'opération d'annulation.
  • Chaque composant doit être géré en fonction de ses dépendances
  • Conflits de versions : dans un système de bureau, nous pouvons nous permettre d'avoir deux versions de la même bibliothèque, mais ce n'est pas le cas dans un système à mémoire limitée.
  • La validation d'une mise à jour est une tâche très difficile. D'autant plus que les mises à jour sont nombreuses, plus les mises à jour deviennent compliquées et coûteuses. Il faut prévoir le passage de V1 à V2, de V2 à V3, mais aussi de V1 à V3 etc.

 

👉 Les exemples incluent Réparateur, Ostrée, RAUC...

 

Il existe néanmoins d'autres solutions permettant d'éviter tous ces inconvénients, telles que Mise à jour SW, Rendeur, Arbre OST, RAUC, etc.

Chaque solution a sa propre façon de gérer les mises à jour, nous n'en discuterons que Mise à jour SWUpdate de Stefano Babic dans cet article.

#Swupdate est plus un framework que d'autres solutions de bout en bout

Contrairement à la solution de bout en bout Mender, qui comporte ses exigences, ses contraintes et ses limites, SWUpdate peut créer une version personnalisée de Mender, permettant d'ajouter ou de supprimer des fonctionnalités. Création d'une solution de mise à jour qui répondra parfaitement aux besoins du client.

L'inconvénient est que le fichier de mise à jour peut être considérable, ce qui augmentera les prix du réseau. Cependant, ce problème peut également être évité en utilisant des rootfs compressés lors de la mise à jour ou en utilisant delta update. Nous développerons cela plus tard.

Déterminer une stratégie de mise à jour

Avant de mettre en œuvre une solution de mise à jour, une stratégie de mise à jour doit être définie. Cette stratégie respecte la durée de vie d'un produit et est très difficile à modifier.

Voici quelques exemples de stratégies de mises à jour :

Mode double copie

  • Mode double copie consiste à dupliquer des éléments, ce qui implique d'avoir : deux rootfs, deux noyaux, deux DT (arborescence de périphériques), deux environnements de bootloader, etc.

La procédure de mise à jour est la suivante. Pendant que le produit fonctionne avec rootfs1 et kernel1, swupdate met à jour rootfs2 ou kernel2, puis redémarre sur rootfs2 et kernel2.

Si la mise à jour est réussie, le produit reste tel quel. Mais si ce n'est pas le cas (rootfs2 est endommagé ou kernel2 panique), u-boot exécute une opération de restauration vers rootfs1 et kernel1.

SWUpdate linux embedded system update double copy strategy

Stratégie de sauvetage unique

  • Sauvetage unique Stratégie utilise moins d'espace que le mode double copie en utilisant un rootfs et un noyau de secours.

Le noyau de secours est limité aux pilotes nécessaires, et le rootfs de secours est limité aux bibliothèques nécessaires et à swupdate. Les autres rootfs et le noyau sont le firmware de production.

Lorsqu'une mise à jour est prête, l'image redémarre sur l'image de secours et, à partir de l'image de secours, le rootfs et le noyau sont mis à jour. Une fois mise à jour, l'image redémarre sur le noyau de production et rootfs.

Dans tous les cas, si la mise à jour échoue, le noyau de secours et rootfs font office de sauvegardes.

SWUpdate linux embedded systems single rescue update strategy

Comme indiqué précédemment, SWUpdate étant un framework, tout est possible avec lui. Ses seules limites sont l'imagination de ses utilisateurs.

Interface du chargeur de démarrage

SWUpdate doit fonctionner avec le chargeur de démarrage, ce qui signifie que lorsque le périphérique ou le produit doit modifier le rootfs, le chargeur de démarrage modifie la ligne de commande que le noyau reçoit. Rendre cette conjonction vitale pour le système de mise à jour.

Maintenant que nous avons vu les stratégies de mise à jour et l'interface du chargeur de démarrage, voyons les différents outils fournis par SWUpdate pour envoyer une véritable mise à jour.

Mode mangue

L'interface pourrait ressembler à ceci :

SWUpdate mangoose mode screenshot

SWUpdate en mode Mangoose inclut un serveur Web intégré qui nous permet d'envoyer le fichier de mise à jour via une interface Web.

Une fois SWUpdate configuré correctement, cette interface permet à l'utilisateur d'envoyer un fichier de mise à jour (.swu) à la cible. L'interface affiche également des informations telles que l'état des mises à jour et les journaux.

Mode Surricata

SWUpdate en mode Surricata demande les mises à jour à un serveur distant, les extrait et les installe, puis communique les résultats.

Principalement utilisé pour de grandes quantités de cartes, le mode Surricata centralise et surveille les commandes du système de mise à jour. Côté serveur, nous pouvons utiliser Eclipse HawkBit pour surveiller l'état d'un parc de cartes.

Actuellement, seul Eclipse HawkBit est pris en charge mais, grâce à la nature open source de ces solutions, un serveur personnalisé peut être ajouté et servir de solution de contournement.

Eclipse hawkBit used to monitor updates through SWUpdate

Intégrer SWUpdate à vos processus métier

SWUpdate, agissant comme un framework, fournit aux utilisateurs de nombreuses autres fonctionnalités et outils. Par exemple, dans le cas où un utilisateur souhaite saisir une mise à jour du fichier .swu à l'aide d'une autre application. Le fichier peut être envoyé au démon SWUpdate à l'aide de l'outil SWUpdate-Client. De plus, avec SWUpdate-Progress, cette même application peut récupérer les données de progression de la mise à jour, ce qui permet une surveillance externe.

De nombreuses autres fonctionnalités sont disponibles et toutes sont très bien documentées.

Manutentionnaires

Si vous avez un besoin spécifique, par exemple comment installer une certaine mise à jour ou mettre à jour un microcontrôleur lié à la cible, SWUpdate vous permet d'ajouter votre propre gestionnaire.

mises à jour signées

La sécurité reste importante pour SWUpdate. La possibilité d'utiliser HTTPS avec le mode surricata le prouve déjà, mais nous pouvons également signer des fichiers .swu. SWUpdate sera alors en mesure de vérifier que les mises à jour reçues proviennent d'une source autorisée (clé privée/clé publique).

Résoudre le problème de la taille et de la bande passante

👉 Mises à jour compressées

La partie la plus coûteuse d'une procédure de mise à jour est dans la plupart des cas le coût de la bande passante. La mise à jour d'un rootfs pour un grand nombre de cibles nécessite également de grandes quantités de bande passante. Pour résoudre les problèmes et réduire les coûts, SWUpdate vous permet d'utiliser des rootfs compressés.

👉 Mises à jour Delta

Le prix de la bande passante reste élevé même après compression, c'est pourquoi SWUpdate propose une autre solution basée sur les deltas.

Cette solution sera abordée dans un prochain article.

En conclusion, SWUpdate est un framework massif capable de résoudre de nombreuses situations spécifiques. Lorsqu'il est correctement configuré, SWUpdate peut réduire vos coûts de mise à jour tout en simplifiant considérablement la mise à jour des systèmes basés sur Linux pour tous.

 

Si vous souhaitez en savoir plus sur SWUpdate et sur la manière dont il peut aider votre entreprise, vous pouvez contacter :

Fabien LAHOUDERE, responsable de la pratique T&S Linux
Martin COUSSERANS, Directeur commercial

Nous contacter

Partagez :
PARTAGEZ

Nos experts ne sont qu'à un coup de fil !

Faites-nous part de votre situation et nous trouverons ensemble la meilleure solution pour le développement de vos produits.
Nous contacter

Lire plus d'actualités

5/6/25

Introduction au Linux embarqué : des solutions sur mesure pour votre projet

« Découvrez les fondamentaux de Linux embarqué, un système d'exploitation open source, léger et modulable, utilisé dans l'IoT, les objets connectés, les systèmes industriels ou médicaux. Technologie et stratégie vous accompagnent dans vos projets innovants grâce à son expertise technique.

EN SAVOIR PLUS
3/6/25

T&S Success Story : retour sur la carrière de Sébastien Julien chez T&S et Englab

Sébastien Julien a structuré et développé Englab chez T&S, apportant vision stratégique, expérience de terrain et croissance humaine pour faire d'un bureau d'ingénierie un atout clé de l'entreprise.

EN SAVOIR PLUS
15/5/25

L'engagement de Technology & Strategy en faveur du SBTi : une trajectoire climatique ambitieuse à l'horizon 2033

T&S s'engage dans une approche ambitieuse avec SBTi, afin de réduire ses émissions de carbone et d'aligner ses actions sur les objectifs climatiques mondiaux d'ici 2033 avec la participation active de toutes ses entités.

EN SAVOIR PLUS