Stage - Etude et optimisation du temps de boot sur une cible Linux

France, Lyon | Engineering | Full-time

Apply

Witekio  est une PME internationale dédiée au développement logiciel embarqué & IoT. Leader du développement Linux Yocto sur plateformes ARM , nous sommes un pure player  Software partenaire de nombreux leaders mondiaux de la high-tech.

 

Reconnus également pour nos plateformes IoT Cloud et nos développements applicatifs, nous sommes une équipe de plus de 180 geeks , créateurs et makers soutenue par une société-mère présente dans le classement Fortune 500, Avnet. Avec des bureaux en France, en Allemagne, au Royaume-Uni et aux États-Unis, notre équipe internationale accompagne nos clients de bout en bout dans leurs projets, avec des services d’architecture et design système, le développement et l'intégration logicielle. 

 

Nos étude de cas : Case studies - Your Embedded and IoT Software Partner

 

Contexte

 

Créer une image Linux adaptée à n'importe quel processeur, utilisant des bibliothèques graphiques variées (Qt, OpenGL, Cairo) et mettant en oeuvre des solutions de bootloader (sécurisés ou non) est désormais plus accessible que jamais. Les fournisseurs de silicium proposent des distributions et BSP (Board Support Package) prêts à l'emploi, permettant une mise en service extrêmement rapide.

Cependant, ces solutions extrêmement simples à mettre en œuvre sont souvent surchargées de fonctionnalités enfreignant une des règles de base dans la conception d’un device IoT : l'optimisation du temps de démarrage (boot) du système.

 

Sujet de stage

 

L’objectif de ce stage est d'établir puis de tester une méthode réutilisable permettant de caractériser le temps de boot d’un système Linux et de le réduire grâce à des leviers identifiés et connus.


Une fois éprouvée cette méthode pourra être systématisée sur les projets et dans les offres commerciales.
Le travail devra être réalisé sur une base Yocto, représentative des projets réalisés chez Witekio.

 

Le stage se divisera en quatre étapes :

  • Étude bibliographique :
    Au travers de discussions avec les Teams Leaders “Logiciel Embarqué” et “TheEmbeddedKit” ainsi que de l'étude des exemples, distributions, BSP et documentations rendues disponibles par les fondeurs :

    • Détermination de deux microprocesseurs cibles à étudier (parmi les cibles couramment utilisées dans les projets Witekio : i.MX 8, STM32MP1, …) ;

    • Choix des cartes d'évaluation permettant de mener à bien l'étude ;

    • Détermination du socle de fonctionnalités clés qui devront être présentes dans l’image minimale qui sera mise en oeuvre dans la suite du stage.

  • Caractérisation du temps de boot (pour chaque carte identifiée au cours de l'étude bibliographique) :

    • Mise en oeuvre de la distribution fournie par le fondeur ;

    • Définition et mise en place d’une méthodologie de mesure du temps de boot (utilisation d’outils avancés tels que Sonde Lauterbach) ;

    • Mesure du temps de boot ;

    • Évaluation de la décomposition des temps de chaque étape de boot.

  • Optimisation du temps de boot (pour chaque carte identifiée au cours de l'étude bibliographique) :

    • Modification de la distribution fournie par le fondeur pour conserver les fonctionnalités pré-déterminées ;

    • Évaluation de l’influence des différents paramètres :

      • configuration du bootloader ; 

      • type de stockage (NAND / QSPI / eMMC / SD) ;

      • activation et configuration secure boot ;

      • configuration du kernel ;

      • intégration des drivers dans le noyau ou en tant que modules ;

      • contenu du système (systemd vs systemv) ;

      • Démonstration de l’impact.

  • Prise de hauteur :

    • Documentation & formalisation de la méthodologie de mesure et des outillages mis en oeuvre ;

    • Réalisation d’un “poster” résumant le travail effectué et qui sera présenté sur des salons IoT.

 

Profil du stagiaire

 

Ce stage est destiné à un(e) étudiant(e) en développement logiciel en fin d'études avec un profil «  informatique industrielle ».
Pour intégrer Witekio vous devez répondre aux critères suivants :

  • Bonne connaissance de Linux ;

  • Maîtrise du langage C et du scripting bash ;

  • Connaissance des outils de développement (gcc, git, diff, etc…) ;

  • Autonomie et prise d’initiative ;

  • Bonne capacité de communication pour s'intégrer et contacter les différentes équipes.

 

Conditions 

 

Le stage se déroulera à Lyon 9 à quelques minutes de la gare de Vaise pour une durée de 5 à 6 mois.

Vous bénéficierez d’une gratification d’un montant de 1000€ (en Master 2), de tickets restaurants et d’une prise en charge du transport en commun.

Ce stage est l’opportunité pour vous d’évoluer dans un environnement technique challengeant et bienveillant. Chez Witekio, nous recrutons des développeurs passionnés, curieux, ayant un fort esprit d’équipe et qui aiment partager. Vous serez encadré(e) et accompagné(e) par des experts du domaine du stage tout en vous donnant l’opportunité de prendre des initiatives. Si vous vous êtes bien intégré(e) et si vous avez rapidement progressé(e) techniquement pendant le stage, vous pourrez recevoir une proposition pour rejoindre Witekio en CDI.

Chez Witekio, tout le monde a sa chance et nous ne tolérons aucune forme de discrimination, ce poste est donc ouvert à tous types de profils.

 

Processus de recrutement

 

  • 1 test technique via la plateforme CodinGame, ;

  • 1 premier entretien téléphonique pour apprendre à se connaître (environ 30 minutes) ;

  • 1 entretien technique avec votre futur(e) tuteur (1h30) ;

  • 1 dernier échange téléphonique avec le Team Lead (30 minutes).