Une chaîne de compilation est utilisée pour compiler un programme. Le cas le plus courant est la compilation d’une application destinée à tourner sur la machine (ou une de même type) utilisée pour la compilation.
Pour la mini2440, c’est différent, puisqu’on va utiliser un PC pour compiler une application à exécuter sur la mini2440, donc un processeur différent. Il nous faut donc mettre un place ce qu’on appelle une chaîne de compilation croisée. J’ai choisi d’utiliser l’outil Crosstool-ng pour la générer.
La méthode pas-à -pas que je décris ici est celle que j’ai suivie/testée/validée sur une machine virtuelle faisant tourner Ubuntu version 11.04 (l’article suivant détaille la procédure d’installation d’une telle machine virtuelle)
On commence par créer un répertoire “toolchain†qui contiendra notre chaîne de compilation croisée.
On récupère ensuite un outil de génération de chaîne de cross-compilation :
Avant de lancer l’installation de l’outil, on a besoin d’installer quelques packages supplémentaires :
Installation de l’outil
Avant de générer notre chaîne de compilation, il est nécessaire de créer un fichier de configuration, fichier qui sera utilisé par le générateur. On peut récupérer un fichier déjà tout fait pou rla mini2440 via la commande suivante :
Si jamais on veut modifier ce fichier (ou le créer de toute pièce), c’est via la commande suivante. En ce qui me concerne, je l’ai laissé tel quel :
On peut alors lancer la génération de la chaîne de compilation croisée et aller faire un tour, car c’est long, très très long (lors de cette opération, l’outil télécharge tout un tas de packages) :
Remarque : l’outil a parfois du mal à trouver tous les packages qu’il doit
télécharger, et renvoie une erreur du type :
Could not retrieve ’NomDuPackage’
Dans ce cas, il est possible de télécharger soi-même le fichier NomDuPackage.tar.bz2 et le copier dans le répertoire /home/votreNomDeLogin/src (répertoire à créer dans ce cas là ).
Enfin, pour pouvoir accéder aux exécutables de notre chaîne de compilation croisée n’importe où, on lance :
Pour que cet ajout au path soit conservé au redémarrage de la machine de développement, il faut ajouter cette ligne dans le fichier /home/user/.bashrc (en remplaçant user par le nom de votre login).
Test de la chaîne de compilation croisée :
Remarque : dans la suite des tutoriaux, on utilisera cette chaîne de compilation pour générer le bootloader, le kernel, etc... A chaque fois, on utilisera la variable CROSS_COMPILE pour déclarer le préfixe des outils de notre chaîne de compilation croisée. Dans notre cas, on peut facilement trouver le préfixe en question (arm-920t-linux-gnueabi-) en exécutant la commande suivante :
~/toolchain$ ls arm-920t-linux-gnueabi/bin
Pour déclarer la variable CROSS_COMPILE, on utilisera la commande :
export CROSS_COMPILE=arm-920t-linux-gnueabi-