Une image docker proposée par défaut intègre un ensemble de toolchains vers diverses cibles. Les notes proposée ci-dessous permettent de recréer une image docker de taille réduite (passant de 8 Go à 2 Go) intégrant les chaines de compilation vers les cibles ESP8266 et ESP32.
Clonage du dépot Git stockant le Dockerfile de l'environnement de build RIOT:
git clone git clone https://github.com/RIOT-OS/riotdocker.git
Créer une branche locale et modifier le fichier ./riotbuild/Dockerfile
cd riotdocker git checkout -n esp32_only cd riotbuild/
Créer l'image Docker à partir du Dockerfile
docker image build -t riot/riotbuild:esp_only .
Vérifier la présence de l'image:
$ docker image list REPOSITORY TAG IMAGE ID CREATED SIZE riot/riotbuild esp_only cb2069c5045e 4 days ago 2.49GB
Les sources de RIOT
git clone https://github.com/RIOT-OS/RIOT.git
Créer répertoire pour le projet
Pour lancer la compilation dans un environnement éphémère:
docker run --rm -i -t -u $UID -v $(pwd):/data/riotbuild riot/riotbuild ./dist/tools/compile_test/compile_test.py
Pour lancer la compilation dans un environnement interactif:
docker container run --name riotbuildenv --interactive --tty --privileged -v /dev:/dev -v $(pwd)/RIOT:/data/riotbuild riot/riotbuild:esp_only /bin/bash
Depuis l'environnement de build (le container docker en cours d'execution), on peut lancer la compilation du programme de test
# Plateforme native (compile un binaire exécutable directement dans l'environnement de buid) make BOARD=native -C hello # Cible ESP32 make BOARD=esp32-wroom-32 -C hello
Flasher le firmware précédemment compilé
$ journalctl -k --since "2 minutes ago" -- Logs begin at Mon 2020-12-21 16:32:03 CET, end at Sat 2021-04-03 20:13:50 CEST. -- avril 03 20:12:37 node-7c87 kernel: usb 1-1: new full-speed USB device number 9 using xhci_hcd ... avril 03 20:12:38 node-7c87 kernel: usb 1-1: cp210x converter now attached to ttyUSB0
Ici le port à utiliser est identifié: ttyUSB0
make BOARD=esp32-wroom-32 PORT=/dev/ttyUSB0 flash-only -C hello