Création de la Machine virtuelle du LAB
Sommaire
Comment créer votre propre machine virtuelle
L'image de machine virtuelle que l'on propose ici, peut être recréée en suivant les instructions suivantes. Bien évidement les informations contenus sont valable uniquement pour la dernière image disponible.
Ingrédients
Il y a plusieurs choses à télécharger avant de démarrer :
- Un logiciel de virtualisation [[1]]
- Le pack d'extension permettant le support de l'USB 2.0 ([Extension Pack])
- L'image iso d'une distribution Linux. Nous avons choisi Xubuntu 14.04 LTS pour notre image mais les explications ci-dessous devraient être valable pour toutes les déclinaisons d'Ubuntu 14.04 LTS.
Création de la machine virtuelle
Après avoir installé VirtualBox et son pack d'extension, démarrez-le :
- Cliquez sur Machine->Nouvelle... pour lancer la création d'une machine virtuelle
- Laisser toutes les valeurs par défaut sauf pour la mémoire vive ou il faut mettre au moins 1024 Mo
- Lorsque la machine est crée, sélectionnez son icone et cliquez sur Machine->Configuration...
- Dans l'onglet USB cochez la case Enable USB 2.0
- Dans l'onglet Stockage, Monter l'image iso de Xubuntu précédemment téléchargée
- Validez les réglages et démarrer la machine.
- Installer Xubuntu avec les réglages par défaut
- Après l'installation, éteindre la machine virtuelle pour démonter l'image d'installation
Installation des logiciels
Mise à jour des paquet
Avant d'installer d'autres logiciels, il faut veiller à mettre à jour tous ceux déjà installés. Ouvrez un terminal et tapez les commandes suivantes :
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade
sudo reboot
Extensions invités VirtualBox
Pour que la machine virtuelle gère correctement l'affichage, le copier/coller et bien d'autres options avancées, il faut installer les additions invités. Ces additions sont déjà présentes dans les dépôts officiels, elles sont donc installable de la manière suivante :
sudo apt-get -y install virtualbox-guest-dkms virtualbox-guest-x11 virtualbox-guest-utils
Chaîne de compilation croisée gnu-arm-none-eabi
Cet ensemble de logiciel permet de faire de la compilation croisée pour les microcontrôleurs ARM Cortex-M & Cortex-R (Cortex-M0/M0+/M3/M4, Cortex-R4/R5/R7). Depuis la dernière version d'Ubuntu cette chaine de compilation est présente dans les dépôts, l'installation se fait donc très facilement :
sudo apt-get -y install build-essential gcc-arm-none-eabi gdb-arm-none-eabi
Lors de la construction de l'image, il y avait un conflit sur la page man de gdb empêchant le bon déroulement de l'installation. La commande suivante permet de passer outre le conflit en écrasant le fichier conflictuel :
sudo dpkg -i --force-overwrite /var/cache/apt/archives/gdb-arm-none-eabi_7.6.50.20131218-0ubuntu1+1_amd64.deb
OpenOCD - Open On-Chip Debugger
OpenOCD rend accessible l'interface de débogage JTAG à des terminaux initialement non prévus pour cela. Il fait la traduction logiciel entre la sonde JTAG et un terminal tel que Telnet ou GDB. C'est un outil fondamental car il permet de développer sur un microcontrôleur aussi facilement que dans un environnement classique.
La version actuellement dans les dépôts (0.7) n'est pas compatible avec la sonde JTAG embarquée dans les cartes Nucleo (ST-Link V2). Nous devons donc l'installer directement à partir de ses sources. Avant cela, il faut installer les dépendances nécessaires à la construction de toutes les interfaces :
sudo apt-get install libhidapi-dev libusb-1.0-0-dev libusb-dev
L'installation en elle même reste très classique :
wget http://cznic.dl.sourceforge.net/project/openocd/openocd/0.8.0/openocd-0.8.0.tar.bz2
tar xjf openocd-0.8.0.tar.bz2
cd openocd-0.8.0
./configure --enable-stlink --enable-jlink --enable-ftdi --enable-cmsis-dap
make
sudo make install
Pour que les différentes sondes soient reconnues directement lorsqu’elles sont connectées, il faut rajouter les règles udev correspondant à son matériel. Dans les fichiers d'installation les régles udev des différentes sondes supportées par OpenOCD. Il suffit donc de copier ce fichier à l'endroit adéquat, de recharger toutes les règles et de placer l'utilisateur courant dans le groupe des utilisateurs ayant les droits sur ces périphériques :
sudo cp /usr/local/share/openocd/contrib/99-openocd.rules /etc/udev/rules.d/99-openocd.rules
sudo udevadm control --reload-rules
sudo usermod -a -G plugdev $USER
Pour vérifier que nous avons bien la bonne version installée, la commande suivante devrait vous donner un affichage similaire à celui-ci :
$ openocd --version
Open On-Chip Debugger 0.8.0 (2014-07-22-20:00)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Java et Eclipse
Pour utiliser Eclipse, nous allons installer une JVM et quelques outils de développement associés comme git et maven :
sudo apt-get -y install openjdk-7-jdk maven git
La configuration de l'IDE Eclipse pour faire du développement embarqué sur microcontrôleur ARM est décrite dans une page spécifique : Eclipse pour ARM Cortex M.
Gedit, Vim et meld
Pour éditer facilement du code source sans avoir à sortir l'artillerie lourde, il faut disposer d'un éditeur de texte. Vim et GEdit sont des couteaux suisses de l'édition de texte. Ils sont à la fois simples d'utilisation et assez puissant pour satisfaire les besoins d'un développeur (indentation auto, numéro de ligne, coloration syntaxique, ...).
Meld est un outil permettant de comparer plusieurs fichiers. C'est un outil indispensable pour voir les modifications quand on utilise un gestionnaire de version comme Git.
sudo apt-get -y install gedit gedit-plugins gedit-developer-plugins vim-gtk meld
Arduino
L'IDE Arduino permet de développer sur les différentes déclinaisons de cartes Arduino. Pour ceux qui préfère gérer leurs projets Arduino avec des outils de développement classique, nous avons aussi installé le makefile permettant de compiler et téléverser directement en ligne de commande en se passant de l'IDE parfois un peu trop simpliste.
L'installation est comme est toujours aussi simple :
sudo apt-get -y install arduino arduino-mk
Pour que l'utilisateur courant puisse accéder aux ports séries, il faut le rajouter dans le groupe tty et dialout
sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER
Pour que ce changement soit pris en compte, il faut se déconnecter et se reconnecter de sa session.
Terminal série moserial
Moserial est un terminal série pour le bureau gnome. Il est simple et surtout est présent dans les dépôts officiels des principales distributions Linux. On l'utilise pour communiquer à travers le port série avec les différentes cartes de développement que l'on utilise. La page Communiquer entre un PC et la carte STM32 Nucleo donne plus de détails sur l'utilisation de ce logiciel. Pour l'installer il est directement présent dans les dépôts :
sudo apt-get -y install moserial
Ajout des filtres USB
Pour accéder aux périphérique USB de la machine hôte, il faut créer une règle USB dans VirtualBox. Cette règle permet de reconnaître quels sont les périphériques auxquels la machine virtuelle peut accéder. Typiquement si vous souhaitez développer sur une carte de développement à partir de la VM, il faudra ajouter la règle USB associée.