nrf-docker build/readme

Building on arm64 MacOs resulted in the following error:

ERROR: failed to solve: process "/bin/sh -c mkdir /workdir/project &&     mkdir /workdir/.cache &&     apt-get -y update &&     apt-get -y upgrade &&     apt-get -y install         wget         python3-pip         python3-venv         ninja-build         gperf         git         unzip         libncurses5 libncurses5-dev         libyaml-dev libfdt1         libusb-1.0-0-dev udev         device-tree-compiler=1.5.1-1         ruby &&     apt-get -y clean && apt-get -y autoremove &&     python3 -m pip install -U pip &&     python3 -m pip install -U pipx &&     python3 -m pip install -U setuptools &&     python3 -m pip install 'cmake>=3.20.0' wheel &&     python3 -m pip install -U 'west==0.14.0' &&     python3 -m pip install pc_ble_driver_py &&     python3 -m pip install --ignore-installed -U PyYAML &&     case $arch in     \"amd64\")         PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin         pipx install 'nrfutil>=6.0.0'         ;;     \"arm64\")         PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin         pipx install 'nrfutil<6.0.0'         ;;     esac &&     python3 -m pip install -U six &&     apt-get -y install clang-format-9 &&     ln -s /usr/bin/clang-format-9 /usr/bin/clang-format &&     wget -qO- https://raw.githubusercontent.com/nrfconnect/sdk-nrf/main/.clang-format > /workdir/.clang-format &&     echo \"Target architecture: $arch\" &&     case $arch in         \"amd64\")             NCLT_URL=\"https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-10-x-x/10-17-3/nrf-command-line-tools-10.17.3_Linux-amd64.tar.gz\"             ;;         \"arm64\")             NCLT_URL=\"https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-10-x-x/10-17-3/nrf-command-line-tools-10.17.3_Linux-arm64.tar.gz\"             ;;     esac &&     if [ ! -z \"$NCLT_URL\" ]; then         mkdir tmp && cd tmp &&         wget -qO - \"${NCLT_URL}\" | tar --no-same-owner -xz &&         DEBIAN_FRONTEND=noninteractive apt-get -y install ./*.deb &&         cp -r ./nrf-command-line-tools /opt &&         ln -s /opt/nrf-command-line-tools/bin/nrfjprog /usr/local/bin/nrfjprog &&         ln -s /opt/nrf-command-line-tools/bin/mergehex /usr/local/bin/mergehex &&         cd .. && rm -rf tmp ;     else         echo \"Skipping nRF Command Line Tools (not available for $arch)\" ;     fi &&     echo \"Target architecture: $arch\" &&     case $arch in         \"amd64\")             ZEPHYR_TOOLCHAIN_URL=\"https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/zephyr-sdk-0.15.1_linux-x86_64.tar.gz\"             ;;         \"arm64\")             ZEPHYR_TOOLCHAIN_URL=\"https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/zephyr-sdk-0.15.1_macos-aarch64.tar.gz\"             ;;         *)             echo \"Unsupported target architecture: \\\"$arch\\\"\" >&2 &&             exit 1 ;;     esac &&     wget -qO - \"${ZEPHYR_TOOLCHAIN_URL}\" | tar xz &&     mv /workdir/zephyr-sdk-0.15.1 /workdir/zephyr-sdk && cd /workdir/zephyr-sdk && yes | ./setup.sh" did not complete successfully: exit code: 30


The repo states "The prebuilt images are not available for arm64 architecture (Apple M1), because GitHub Actions don't have hosted runners with Apple M1 yet." Github Actions released support for M1 MacOS runners in Oct 2023. Github actions released support for arm64 runners in Oct 2023 as well.

nrfutil is a prerequisite for the nrf sdk. It is only built for x86 platforms. 


Docker helps to standardize builds across Mac, Windows and GNU+Linux environments, reducing build differences between different operating systems.

 

Related