La commande « make menuconfig »

Quand on exécute cette commande, après quelques secondes pendant lesquelles des commandes de compilation défilent dans le terminal, on obtient une interface semi-graphique servant de menu de configuration à « buildroot ».

Les flèches verticales (vers le bas et vers le haut) du clavier permettent de parcourir les 11 principaux items du menu. Les flèches horizontales (vers la gauche et vers la droite) du clavier permettent de changer la fonctionnalité associée à la touche « Entrée » et sélectionnée en bas du menu.

Le sous-menu « Target options »

Ce sous-menu définit le hardware de la CPU pour laquelle il faut cross-compiler. Une fois que « buildroot » est configurée pour une cible matériel, on n'a plus besoin de revenir dans ce sous-menu.

Le sous-menu « Toolchain »

Ce sous-menu permet d’indiquer quelle chaîne de développement (« Toolchain ») on va utiliser. En effet, Buildroot est capable de télécharger et compiler, depuis les sources, sa propre chaine de développement pour la CPU cible que l’on a défini dans le menu « Target options » ou d’en utiliser une autre préinstallée.

Le sous-menu « Build options »

Ce sous-menu permet d’indiquer les options de génération en précisant notamment si on utilise un cache de compilation pour accélérer les multiples compilations successives.

Le sous-menu « System configuration »

Cela contient différentes configurations de fonctionnalités du système d'exploitation linux telles que :

Le sous-menu « Kernel »

Cela contient notamment la version du noyau à télécharger, compiler et utiliser.

Le sous-menu « Target package »

En fonction du projet que l’on a à construire, on sélectionne des nouveaux packages dans ce sous-menu afin de les intégrer dans l'image.

Le sous-menu « Filesystem images »

Dans ce sous-menu, on trouve principalement les paramètres du système de fichiers que l'on va utiliser pour recevoir le système d'exploitation et surtout sa taille qu'il faudra fixer en fonction de la taille du contenu à y mettre.

Le sous-menu « Bootloaders »

Ce sous-menu propose un certain nombre de systèmes de chargement du système d'explotation (ce que l'on appelle le « Bootloader ». Pour Raspberry PI 3, il n'est pas nécessaire d'en sélectionner un de cette liste, les scripts d'installation prévus pour l'architecture du Raspberry PI se chargent de télécharger et d'installer le « Bootloader » officiel.

Le sous-menu « Host utilities »

Ce menu permet de sélectionner les outils nécessaires à la cross-génération de l'image. Ce sont des outils dont dépendent certains éléments du « Target package » et qui seront (en générale) automatiquement sélectionnés par le jeux des dépendances dès que cela sera nécessaire. Il est donc rarement nécessaire de s'y rendre pour y sélectionner un élément.

Le sous-menu « Legacy config options »

Ce menu regroupe toutes les fonctionnalités étant apparues dans les versions précédentes de « Buildroot » et ayant maintenant été supprimées.

Ces fonctionnalités ne doivent pas être utilisées. Leur sélection provoque une erreur. On fera en sorte de surveiller que l’on n’active aucune fonctionnalité de ce menu.

Le sous-menu « External options »

Ce sous-menu regroupe les packages logiciels qui ne font pas partie de « Buildroot » et que l’on a ajouté.

Sortir de la commande

Pour quitter la commande « make menuconfig », on sort de chaque sous-menu de l’arborescence via le bouton « < Exit > » ou en pressant deux fois de suite la touche « Echap ». Une fois sortie du menu principal, il ne reste plus qu'à accepter la sauvegarde de notre nouvelle configuration qui nous sera demandée, dans le cas où on l'a modifiée.

La recherche de fonctionnalité

Pour rechercher une fonctionnalité dans l'ensemble des menus de « buildroot », l'interface propose, via la touche « / », l'ouverture d'une boite de dialogue dans laquelle on pourra saisir un morceau du nom ou de la variable d'environnement correspondant à la fonctionnalité désirée. En retour, la boite de dialogue nous affiche, pour chaque fonctionnalité pouvant répondre à notre critère de recherche :

Sur cette exemple, on nous dit que la variable d'environnement « BR2_SYSTEM_DHCP » de type « string » contient actuellement la valeur « eth0 », que cela correspond à la fonctionnalité « Network interface to configure through DHCP » et que l'on y accéde via le sous-menu « System configuration ».