Add Dockerfile and build script for ESP32 firmware
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
git \
|
||||||
|
wget \
|
||||||
|
flex \
|
||||||
|
bison \
|
||||||
|
gperf \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
python3-venv \
|
||||||
|
cmake \
|
||||||
|
ninja-build \
|
||||||
|
ccache \
|
||||||
|
libffi-dev \
|
||||||
|
libssl-dev \
|
||||||
|
dfu-util \
|
||||||
|
libusb-1.0-0 \
|
||||||
|
&& apt-get autoremove
|
||||||
|
|
||||||
|
WORKDIR /usr/src/
|
||||||
|
|
||||||
|
RUN mkdir -p ~/esp/firmware
|
||||||
|
RUN git clone --recursive https://github.com/espressif/esp-idf.git ~/esp/esp-idf
|
||||||
|
RUN cd ~/esp/esp-idf && ./install.sh esp32
|
||||||
|
ENV IDF_PATH=~/esp/esp-idf
|
||||||
|
RUN . $IDF_PATH/export.sh
|
||||||
|
|
||||||
|
COPY . ~/esp/firmware/
|
||||||
|
|
||||||
|
RUN cd ~/esp/firmware/
|
||||||
|
RUN idf.py set-target esp32
|
||||||
|
RUN idf.py menuconfig
|
||||||
|
RUN idf.py build
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
IMAGE_NAME="esp32-builder"
|
||||||
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
|
DOCKERFILE="$SCRIPT_DIR/Dockerfile"
|
||||||
|
BUILD_CTX="$SCRIPT_DIR"
|
||||||
|
DEST_BIN="$SCRIPT_DIR/build/esp32.bin"
|
||||||
|
|
||||||
|
docker build -t "$IMAGE_NAME" -f "$DOCKERFILE" "$BUILD_CTX"
|
||||||
|
|
||||||
|
mkdir -p "$(dirname "$DEST_BIN")"
|
||||||
|
|
||||||
|
docker run --rm "$IMAGE_NAME" \
|
||||||
|
cat /usr/src/build/esp32.bin > "$DEST_BIN"
|
||||||
|
|
||||||
|
esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 115200 write_flash 0x1000 firmware.bin \
|
||||||
|
|| { echo "To find the correct port run: ls /dev/cu.*. Then modify build-esp32.sh"; exit 1; }
|
||||||
Reference in New Issue
Block a user