Navigation
Internships & Projects
Raspberry Pi
Code Embarqué et Temps Réel
SE et Pilotes
[Protected]
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).
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 :
ssh root@192.168.7.2
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:
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 :
Pour vous connecter, vous devez taper :
ssh 192.168.0.NUM
NUM est le numéro de votre BeagleBone + 33.
Je ne l'ai pas encore testé mais le schéma proposé peut-être le suivant :
arm-eabi-gcc
,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:
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)
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
.
ATTENTION Le compilateur de vos stations de travail, arm-eabi-gcc
, ne produit pas des binaires exécutables pour le BeagleBone :
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
.
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:
$ 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:
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,
$ scp $HOME/.ssh/beagle.pub root@ADRESSE_BEAGLE_BOARD:. $ ssh root@ADRESSE_BEAGLE_BOARD $ mkdir .ssh $ cat beagle > .ssh/authorized_keys
Désormais, quand vous vous connecterez, vous n'aurez plus besoin de taper le mot de passe.