Article par : Mohamed BELOUARGA

L'ajout d'une fonctionnalité, la correction d'un bogue ou 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 présente toujours des inconvénients techniques et une série de résultats indésirables possibles (davantage de bogues, de retours en arrière, etc.).

Jusqu'à présent, l'industrie, et en particulier l'industrie des systèmes embarqués, continue à envoyer ses techniciens sur place pour effectuer des mises à jour sur ses 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 de la part des clients et des utilisateurs.   

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

Dans les systèmes Linux embarqués, des mises à jour OTA sont disponibles.

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

Les mises à jour OTA permettent d'apporter des modifications logicielles à un système sans 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 examinent les options de mise à jour, la première solution qu'ils envisagent est la mise à jour par paquets. 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 de retour en arrière.
  • Chaque composant doit être géré en fonction de ses dépendances
  • Conflits de versions : Dans un système de bureau, on peut se 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 plus il y a de mises à jour, plus la mise à jour devient compliquée et coûteuse. Il faut prévoir le passage de V1 à V2, de V2 à V3, mais aussi de V1 à V3 etc.

 

👉 Exemples : Mender, Ostree, RAUC...

 

Néanmoins, il existe d'autres solutions qui permettent d'éviter tous ces inconvénients, comme SWUpdate, Mender, OsTree, RAUC, etc.

Chaque solution a sa propre façon de gérer les mises à jour, nous ne parlerons que de SWUpdate de Stefano Babic dans cet article.

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

Contrairement à la solution de bout en bout Mender, qui vient avec ses exigences, ses contraintes et ses limitations, SWUpdate peut créer une version personnalisée de Mender, en ajoutant ou en supprimant des fonctionnalités. Créer une solution de mise à jour qui correspondra 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 la mise à jour delta. Nous développerons ce point ultérieurement.

Déterminer une stratégie de mise à jour

Avant de mettre en place une solution de mise à jour, il faut définir une stratégie de mise à jour. Cette stratégie est conforme à la durée de vie d'un produit et est très difficile à modifier.

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

Mode double copie

  • Le mode double copie consiste à dupliquer des éléments, ce qui implique d'avoir : deux rootfs, deux noyaux, deux DT (device tree), deux environnements bootloader, etc.

La procédure de mise à jour se déroule comme suit. Pendant que le produit fonctionne avec rootfs1 et kernel1, swupdate met à jour rootfs2 ou kernel2 et redémarre ensuite 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 corrompu ou kernel2 panique), l'u-boot exécute une opération de retour en arrière vers rootfs1 et kernel1.

SWUpdate mise à jour du système embarqué linux stratégie de double copie

Stratégie de sauvetage unique

  • La stratégie de secours unique utilise moins d'espace que le mode de copie double en travaillant avec 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. L'autre rootfs et l'autre 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 cette dernière, le rootfs et le noyau sont mis à jour. Une fois la mise à jour effectuée, l'image redémarre sur le noyau et le rootfs de production.

Dans tous les cas, si la mise à jour échoue, le noyau de secours et le rootfs servent de sauvegarde.

SWUpdate linux systèmes embarqués stratégie de mise à jour de secours unique

Comme nous l'avons vu précédemment, SWUpdate étant un cadre de travail, 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 l'appareil ou le produit doit modifier le rootfs, le chargeur de démarrage modifie la ligne de commande que le noyau reçoit. Cette conjonction est vitale pour le système de mise à jour.

Maintenant que nous avons vu les stratégies de mise à jour et l'interface du bootloader, voyons les différents outils que SWUpdate fournit pour envoyer une mise à jour réelle. 

Mode mangouste

L'interface pourrait ressembler à ceci :

Capture d'écran du mode mangouste de SWUpdate

SWUpdate en mode Mangoose comprend un serveur web intégré qui nous permet d'envoyer le fichier de mise à jour par le biais d'une interface web.

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

Mode Surricata

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

Principalement utilisé pour les grandes quantités de cartes, le mode Surricata centralise et surveille les contrôles du système de mise à jour. Côté serveur, on peut 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 utilisé pour surveiller les mises à jour via SWUpdate

Faire de SWupdate une partie intégrante de vos processus d'entreprise

SWUpdate, qui agit comme un cadre, offre aux utilisateurs de nombreuses autres fonctions et outils. Par exemple, dans la situation où un utilisateur voudrait entrer une mise à jour .swu en utilisant une autre application. Le fichier peut être envoyé au démon SWUpdate à l'aide de l'outil SWUpdate-client. En outre, avec SWUpdate-progress, cette même application peut récupérer les données relatives à la progression de la mise à jour, ce qui permet un contrôle externe.

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

Manipulateurs

Si vous avez un besoin spécifique, tel que l'installation d'une certaine mise à jour ou la mise à jour d'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 capacité d'utiliser HTTPS avec le mode surricata le montre déjà mais nous pouvons aussi signer les 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 largeur de bande

👉 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 une grande quantité de bande passante. Pour résoudre ce problème et réduire les coûts, SWUpdate vous permet d'utiliser des rootfs compressés.

👉 Mises à jour de 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 examinée dans un prochain article.

En conclusion, SWUpdate est un cadre massif capable de résoudre de nombreuses situations spécifiques. Bien configuré, SWUpdate peut réduire vos coûts de mise à jour tout en rendant la mise à jour des systèmes basés sur Linux beaucoup plus simple 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, T&S Linux Practice Leader
Martin COUSSERANS, Business manager

Contactez nous

Partager

Nos experts sont à votre disposition sur simple appel téléphonique !

Posez vos questions et trouvez des solutions pour le développement de vos produits

Contactez nous

Plus d'actualités

7/5/24

Employés boomerang : Une tendance à la hausse ?

L'article traite de la tendance croissante des "employés boomerang" qui quittent une entreprise pour y revenir plus tard. Il examine s'il s'agit d'une mode passagère ou d'une tendance profonde, et comment les entreprises peuvent en tirer parti. En France, le nombre d'employés boomerang a augmenté de 36 % en trois ans. Ce phénomène correspond à l'évolution des aspirations des salariés en matière d'équilibre entre vie professionnelle et vie privée. Les employés boomerang apportent une expérience précieuse, une connaissance approfondie de l'entreprise et une motivation accrue. Des entreprises comme Technology&Strategy s'adaptent à cette tendance en favorisant une marque d'employeur forte et un environnement de travail positif. L'article inclut les points de vue des employés de T&S et de Cheima Hammi, responsable des ressources humaines en France, sur les avantages et les motivations de la tendance boomerang.

LIRE LA SUITE
2/5/24

T&S Success Story: Indiana, l'exemple d'une évolution professionnelle réussie chez T&S

Cet article détaille le parcours d'Indiana sur le site T&S, en soulignant l'investissement de l'entreprise dans le développement des employés et les opportunités de mobilité interne. Découvrez comment Indiana a mis à profit ses compétences pour passer du statut d'assistante administrative à celui de HR Business Partner & Team Leader.

LIRE LA SUITE
19/3/24

Du stagiaire à l'employé : l'histoire de la réussite de Sophie chez Technology & Strategy

Découvrez le parcours remarquable de Sophie chez T&S: d'un stage de 6 mois à un poste permanent au sein du département Employee Experience. Découvrez sa persévérance, sa capacité d'adaptation et la manière dont elle a surmonté les obstacles pour parvenir à la réussite professionnelle.

LIRE LA SUITE