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.
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 :
👉 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.
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.
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 :
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.
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.
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.
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.
L'interface pourrait ressembler à ceci :
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.
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.
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.
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.
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).
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.
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.
Fabien LAHOUDERE, T&S Linux Practice Leader
Martin COUSSERANS, Business manager
Posez vos questions et trouvez des solutions pour le développement de vos produits
Contactez nousL'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 SUITECet 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 SUITEDé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