Archive 07/10/2020.

Make BOARD=iotlab-m3 IOTLAB_NODE=auto-ssh -C riot/basics/shell term … FAILED

lebardix

Lors de la compilation native OK
jovyan@58eda9282d33:~/work/iot-lab-training$ make -C riot/basics/shell all term
make: Entering directory ‘/home/jovyan/work/iot-lab-training/riot/basics/shell’
Building application “basic-shell” for “native” with MCU “native”

"make" -C /home/jovyan/work/iot-lab-training/riot/RIOT/boards/native
"make" -C /home/jovyan/work/iot-lab-training/riot/RIOT/boards/native/drivers
...
...
main(): This is RIOT! (Version: 2020.01)
> cpu
cpu
native
> help
help
Command              Description
---------------------------------------
board                Print the board name
cpu                  Print the cpu name
> 

Par contre lors de l’expérimentation IoT-LAB
jovyan@58eda9282d33:~/work/iot-lab-training$ make BOARD=iotlab-m3 IOTLAB_NODE=auto-ssh -C riot/basics/shell term

make: Entering directory '/home/jovyan/work/iot-lab-training/riot/basics/shell'
ssh -t funfc048f2919@grenoble.iot-lab.info 'socat - tcp:m3-101.grenoble.iot-lab.info:20000'
> > > > > > > > > > more and more > > > > > > > > > > > > > 

^C pour kill le process

Connection to grenoble.iot-lab.info closed.
/home/jovyan/work/iot-lab-training/riot/basics/shell/../../RIOT/Makefile.include:683: recipe for target 'term' failed
make: *** [term] Error 130
make: Leaving directory '/home/jovyan/work/iot-lab-training/riot/basics/shell'

Quel serait le probleme ?

aabadie2

Bonjour,

J’ai essayé de reproduire votre erreur sur m3-101.grenoble sans succès.

Est-ce que vous pouvez essayer de reflasher le M3 (cellule 6 dans le notebook) en gardant le terminal ouvert ?

Alexandre

lebardix

Bonjour Alexandre,

J’ai trouvé mon erreur, et donc j’ai réussi à effecter l’exercice.
J’avais inséré “USEMODULE += shell” en dernière ligne du Makefile,
c’est à dire après include $(RIOTBASE)/Makefile.include

ce qui se traduisait dans la phase de compilation
make -C riot/basics/shell all term
par la possibilité de lancer les commandes “help, cpu, board” O_O

et par contre, lors du flash du M3, le blocage sur l’entrée du terminal.

En plus j’ai lourdement insisté sur d’autres sites avec le même effet.

Si cela n’est pas trop complexe, merci de votre éclairage sur ce comportement de la déclaration de MODULE à cette mauvaise position, ou simplement l’accès à un document plus précis sur la structure du Makefile.

:wink: non, non ce n’était pas un poisson d’avril

aabadie2

Super si vous avez pu vous en sortir.

Il faut déclarer les modules utilisés avec USEMODULE avant la ligne include $(RIOTBASE)/Makefile.include car c’est dans ce fichier que se trouve toute la logique de résolution des dépendances et d’ajout des règles de compilation.

Si vous le faites après, le module n’est pas pris en compte correctement.

La structure du Makefile de l’application est décrite dans le paragraphe 3.2.3c du module 3.

Vous pouvez aussi lire la documentation en ligne de RIOT et en particulier cette page http://doc.riot-os.org/creating-an-application.html#the-applications-makefile

Alexandre