Le projet Yocto est une initiative open-source puissante qui fournit des outils logiciels essentiels pour construire des systèmes d'exploitation Linux personnalisés. Ces outils incluent des systèmes de construction, des environnements de développement croisé et des émulateurs spécialement conçus pour simplifier le processus de création d'un système d'exploitation Linux. Traditionnellement, construire un système d'exploitation Linux était une tâche fastidieuse qui impliquait de collecter manuellement des paquets logiciels, de les compiler, de résoudre les dépendances et d'installer chaque composant individuellement. Yocto automatise l'ensemble de ce processus, permettant aux utilisateurs de construire facilement des distributions Linux entièrement fonctionnelles, à condition de disposer d'une connexion Internet stable.\n\nDans ma configuration, j'ai utilisé Ubuntu 22.04.5 LTS (Jammy Jellyfish) comme système d'exploitation hôte. J'ai initialement tenté d'utiliser Ubuntu 24.04, mais l'environnement de construction a échoué en raison d'une incompatibilité avec les modules Bitbake, qui sont essentiels pour le système de construction de Yocto. De plus, j'ai rencontré un problème où le terminal ne se lançait pas sur Ubuntu 22.04 lorsqu'il fonctionnait dans VirtualBox. Ce problème a été résolu en suivant un guide de dépannage spécifique intitulé "Résolu : le terminal Ubuntu 22.04 ne démarre pas ! Comment réparer dans VirtualBox." Pour la virtualisation, j'ai utilisé Oracle VirtualBox version 7.0.22, téléchargeant les ressources nécessaires depuis le dépôt des anciennes versions d'Oracle VirtualBox.\n\nPour assurer un processus de construction fluide, j'ai alloué au moins 60 Go d'espace disque et 16 Go de RAM à la machine virtuelle, car j'ai trouvé que 8 Go étaient insuffisants pour gérer les exigences. L'installation des dépendances nécessaires a été simple, impliquant des mises à jour et l'installation de paquets tels que chrpath, diffstat, gawk et python3.10-distutils. Après avoir préparé l'environnement, j'ai cloné le dépôt Yocto Poky depuis la source officielle, en basculant sur la branche Dunfell, qui est une version stable et bien prise en charge.\n\nUne fois le dépôt prêt, j'ai lancé le script de configuration de l'environnement et initié le processus de construction avec Bitbake pour compiler l'image "core-image-base". Cette construction initiale a été longue, prenant entre deux et quatre heures, selon les performances du système. Après la construction, j'ai lancé l'image résultante avec QEMU, l'émulateur inclus avec Yocto, en choisissant entre qemux86 pour les builds 32 bits et qemux86-64 pour les builds 64 bits. Pour les systèmes 64 bits, j'ai rencontré une erreur "Request Major code 130 (MIT-SHM)", qui a été résolue en exécutant QEMU avec l'option "nographic".\n\nAprès avoir démarré avec succès l'image Linux personnalisée dans l'émulateur, les identifiants de connexion initiaux étaient simples : le nom d'utilisateur était "root" et le champ du mot de passe était laissé vide. Cela permettait un accès immédiat à l'environnement shell, facilitant une personnalisation ou un test ultérieur du système Linux construit.\n\nEn réfléchissant à cette expérience, construire un système d'exploitation Linux avec Yocto a été plus difficile que je ne l'avais initialement prévu. Cependant, avec l'aide d'une assistance IA et d'une vidéo pédagogique que j'ai regardée avec une traduction automatique, j'ai pu naviguer avec succès dans le processus. La vidéo étape par étape a été particulièrement utile pour clarifier des aspects complexes, malgré le fait qu'elle soit en anglais. Dans l'ensemble, Yocto s'est avéré être un outil robuste qui simplifie considérablement la tâche traditionnellement manuelle et sujette aux erreurs du développement de distributions Linux, la rendant accessible aux développeurs novices comme expérimentés.