Master SIAME | Université Toulouse 3

Internet of things and System on Chip

Master SIAME | Université Toulouse 3

Internet of things and System on Chip

User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

embedded:materiel:utilisation_de_la_carte [2015/08/26 20:37] (current)
Line 1: Line 1:
 +====== Utilisation de la carte ======
 +
 +  * [[https://​github.com/​CircuitCo/​BeagleBone-RevA6/​blob/​master/​BeagleBone_SRM_A6_0_1.pdf?​raw=true|Manuel de référence]]
 +
 +===== Démarrage =====
 +
 +Le BeagleBone doit être connecté sur un port USB.
 +
 +A partir de là, il se connecte comme un support de stockage USB et une partie de son disque peut être consulté comme une clé USB.
 +
 +Pour pouvoir se connecter en réseau, il faut d'​abord démonter le stockage USB (par le bureau ou par une interface de commande).
 +
 +===== Connexion par USB =====
 +
 +On peut passer par une interface http : il faut taper l'​adresse ''​192.168.7.2''​ dans votre navigateur ​ préféré.
 +
 +Ou alors, on peut se connecter directement avec ssh :
 +
 +<code sh>
 +ssh root@192.168.7.2
 +</​code>​
 +
 +Le mot de passe est ''​root''​.
 +
 +**IMPORTANT** Vous êtes ''​root''​ sur ces machines : je vous conseille la plus extrême prudence pour ne pas me bousiller le système avec un ''​rm''​ malencontreux.
 +
 +On se retrouve alors sous une interface de commande bash avec un certain nombre de commandes classiques des systèmes Unix mais cela reste assez sobre pour développer.
 +
 +Autre:
 +  * [[http://​learn.adafruit.com/​beaglebone/​overview|Connexion avec Windows]]
 +  * [[http://​www.lvr.com/​beaglebone.htm|Détails avec Linux]]
 +
 +===== Connexion par Ethernet =====
 +
 +La connexion par USB n'est pas encore disponible sur vos stations de travail. Vous pouvez néanmoins vous connecter par Ethernet.
 +
 +La connexion devient alors :
 +  * connectez le cordon USB de la station de travail au BeagleBone pour l'​alimenter,​
 +  * connectez la Beaglebone avec n'​importe quel câble Ethernet de la salle.
 +
 +Pour vous connecter, vous devez taper :
 +<code sh>
 +ssh 192.168.0.NUM
 +</​code>​
 +
 +NUM est le numéro de votre BeagleBone + 33.
 +
 +===== Programmation ( ce que ça devrait être) =====
 +
 +Je ne l'ai pas encore testé mais le schéma proposé peut-être le suivant :
 +
 +  * maintenir une connexion //ssh// en permanence pour pouvoir tester,
 +  * écrire et compiler l'​application sur votre machine de travail en utilisant le compilateur ''​arm-eabi-gcc'',​
 +  * transférer sur la BagleBone en utilisant //scp//,
 +  * lancer l'​application depuis la session //ssh//.
 +
 +Cette démarche est bien sûr seulement possible ​ tant qu'on maintient une liaison filaire avec la Bagle Bone.
 +Dès qu'on voudra lâcher le quadcopter, on procédera de même pour charger et lancer le programme mais il faudra le rendre indépendant de la session //ssh// qui devra être rompu (plus d'​explications plus tard).
 +
 +Comme votre application va s'​exécuter sur un système Linux, il n'est pas nécessaire d'​appliquer les options propres à la carte AT91SAM7S : on utilisera les options de base du compilateur ARM qui, par défaut, à destination de Linux ARM.
 +
 +Ci-dessous un ''​Makefile''​ qui pourra vous aider:
 +<code make>
 +EXEC = ctest
 +SOURCES = ctest.c
 +OBJECTS = $(SOURCES:​.c=.o)
 +
 +ARCH=arm-linux-gnueabi-
 +CC=$(ARCH)gcc
 +CFLAGS=-g3
 +TARGET=root@192.168.7.2:​.
 +
 +$(EXEC): $(OBJECTS)
 +
 +install:
 + scp $(EXEC) $(TARGET)
 +</​code>​
 +
 +Pour éviter d'​avoir à retaper sans arrêt le mot de passe, je vous conseille de crée une paire de clés symétriques (''​ssh-keygen''​) et d'​ajouter la partie publique du fichier ''/​home/​root/​.ssh/​authorized_keys''​.
 +
 +===== Programmation (ce qu'on peut faire pour l'​instant) =====
 +
 +**ATTENTION** Le compilateur de vos stations de travail, ''​arm-eabi-gcc'',​ ne produit pas des binaires exécutables pour le BeagleBone :
 +  * il utilise des instructions seulement accessible en mode //​système//​ alors que votre programme fonctionne en mode //​utilisateur//,​
 +  * il ne fait pas l'​édition avec une //libc// pour Linux : donc vous n'​auriez pas accès aux appels système de Linux.
 +
 +Cependant, le BeagleBone embarque un compilateur ​ GCC que nous pouvons utiliser. Il suffit de copier vos sources sur la BeagleBone et de compiler sur place.
 +
 +Eventuellement,​ vous pouvez complètement développer sur la BeagleBone si vous vous connectez en ''​ssh -X''​. Vous disposez alors de l'​éditeur de texte ''​gedit''​.
 +
 +
 +===== Clé privée / publique =====
 +
 +Il est assez fastidieux de devoir retaper le mot de passe à chaque fois qu'on réalise une action (login, copie, etc) de la station de travail à la BeagleBone.
 +
 +Pour éviter cela, on peut se repose sur la gestion de clés privées / publiques fournies par //ssh//. Pour ce faire, il faut d'​abord crée une pair de clés:
 +<code sh>
 +$ ssh-keygen -t rsa
 +Generating public/​private rsa key pair.
 +Enter file in which to save the key (/​home/​casse/​.ssh/​id_rsa):​ beaglebone
 +Enter passphrase (empty for no passphrase): ​
 +Enter same passphrase again: ​
 +</​code>​
 +
 +Vous avez seulement à remplir le nom du fichier, par exemple ''​beaglebone''​ et à laisser vide le phrase de passe.
 +
 +Cela crée deux fichiers :
 +  * ''​$HOME/​.ssh/​beagle''​ -- qui est la clé privée qui ne doit pas bouger de son répertoire,​
 +  * ''​$HOME/​.ssh/​beagle.pub''​ -- qui est la clé publique destinée à être envoyée sur la machine distante.
 +
 +Pour installer la clé publique,
 +<code sh>
 +$ scp $HOME/​.ssh/​beagle.pub root@ADRESSE_BEAGLE_BOARD:​.
 +$ ssh root@ADRESSE_BEAGLE_BOARD
 +$ mkdir .ssh
 +$ cat beagle > .ssh/​authorized_keys
 +</​code>​
 +
 +Désormais, quand vous vous connecterez,​ vous n'​aurez plus besoin de taper le mot de passe.
 +