Table des matières

Création de Buildroot sous environnement Vagrant

Introduction

Ainsi, l'environnement de Buildroot est portable et reproductible. Cet aspect nous intéresse particulièrement pour les développements pour des produits qui évoluent vites, tels que les produits réalisés sur la base des Zynq et les versions de Buildroot.

À propos de Vagrant

Avec Vagrant, pour définir un système d'exploitation avec une configuration et ses paquets particuliers, il suffit d'un simple fichier, d'un ensemble de commandes et des paquets disponibles. Le système est chargé dans une machine virtuelle. Celle ci n'est pas installée définitivement sur la machine hôte, car elle se re-installe à chaque appel du fichier de configuration. L'image du système peut être détruit localement. Elle sera reconstruite au prochain appel.
Le contenu du système peut être mis dans une boite, appelée box.

Les principaux avantages de cet outil sont la simplicité, la portabilité des machines virtuelles, la légèreté (comparée à une machine virtuelle installée) et la facilité que l’on a à reproduire un même environnement plusieurs fois1).

Installations

Le système sur lequel je travaille : Linux Mint LMDE 2 Betsy.
Via le gestionnaire de paquets, j'ai installé :

Pluggin de configuration du proxy pour Vagrant

Etant derrière une protection par proxy, une solution est d'utiliser le pluggin adapté de Vagran.
Installation :

$ vagrant plugin install vagrant-proxyconf

Pour un configuration globale, on peut créer le fichier Vagrantfile dans le répertoire ~/.vagrant.d/ ou pour une configuration locale, dans le répertoire spécifique du projet.
Exemple :

$ nano ~/.vagrant.d/Vagrantfile

Vagrant.configure("2") do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://proxy.serveur:port/"
    config.proxy.https    = "http://proxy.serveur:port/"
    config.proxy.ftp      = "ftp://proxy.serveur:port/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
  end
  # ... autres trucs
end

Plus d'information ici

Tests

Premier test

$ curl -O https://buildroot.org/downloads/Vagrantfile
$ vagrant up
$ vagrant ssh
vagrant@vagrant-ubuntu-trusty-64:~$ exit
$ vagrant destroy

Mise à jour

Après quelques jours …

$ vagrant up

Un message que la “box” a subit une mise à jour.

$ vagrant destroy
$ vagrant box update
$ vagrant up
$ vagrant ssh
vagrant@vagrant-ubuntu-trusty-64:~$ cd buildroot-2016.08
vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ make menuconfig

Là, on peut choisir de charger une configuration pour la carte microzed, en utilisant le choix load et en indiquant le choix /home/vagrant/buildroot-2016.08/configs/zynq_microzed_defconfig, puis exit

vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ make zynq_microzed_defconfig
vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ make
...
In file included from tools/aisimage.c:10:0:
include/image.h:923:27: fatal error: openssl/evp.h: No such file or directory
 # include  <openssl/evp.h>
...

Une erreur apparaît avec un fichier evp.h manquant. Il faut installer un paquet libssl

Résolution de l'erreur

vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ sudo apt-get update
vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ sudo apt-get upgrade
vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ sudo apt-get install libssl-dev
vagrant@vagrant-ubuntu-trusty-64:~/buildroot-2016.08$ make

À partir de là, la méthode travail sur buildroot reste la même que ce soit sur la machine virtuelle ainsi créée que sur un système proprement configuré avec le paquet buildroot installé. Vous pouvez vous référer à la page sur l'utilisation de builroot.

Utilisation

Voici quelques commandes et commentaires pour l'utilisation du système virtuel ainsi créé. Une fois dans le répertoire où le fichier Vagrant se situe, on pourra utiliser les commandes de gestion de la machine virtuelle.

Mise en route

Le système virtuel crée une image sur le disque dur et se charge en mémoire.

$ vagran up

Utiliser le système virtuel

Afin de rentrer des commandes dans le système virtuel, il faut s'y connecter

$ vagrant ssh

Sortir du système virtuel

Pour sortir du système virtuel

$ exit

Éteindre le système virtuel

Le système virtuel se décharge de la mémoire. Trois possibilités :

Échanges avec le système hôte

Le répertoire /vagrant sert de zone d'échanges. Tous les fichier qui s'y trouvent restent sur le disque dur du système hôte, dans le répertoire où le ficher de configuration Vagrant se trouve. Par exemple :

1)
Vous trouverez une bonne explication et un exemple sur le site de symbioz