Outils pour le développement avec une Raspberry Pi

Mise à jour d'une carte microSD Raspbian pour Raspberry Pi 2

La mise à jour de votre carte micro-SD pour passer d'une plate-forme Raspberry Pi 1 vers Raspberry Pi 2 (quel que soit le modèle). Il suffit de réaliser les commandes suivantes:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install raspberrypi-ui-mods

Votre carte SD est maintenant utilisable sur les versions 1 et 2 de Raspberry.

Montage des partitions de votre carte SD Raspberry Pi sur un système Unix

Il est parfois utile de pouvoir consulter le contenu de l'image d'un disque pour Raspberry Pi sans avoir la plate-forme sous la main. Il est possible de réaliser cette opération en montant le système de fichier sur un système Unix classique. Pour réaliser automatiquement ces opérations de montage et démontage, j'ai trouvé 2 scripts sur Internet que vous pourrez télécharger en bas de cette page.

Attention toutefois si vous montez une image sur un système tiers, le superblock du système de fichier prendra la date courante du système sur lequel vous réalisez le montage. Si vous utilisez ultérieurement cette image sur votre Raspberry Pi, vous aurez une erreur de date de montage dans le futur. En effet, la Raspberry Pi sauvegarde l'heure lors de la dernière extinction de la plate-forme. Donc si vous avez monté l'image entre temps, la date du système de fichier sera postérieure à la date de votre machine, ceci provoquant un problème qui doit être résolu par fsck.

Donc pour éviter tout soucis, faire une copie de votre système disque Raspberry Pi avant de monter les partitions sur un système tiers.

Cross-Compilation pour Raspberry Pi et Pi 2

Compiler sur la cible c'est bien, quand c'est possible, mais quoi qu'il arrive pour de petits programmes. Avoir un environnement de compilation sur sa station de travail et de pouvoir en tirer toute sa puissance est tout de même très intéressant. Pour pouvoir produire un programme pour Rapberry Pi, à base de microprocesseur ARM à partir d'une station de travail à base de processeur 64 bits nécessite un compilateur qui permette de produire le code adapté à la cible. C'est la compilation croisée (ou cross-compilation en anglais). Mais comment obtenir cet environnement?

Environnement de Cross-compilation sous Ubuntu

Il est possible d'installer un environnement de cross-compilation grâce à un paquetage sous Ubuntu. Mais le souci majeur est que cet environnement n'est pas optimisé pour la plate-forme Raspberry en particulier la PI2 qui a le support calcul flottant hardware et un processeur plus récent. En effet, le compilateur a été créé avec la configuration suivante:

--with-arch=armv5t --with-float=soft

Il est donc préférable de créer sa propre chaîne de compilation pour avoir des exécutables qui tirent parti de la puissance et des fonctionnalités sur microprocesseur ARM.

Construction d'un environnement de cross-compilation avec crosstool-ng

Voici les instructions pour produire votre chaîne de compilation croisée sous un système Debian/Linux (Debian, Ubuntu, ...). J'ai dû réaliser différents tests pour la compatibilité entre le noyau, les bibliothèques, le système natif, les contraintes pour le système cible.

sudo apt-get install bzip2 automake build-essential bison flex gawk gperf libtool libtool-bin libncurses5-dev python-dev texinfo
export VERSION=1.22.0
wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-${VERSION}.tar.bz2
tar xjvf crosstool-ng-${VERSION}.tar.bz2
cd crosstool-ng-${VERSION}
./configure --prefix=/opt/x-tools/ct-ng
make
sudo make install
cd .. && rm -r crosstool-ng-${VERSION}
export PATH=$PATH:/opt/x-tools/ct-ng/bin
mkdir rpi2 && cd rpi2
ct-ng list-samples
ct-ng armv7-rpi2-linux-gnueabihf
ct-ng menuconfig
# Version de gcc à 4.9.3 et changer les chemins pour produit la toolchain dans /opt/x-tools/
ct-ng build

Cette chaîne de cross-compilation permet de produire des exécutables pour Raspberry Pi 2 uniquement (armv7 et hard-float). Mais nous tirons ainsi le maximum des caractéristiques de cette plate-forme. Une fois la compilation terminée, vous pouvez détruire le répertoire rpi2 qui prendra de l'ordre de 4,5 à 5Go.

Programmes et fichiers nécessaires

Vous pouvez trouver ci-joint tous les fichiers utiles ou référencés sur cette page.

Mount Raspberry Pi fichier img sur un système Unix UnMount Raspberry Pi fichier img sur un système Unix