Compilation de MicMac sur ARM (RaspBerryPi)

De MicMac
Aller à : navigation, rechercher

Cette page est exclusivement consacrée à la compilation du logiciel de l'IGN MicMac sur des processeurs ARM tels que les RaspBerryPi. Cette page présente ainsi les différentes étapes de compilation.*

Remarque : Pensez à vous munir de carte SD au moin 16Go pour éviter tout défaut de compilation...

Les librairies

Dans un premier temps, nous allons installer toutes les librairies indispensables à l'installation. Pour cela, il suffit d'éxecuter les commandes qui suivent dans un terminal :

 sudo apt-get update 

L'option update met à jour la liste des fichiers disponibles de configuration /etc/apt/sources.list. L'exécuter régulièrement est une bonne pratique, afin de maintenir à jour votre liste de paquets disponibles.

NB : la commande apt-get est un outil logiciel à utiliser en ligne de commande. Il permet d'effectuer l'installation et la désinstallation de paquets.

 sudo apt-get upgrade 

L'option upgrade met à jour tous les paquets installés sur le système vers les dernières versions (couramment utilisé).

 sudo apt-get install x11proto-core-dev make cmake libx11-dev git git-all subversion imagemagick gcc g++ exiv2 libimage-exiftool-perl libgeo-proj4-perl mesa-common-dev libgl1-mesa-dev libglapi-mesa libglu1-mesa qt5-default 

Remarque : l'installation de dépôt de Git vient remplacer celle de Mercurial. Le dépôt de Mercurial n'est plus mettre à jour par le développeurs. En effet, Git est de loin le plus rapide des systèmes de gestion de versions existants et les dépôts Git sont particulièrement compacts. Il se distingue notamment par sa rapidité et sa gestion des branches qui permettent de développer en parallèle de nouvelles fonctionnalités, ce qui est très intéressant pour des travaux dits de "clustering".

 sudo apt-get install x11proto-resource-dev cmake-curses-gui extra-cmake-modules libx11-6-dbg hgsubversion libimage-magick-perl 

Téléchargement de MicMac

Pour cloner MicMac dans le répertoire culture3d/ (vous pouvez choisir un nom quel qu'il soit):

 git clone https://github.com/micmacIGN/micmac.git culture3d

Remarque : Si vous avez un problème pour cloner avec git à cause de proxy, utiliser cette commande :

 git config --global http.proxy your_proxy_address 

Ne vous inquiétez pas, le téléchargement peut prendre plusieurs minutes !

Logiciel de compilation

À partir du répertoire d'installation, accédez au répertoire 'culture3d':

 cd culture3d 

Ensuite, vous devez créer un répertoire de build et y aller:

mkdir build
cd build


Ensuite, vous devez générer le makefile avec les bonnes options. Pour générer le makefile défaut, exécutez ce qui suit :

 sudo cmake ../ 
 sudo ccmake ../ 

Remarque : Maintenant que vous êtes dans les configurations de cmake, afin de compiler plus vite sur Raspberry, mettez toutes les options de cmake en OFF, seule l'option WITH_HEADER_PRECOMP reste sur ON, puis configurez (c) et générez (g). Pour l'instant, on est sure que ca marche sur le Raspberry avec cette configuration. À tester avec les autres option ENABLE

Afin de compiler, on modifie un peu le source code, entrez dans :

culture3d/CodeExterne/Siftpp/

Il faut nécessairement vous placer dans le bon environnement afin de modifier le fichier Makefile. Ajoutez-y la ligne :

Linux_armv71_ARCH  : =glx

De la même manière, vous allez modifier le fichier sift_driver.cpp et ajouter la ligne #include<cstdint>. En effet, le fichier Makefile tente de configurer automatiquement quelques paramètres. Si cela échoue, il renvoie une erreur. Ainsi, les commandes précédentes permettront au programme d'être exécuté sans aucun problème. Pour ce faire, c'est la commande vi (on peut utilise n'importe quelle editeur de texte) qui va vous permettre de modifier à votre guise le fichier au sein même du terminal. Nous vous présentons succinctement son fonctionnement ci-dessous.

Présentation de la commande vi

vi offre deux modes de fonctionnement : le mode commande et le mode insertion.

Au démarrage il est en mode commande, qui permet de déplacer le curseur, de parcourir le document et de copier-coller. On le quitte, en entrant du même coup en mode insertion, en utilisant une commande d'insertion ou de modification. En mode insertion il est possible de saisir du texte. Appuyez sur la touche Esc pour revenir en mode commande.

Pour sauvegarder ou quitter un fichier vi, vous pouvez écrire différentes requêtes :

:w qui permet de sauvegarder le contenu du fichier
:x sauvegarde puis quitte
:q quitte vi sans sauvegarder les modifications
:q! quitte immédiatement, sans rien faire d'autre

Vous pouvez également vous déplacer dans le document édité :

f descend d'une page 
b remonte d'une page 
d descend d'1/2 page
u remonte d'1/2 page
X va à la ligne numérotée X

Il se peut que vous vouliez insérer du texte, pour cela il vous suffit de vous inspirer de ce qu'il suit :

i active le mode insertion
a active le mode insertion, un caractère après le curseur
I insère au début de la ligne
A insère à la fin de la ligne
O insère une ligne au-dessus du curseur et passe en mode insertion 
o insère une ligne en dessous du curseur et passe en mode insertion
ESC quitte le mode insertion, revient en mode commande

Pour supprimer du texte, il vous faut connaître les différentes requêtes suivantes :

x supprime un caractère 
dw supprime un mot 
dnw supprime n mots
dd supprime une ligne
ndd supprime n lignes

Ne vous inquiétez surtout pas en cas de modifications erronées, il existe un équivalent du Ctrl+z dans le terminal qui annule ou répète des modifications :

u annule la dernière modification
U annule toutes les modifications effectuées sur la ligne courante
. répète les dernières modifications

Lancement de la compilation

Avant toutes choses, il est nécessaire de retourner dans le répertoire culture3d/build pour pouvoir par la suite lancer la compilation. Maintenant, nous pouvons enfin construire les sources en lançant les dernières commandes suivantes :

 sudo make -j$NBRP 
où NBRP correspond au nombre de processeurs sur votre ARM (suite aux nombreuses phases de tests, nous avons pu remarquer qu'il valait mieux mettre seulement 2 cœurs pour que la compilation se déroule sans problème) :
 NBRP=2

Attention : la compilation peut prendre plusieurs minutes voire des heures selon la machine que vous avez dans les mains !

Enfin, pour finaliser l'installation, il ne vous reste qu'une seule commande à écrire :

 sudo make install 

Ajouter MicMac au chemin

Afin de permettre au système de connaitre la commande de MicMac quand nous les appelons depuis un terminal, il faut que le répertoire d’exécutables de MicMac se trouve dans le système PATH. Par défaut, l’exécutable de MicMac se produit après la compilation et se trouve dans '~/culture3d/bin'. Pour verifier le contenu de PATH, dans un terminal, exécutez ce qui suit :

 echo $PATH 

Pour ajouter le répertoire d’exécutable de MicMac dans PATH en permanence, on peut mettre une commande dans ~/.bashrc. On ouvre le fichier ~/.bashrc avec un éditeur de texte :

 sudo vi ~/.bashrc 

Et on ajoute le répertoire d’exécutable de MicMac en ajoutant cette commande à la fin du fichier ~/.bashrc:

  export PATH=$PATH:~/culture3d/bin 

MicMac devrait maintenant être installé dans votre dépôt personnel.

Pour vérifier si MicMac est bien installé sur votre Raspberry, vous pouvez taper dans un terminal:

 mm3d 

Mis à jour MicMac

Depuis un terminal, rentrez dans le répertoire 'build' de MicMac grâce à la commande suivante :

 cd ~/culture3d/build 

Misz à jour avec git :

 git pull 

Recompilez après avoir mis à jour :

 sudo make install