GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer sa propre distribution Linux avec Yocto

Linux est devenu un utilitaire fiable pour créer des systèmes d'exploitation pour les systèmes embarqués. Cependant, la courbe d'apprentissage des utilitaires de développement intégrés peut être assez difficile. Beaucoup de gens qui utilisent ces outils complexes ont passé beaucoup de temps à les comprendre et à les maîtriser, et Yocto n'est pas différent. Avec lui, vous pouvez développer une distribution Linux minimale personnalisée pour votre projet de système embarqué.

Cet article vous guidera étape par étape pour démarrer avec Yocto afin de créer une distribution Linux minimale.

Le projet Yocto

Yocto est un projet collaboratif open source visant à créer des outils, des modèles et des processus nécessaires pour développer des systèmes Linux personnalisés pour les systèmes embarqués malgré l'architecture matérielle sous-jacente. Yocto a été lancé en mars 2011 en tant que collaboration de 22 organisations, dont OpenEmbedded, qui agit comme son système de construction.

La sortie du build Yocto Project se compose de trois éléments principaux :

  • Cibler les fichiers binaires d'exécution : Celui-ci contient tous les fichiers auxiliaires nécessaires pour déployer Linux sur le système cible. Les autres fichiers incluent le chargeur de démarrage, le noyau, les modules du noyau, l'image du système de fichiers racine.
  • Flux de packages : Il s'agit des progiciels nécessaires à votre système. Vous pouvez également sélectionner le gestionnaire de packages dont vous avez besoin pour votre système - deb, dnf, ipk, etc. Vous pouvez inclure ces packages dans les binaires d'exécution cibles ou les ajouter ultérieurement au système déjà déployé.
  • SDK cible : Ce sont les bibliothèques et les fichiers d'en-tête qui montrent le système installé sur la cible. Ils sont principalement utilisés par les développeurs d'applications pour s'assurer qu'ils associent les bonnes bibliothèques selon le système.

Pourquoi n'utilisons-nous pas une distribution existante ?

Initialement, les systèmes embarqués utilisaient des distributions prêtes à l'emploi et essayaient de les personnaliser pour répondre à leurs besoins. Cela comprenait la suppression des packages inutiles pour l'optimisation du stockage et l'amélioration de la sécurité. Avoir un logiciel mort peut rendre un système vulnérable à divers vecteurs d'attaque. Même avec ces avantages, l'utilisation de la distribution existante a posé plusieurs défis.

La première est que l'ensemble du processus de suppression des packages n'a pas été facile. La suppression de certains packages pourrait rompre les dépendances détenues par divers autres packages qui pourraient vous être utiles. De plus, certains packages ont été intégrés au processus de démarrage et d'exécution, ce qui rendait leur suppression fastidieuse.

Par conséquent, les distributions existantes entraînaient souvent des retards inutiles ou avaient un système qui ne répondait pas à toutes les normes requises.

Commençons.

Créer sa propre distribution Linux avec Yocto

Étape 1 :Configuration requise pour le matériel et le système d'exploitation

  • Minimum de 4 Go de RAM (Plus c'est haut, mieux c'est)
  • Dernier système d'exploitation Ubuntu (20.04 LTS) ou tout autre système d'exploitation Linux :
    • Fédora
    • openSUSE
    • CentOS
    • Debian
  • Minimum de 100 Go d'espace libre sur le disque dur (une plus grande taille garantira de meilleures performances). Yocto peut être assez gourmand en ressources, selon votre produit final cible.

Si vous êtes un utilisateur macOS ou Windows, utilisez un logiciel de virtualisation comme VMware ou Virtualbox pour exécuter une distribution Linux. Alternativement, vous pouvez opter pour un multiboot.

Étape 2 :Configurer l'hôte

Commençons par installer les dépendances requises dans notre système hôte. Pour ce post, j'utilise la distribution Ubuntu. Si vous utilisez une autre distribution, veuillez consulter le guide de démarrage rapide du projet Yocto et voir quelles dépendances installer.

Lancez le Terminal et exécutez les commandes ci-dessous :

sudo apt update
sudo apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop

Etape 3 :Cloner le Yocto Poky

Une fois les dépendances installées, nous pouvons procéder au téléchargement de Yocto. Nous allons cloner le dépôt Yocto depuis le site Yocto Project. Exécutez la commande ci-dessous, qui téléchargera la dernière version (la branche "sumo"). Nous allons créer un répertoire dans le dossier Home pour construire notre projet Yocto pour plus de facilité d'accès et de cohérence.

mkdir ~/yocto
mkdir ~/yocto/Project-One/
cd ~/Yocto/Project-One/
git clone -b sumo git://git.yoctoproject.org/poky.git

Si vous obtenez une erreur telle que "commande git introuvable," cela signifie que vous n'avez pas installé git sur votre système. Exécutez la commande ci-dessous pour l'installer.

sudo apt install git

Étape 4 :Initialiser l'environnement intégré.

Pour démarrer avec Yocto, il faut initialiser le ‘build environment’. Exécutez les commandes ci-dessous. Le premier changera le répertoire dans le dossier que nous venons de cloner. La deuxième commande initialisera "l'environnement de construction".

cd ~/Yocto/Project-One/poky
source oe-init-build-env build

Une fois l'initialisation terminée, nous aurons un répertoire de construction et un fichier de configuration. Le répertoire de construction est l'endroit où se produit toute la construction du système et héberge les fichiers images une fois le processus terminé. En fait, après l'initialisation, le terminal pointera automatiquement vers le dossier de construction. Vous pouvez le voir sur l'image ci-dessus.

Étape 5 :Configuration

Lorsque vous exécutez une commande ls dans le répertoire /build, vous verrez un dossier /conf qui contient tous nos fichiers de configuration. Accédez à ce dossier avec la commande ci-dessous :

$ cd ~/Yocto/Project-One/poky/build/conf/
$ ls

En exécutant la commande ls sur le dossier conf, vous devriez voir le fichier local.conf. Ce fichier spécifie les détails de la machine cible et du SDK pour l'architecture cible souhaitée.

Ouvrez ce fichier pour le modifier avec la commande ci-dessous :

$ sudo nano local.conf

Dans l'image ci-dessous, la machine de construction cible est "qemux86-64".

Maintenant, décommentez les lignes suivantes, comme indiqué dans l'image ci-dessous. (Par décommenter, nous entendons -supprimer le signe "#")

DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

Avant de poursuivre le processus de compilation, ajoutez les lignes suivantes à la fin du fichier "local.conf".

BB_NUMBER_THREADS = "X"
PARALLEL_MAKE = "-j X"

Remplacer ‘X’ avec le double du nombre de processeurs/CPU de votre ordinateur. Par conséquent, si vous avez quatre processeurs, vous auriez des déclarations comme celles-ci :BB_NUMBER_THREADS ="8" PARALLEL_MAKE ="-j 8"

Pour afficher le nombre de processeurs de votre ordinateur, exécutez la commande ci-dessous :

lscpu

Étape 5 :Compilation et processus de création

Pour commencer à créer l'image, exécutez la commande ci-dessous dans votre répertoire /build.

bitbake core-image-sato

Cela lancera le téléchargement et la compilation des packages pour le système cible. S'il vous plaît, n'exécutez pas la commande bitbake ci-dessus avec les privilèges root car cela générerait une erreur. Pour une première construction, le processus peut prendre jusqu'à plusieurs heures (voire plus de 2). Parfois, bitbake peut rencontrer une erreur. Ne pas paniquer; exécutez à nouveau la commande ci-dessus. L'erreur peut être due à la panne d'un site Web particulier ou à une ressource manquante.

Les images binaires résultantes sont stockées dans le répertoire /build à poky/build/tmp/deploy/images/qemux86.

Conclusion

Bien que Yocto puisse être assez difficile à maîtriser en une seule séance, c'est un excellent utilitaire pour commencer à créer une distribution Linux personnalisée pour votre projet. J'espère que cet article vous a donné une procédure détaillée sur la façon de démarrer avec l'ensemble du processus de création d'une distribution Linux personnalisée.


Linux
  1. Créez votre propre serveur de streaming vidéo avec Linux

  2. Comment créer un fichier sous Linux à l'aide d'un terminal/ligne de commande

  3. Comment sauvegarder l'intégralité de votre système Linux à l'aide de Rsync

  4. Comment créer un volume physique sous Linux en utilisant LVM

  5. Comment créer un utilisateur Linux avec Ansible

Comment créer une charge CPU à 100 % sur un système Linux

Comment mettre à jour le système openSUSE Linux

Comment créer votre propre serveur VPN IPsec sous Linux

Comment vérifier la charge de votre serveur dans le système Linux

Comment créer votre propre VPN – Instructions détaillées

Comment créer facilement votre propre distribution Linux ?