Recompiler un noyau Linux embarqué

Recompiler un noyau Linux embarqué

Dans l’embarqué, le besoin de recompiler un noyau Linux est relativement courant ; pour autant, cette opération est complexe et doit être confiée à des spécialistes.
Dans cet article, nous allons commencer par donner une estimation de la part de marché de Linux dans le monde de l’embarqué. Nous présenterons ensuite les 3 niveaux d’intervention possibles dans le domaine du logiciel embarqué. Après être revenu sur la notion de noyau, nous expliquerons alors pourquoi il est parfois nécessaire de recompiler celui d’un Linux embarqué et donnerons un exemple. Enfin, nous conclurons en présentant les missions et les points forts de l’ADVANS Linux Embassy, le pôle d’expertise en noyau Linux d’ADVANS Group et de sa société spécialisée dans les systèmes embarqués ELSYS Design.

Linux embarqué : un poids croissant dans l’industrie

Depuis le début des années 90, Aspencore mène une étude du marché international des systèmes embarqués. Dans son édition 2017, elle estime à 67% le nombre des projets dans le domaine de l’embarqué qui utilisent un OS / RTOS. Les projets utilisant un OS open source représentent quant à eux 41% (en croissance continue depuis 2012), et 22% ceux utilisant un Linux embarqué.
Ainsi, plus d’1 projet sur 5 dans le monde de l’embarqué utilise un Linux embarqué.

Linux embarqué : les 3 niveaux d’intervention

Espace utilisateur

Quand on est ingénieur logiciel embarqué, on peut en premier lieu intervenir au niveau de l’espace utilisateur (user space en anglais), par exemple pour développer des applications qui tournent sur un Linux embarqué. Pour ce faire, il suffit de savoir coder en C et d’être en mesure d’utiliser les outils de compilation associés.

Pilotes

En deuxième lieu, si on veut insérer des composants qui vont communiquer avec le noyau, on va avoir besoin de développer des pilotes (drivers en anglais). Outre les compétences en développement logiciel, il faut posséder des connaissances spécifiques en systèmes d’exploitation embarqués ainsi que dans le domaine du hardware.

Noyau

En troisième lieu, on peut être amené à intervenir au niveau du noyau, on parle aussi de recompilation du kernel.

Pour rappel, au sein d’un système d’exploitation, le noyau (kernel en anglais) est la couche logicielle optimisée chargée d’assurer la communication entre le hardware et le software. Cela inclut la gestion des tâches logicielles (ex : lancement des programmes, ordonnancement) ainsi que la gestion du matériel (mémoire(s), processeur(s), périphérique(s) etc.).

Pourquoi recompiler un noyau Linux embarqué ?

Les systèmes embarqués ont, de par leur nature, des ressources limitées que l’on va en permanence chercher à optimiser afin d’obtenir les meilleures performances possibles. Ce besoin est encore plus exacerbé pour les systèmes embarqués temps-réel, dont certaines tâches doivent être réalisées strictement dans le temps imparti, sous peine de générer des conséquences qui peuvent être critiques voire mortelles.
Cela implique donc de toucher au noyau, une opération toujours délicate, même pour des spécialistes.

Recompilation d’un noyau Linux : exemple

Imaginons que le client d’ELSYS Design prépare la nouvelle version de son objet connecté. Ce dernier est basé sur une carte électronique du fabricant F intégrant la version L.x du kernel Linux. Cette dernière version est datée et ne satisfait plus à ses dernières exigences. Le client d’ELSYS Design lui demande donc de développer un nouveau driver basé sur la version L.x+2 du kernel, le tout en assurant la rétrocompatibilité avec le driver existant et en offrant de nouvelles fonctionnalités (ex : la gestion de l’énergie / power management).

Pour leurs développements, les ingénieurs Linux embarqué d’ELSYS Design vont donc devoir intervenir à différents niveaux en prenant en compte :

  • Le changement d’API (le code source de l’application) entre les versions L.x et L.x+2.
    Une mise à jour du code sera nécessaire, en s’assurant que le nouveau noyau Linux pourra la supporter.
  • Les développements propriétaires / publics du fabricant F ;
  • Les développements du client d’ELSYS Design pour la précédente version de son objet connecté ;
  • Une fois cet « existant » pris en compte, les ingénieurs logiciel d’ELSYS Design devront développer les nouvelles fonctionnalités de power management (ex : mettre le CPU en état Low-Power, etc.) et les intégrer au nouveau backlog (le logiciel qui devra être livré au client).
  • Enfin, en accord avec le client, ils pourront proposer le nouveau driver à la communauté Linux afin qu’il soit intégré à la prochaine release du kernel et qu’ils en assurent la compatibilité ascendante.

 

Un Expert Linux embarqué d’ELSYS Design résume ainsi la situation : « La problématique globale, c’est le portage et la maintenabilité d’une version de Linux à une autre. Le tout en tenant compte des besoins des différents intervenants, et de leur volonté de partager les développements en partie ou complètement avec la communauté Linux. »

Ainsi, nous avons vu que Linux est de plus en plus utilisé comme système d’exploitation embarqué.
Cependant, il apparaît que ce système d’exploitation est complexe, développé de manière atypique par une communauté très active et que, s’il est relativement aisé de développer une connaissance du développement au niveau de l’espace utilisateur, la connaissance des mécanismes du noyau et le développement de drivers pour ce système d’exploitation nécessite des compétences très spécifiques que beaucoup d’entreprises ont du mal à trouver.

Fort de ce constat et avec la volonté d’amener toujours plus de valeur à ses clients, ADVANS Group, la maison mère d’ELSYS Design, a décidé de développer un pôle d’expertise sur les systèmes embarqués Linux dans le monde de l’embarqué en créant l’équipe ALE (ADVANS Linux Embassy).

A propos de l’ADVANS Linux Embassy

L’équipe ALE est composée d’experts passionnés basés dans les locaux d’ADVANS Group. Ses missions sont à la fois internes et externes :

  • Centraliser et développer la compétence du groupe sur Linux : veille technologique, formations internes, support aux projets et aux réponses à appel d’offres, retours d’expérience, supervision de projets internes et de stages.
  • Contribuer à la communauté Linux.
  • Accompagner les clients d’ADVANS Group : formations et sensibilisation, preuves de concept, support et conseil, études de faisabilité, aide au débogage.

 

Sous l’autorité de la direction technique d’ELSYS Design, l’équipe ALE est pleinement intégrée dans l’offre globale d’ADVANS Group. Elle a la capacité d’intervenir non seulement en conception/développement mais aussi en support/expertise/formation.

Points forts de l’ADVANS Linux Embassy

Empreinte technique

Grâce à l’équipe ALE, ADVANS Group est en mesure de proposer une expertise forte sur Linux.
Néanmoins, la maîtrise du logiciel embarqué nécessite également de pouvoir adresser des sujets concernant les interfaces Matériel/Logiciel, les architectures de processeurs, les protocoles réseaux, la gestion temps-réel, le fonctionnement des applicatifs, la cybersécurité et de nombreux autres sujets.
L’expertise d’ADVANS Group porte sur l’ensemble du développement de systèmes et solutions digitales et permet ainsi de couvrir l’intégralité des sujets-clés.

Capacité, empreinte géographique et organisation

ADVANS Group dispose d’implantations sur les principales zones d’activité hexagonales dans les domaines du développement électronique et logiciel, et en particulier des bureaux d’étude à Cachan, Rennes, Grenoble et Nice.

Une direction technique centralisée, des bureaux d’études disposant de ressources fixées (chefs de projets, référents techniques, experts…) et une identification des compétences-clés permettent de mobiliser de manière optimisée les ressources d’ADVANS Group.

Ainsi, grâce à son organisation globale et à sa présence locale, ADVANS Group peut apporter à ses clients la capacité, la valeur et la réactivité qui leur sont nécessaires.

Maîtrise du fonctionnement en centre de support

Intervenant depuis sa création sur des modèles de centres de services, centres de support et projets à engagement forfaitaire, ADVANS Group a développé des compétences, des moyens, des outils et des méthodes permettant de garantir son engagement auprès des clients.

Le fonctionnement en centre de support nécessitant expertise et réactivité a été mis en place depuis de nombreuses années, initialement à la demande de clients tournés vers le logiciel pour leurs activités de développement ou pour la gestion DevOps. Le retour d’expérience d’ADVANS Group sur ce mode de fonctionnement est important et permet une grande maîtrise des opérations, associées à l’utilisation d’outils de pilotage adaptés (tableaux de bord, indicateurs de performance, ticketing…).