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.