From d8f5bf1a41d1cfb19a5a1fdd342b85c4dfb842ea Mon Sep 17 00:00:00 2001 From: zhhyu7 Date: Sat, 2 Mar 2024 23:54:48 +0800 Subject: [PATCH] Add dockerfile for NuttX platform compile (#31341) Signed-off-by: zhanghongyu Co-authored-by: Andrei Litvin --- .../docker/images/base/chip-build/version | 2 +- .../stage-2/chip-build-nuttx/Dockerfile | 41 +++++++++++++++++++ .../images/stage-2/chip-build-nuttx/build.sh | 1 + .../images/stage-2/chip-build-nuttx/run.sh | 1 + .../images/stage-2/chip-build-nuttx/version | 1 + .../vscode/chip-build-vscode/Dockerfile | 3 ++ 6 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile create mode 120000 integrations/docker/images/stage-2/chip-build-nuttx/build.sh create mode 120000 integrations/docker/images/stage-2/chip-build-nuttx/run.sh create mode 120000 integrations/docker/images/stage-2/chip-build-nuttx/version diff --git a/integrations/docker/images/base/chip-build/version b/integrations/docker/images/base/chip-build/version index bfe684b756a04d..498993f769c75d 100644 --- a/integrations/docker/images/base/chip-build/version +++ b/integrations/docker/images/base/chip-build/version @@ -1 +1 @@ -39 : [Python] Add ruff Python linter to chip-build +40 : [NuttX] Add support for NuttX SDK diff --git a/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile b/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile new file mode 100644 index 00000000000000..0912ea49f15477 --- /dev/null +++ b/integrations/docker/images/stage-2/chip-build-nuttx/Dockerfile @@ -0,0 +1,41 @@ +ARG VERSION=1 +FROM ghcr.io/project-chip/chip-build:${VERSION} +LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip + +# ------------------------------------------------------------------------------ +# Install prerequisites +RUN set -x \ + && dpkg --add-architecture i386 \ + && apt update -y \ + && apt install -y genromfs xxd libgmp-dev libmpfr-dev libmpc-dev \ + && : # last line + +# ------------------------------------------------------------------------------ +# Download and build g++-13 +RUN set -x \ + && ! test -d /opt/nuttx/gcc-13 \ + && wget -P gcc_build https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.1.0/gcc-13.1.0.tar.gz \ + && cd gcc_build \ + && tar xzf gcc-13.1.0.tar.gz \ + && cd gcc-13.1.0 \ + && ./configure --prefix=/opt/nuttx/gcc-13 --disable-multilib \ + && make -j8 \ + && make install-strip \ + && rm -rf ../../gcc_build \ + && : # last line + +# ------------------------------------------------------------------------------ +# Download NuttX SDK +RUN set -x \ + && cd /opt/nuttx \ + && wget -q -O nuttx.zip https://codeload.github.com/apache/nuttx/zip/b8e0423 \ + && unzip -q nuttx.zip \ + && mv nuttx-b8e0423 nuttx \ + && rm nuttx.zip + +RUN set -x \ + && cd /opt/nuttx \ + && wget -q -O nuttx_app.zip https://codeload.github.com/apache/nuttx-apps/zip/9c48a8d \ + && unzip -q nuttx_app.zip \ + && mv nuttx-apps-9c48a8d apps \ + && rm nuttx_app.zip diff --git a/integrations/docker/images/stage-2/chip-build-nuttx/build.sh b/integrations/docker/images/stage-2/chip-build-nuttx/build.sh new file mode 120000 index 00000000000000..46b20313461454 --- /dev/null +++ b/integrations/docker/images/stage-2/chip-build-nuttx/build.sh @@ -0,0 +1 @@ +../../../build.sh \ No newline at end of file diff --git a/integrations/docker/images/stage-2/chip-build-nuttx/run.sh b/integrations/docker/images/stage-2/chip-build-nuttx/run.sh new file mode 120000 index 00000000000000..9bbfad86d46e50 --- /dev/null +++ b/integrations/docker/images/stage-2/chip-build-nuttx/run.sh @@ -0,0 +1 @@ +../../../run.sh \ No newline at end of file diff --git a/integrations/docker/images/stage-2/chip-build-nuttx/version b/integrations/docker/images/stage-2/chip-build-nuttx/version new file mode 120000 index 00000000000000..a40ba48b0188a8 --- /dev/null +++ b/integrations/docker/images/stage-2/chip-build-nuttx/version @@ -0,0 +1 @@ +../../base/chip-build/version \ No newline at end of file diff --git a/integrations/docker/images/vscode/chip-build-vscode/Dockerfile b/integrations/docker/images/vscode/chip-build-vscode/Dockerfile index 91e9a9b5036158..83556ee8ef6d0e 100644 --- a/integrations/docker/images/vscode/chip-build-vscode/Dockerfile +++ b/integrations/docker/images/vscode/chip-build-vscode/Dockerfile @@ -17,6 +17,7 @@ FROM ghcr.io/project-chip/chip-build-ti:${VERSION} AS ti FROM ghcr.io/project-chip/chip-build-openiotsdk:${VERSION} AS openiotsdk FROM ghcr.io/project-chip/chip-build-bouffalolab:${VERSION} AS bouffalolab FROM ghcr.io/project-chip/chip-build-asr:${VERSION} AS asr +FROM ghcr.io/project-chip/chip-build-nuttx:${VERSION} AS nuttx FROM ghcr.io/project-chip/chip-build:${VERSION} LABEL org.opencontainers.image.source https://github.com/project-chip/connectedhomeip @@ -67,6 +68,8 @@ COPY --from=efr32 /opt/silabs/gecko_sdk /opt/silabs/gecko_sdk COPY --from=efr32 /opt/silabs/wiseconnect-wifi-bt-sdk /opt/silabs/wiseconnect-wifi-bt-sdk COPY --from=efr32 /opt/silabs/wifi_sdk /opt/silabs/wifi_sdk +COPY --from=nuttx /opt/nuttx /opt/nuttx + # Android license file "acceping" is done by writing license hashes # into the 'licenses' subfolder. This allows any user (in particular # 'vscode' to accept licenses)