diff --git a/Dockerfile.hardware b/Dockerfile.hardware index b6e2023..81d7783 100644 --- a/Dockerfile.hardware +++ b/Dockerfile.hardware @@ -1,6 +1,18 @@ ARG ROS_DISTRO=noetic ARG ROSBOT_FW_RELEASE=0.16.2 +## ============================ STM32FLASH ================================= +# stm32flash needs an older version of glibc (2.28), which is why ubuntu 18.04 was used +FROM ubuntu:18.04 AS stm32flash_builder + +# official releases are only for intel archs, so we need to build stm32flash from sources +RUN apt-get update && apt-get install -y \ + git \ + build-essential && \ + git clone https://github.com/stm32duino/stm32flash.git && \ + cd stm32flash/ && \ + make all + ## =========================== ROS package builder =============================== FROM ros:$ROS_DISTRO-ros-core AS pkg-builder @@ -72,7 +84,11 @@ RUN apt update && apt install -y \ # copy ROS package from previous step COPY --from=pkg-builder /ros_ws /ros_ws -# copy firmware built in previous stage +# copy stm32flash +COPY --from=stm32flash_builder /stm32flash/stm32flash /usr/bin/stm32flash + + +# copy firmware built RUN cd root && \ curl https://github.com/husarion/rosbot-stm32-firmware/releases/download/$ROSBOT_FW_RELEASE/firmware_diff.bin -o firmware_diff.bin && \ curl https://github.com/husarion/rosbot-stm32-firmware/releases/download/$ROSBOT_FW_RELEASE/firmware_mec.bin -o firmware_mecanum.bin