domodom
Accueil du site > mini2440 > Linux > Tutoriaux > Mettre en place une chaîne de compilation croisée pour la mini2440.

Mettre en place une chaîne de compilation croisée pour la mini2440.

jeudi 27 octobre 2011, par Dom

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-
SPIP | Contact me | | Plan du site | Suivre la vie du site RSS 2.0      Version Française | English version