Hi,
I am trying to get the sample projects working with the dongle, I am having difficulty with compiling the bluetooth examples using the provided instructions:
As per Option 2, I have installed nrfutil, set up the build environment, downloaded the mcuboot git and checked it version 1.8:
cd ~/ncs/v3.0.0/mcuboot git checkout v1.8.0
I have no issue building the initial blinky example, but I would like to test one of the bluetooth sample that utilize the SoftDevice and Zephyr RTOS.
When I try and build the prerequisite MCUboot the build fails with the following errors:
(v3.0.0) ellie:[gregor]:~/ncs/v3.0.0$ west build -b nrf52840dongle/nrf52840 -d build/mcuboot mcuboot/boot/zephyr -- west build: generating a build system Loading Zephyr module(s) (Zephyr base): sysbuild_default -- Found Python3: /home/gregor/ncs/toolchains/7cbc0036f4/usr/local/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter -- Cache files will be written to: /home/gregor/.cache/zephyr -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52840dongle, qualifiers: nrf52840 Parsing /home/gregor/ncs/v3.0.0/zephyr/share/sysbuild/Kconfig Loaded configuration '/home/gregor/ncs/v3.0.0/build/mcuboot/_sysbuild/empty.conf' Merged configuration '/home/gregor/ncs/v3.0.0/build/mcuboot/_sysbuild/empty.conf' Configuration saved to '/home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/.config' Kconfig header saved to '/home/gregor/ncs/v3.0.0/build/mcuboot/_sysbuild/autoconf.h' -- **************************** * Running CMake for zephyr * **************************** Loading Zephyr default modules (Zephyr base). -- Application: /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr -- CMake version: 3.21.0 -- Found Python3: /home/gregor/ncs/toolchains/7cbc0036f4/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter -- Cache files will be written to: /home/gregor/.cache/zephyr -- Zephyr version: 4.0.99 (/home/gregor/ncs/v3.0.0/zephyr) -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52840dongle, qualifiers: nrf52840 -- Found host-tools: zephyr 0.17.0 (/home/gregor/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk) -- Found toolchain: zephyr 0.17.0 (/home/gregor/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk) -- Found Dtc: /home/gregor/ncs/toolchains/7cbc0036f4/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6") -- Found BOARD.dts: /home/gregor/ncs/v3.0.0/zephyr/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840.dts -- Found devicetree overlay: /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/dts.overlay -- Generated zephyr.dts: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/zephyr.dts -- Generated pickled edt: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/edt.pickle -- Generated zephyr.dts: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/zephyr.dts -- Generated devicetree_generated.h: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/include/generated/zephyr/devicetree_generated.h -- Including generated dts.cmake file: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/dts.cmake warning: LOG_DEFAULT_LEVEL (defined at subsys/logging/Kconfig.filtering:13) was assigned the value '0' but got the value ''. Check these unsatisfied dependencies: LOG (=n). See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_DEFAULT_LEVEL and/or look up LOG_DEFAULT_LEVEL in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. warning: USB_COMPOSITE_DEVICE (defined at subsys/usb/device/Kconfig:68) was assigned the value 'n' but got the value 'y'. See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_USB_COMPOSITE_DEVICE and/or look up USB_COMPOSITE_DEVICE in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. warning: The choice symbol LOG_MODE_MINIMAL (defined at subsys/logging/Kconfig.mode:29) was selected (set =y), but no symbol ended up as the choice selection. See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_MODE_MINIMAL and/or look up LOG_MODE_MINIMAL in the menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful too. Parsing /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/Kconfig Loaded configuration '/home/gregor/ncs/v3.0.0/zephyr/boards/nordic/nrf52840dongle/nrf52840dongle_nrf52840_defconfig' Merged configuration '/home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/prj.conf' Merged configuration '/home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/boards/nrf52840dongle_nrf52840.conf' Merged configuration '/home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/.config.sysbuild' Configuration saved to '/home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/.config' Kconfig header saved to '/home/gregor/ncs/v3.0.0/build/mcuboot/zephyr/zephyr/include/generated/zephyr/autoconf.h' -- Found GnuLd: /home/gregor/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: /home/gregor/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc CMake Warning at /home/gregor/ncs/v3.0.0/zephyr/subsys/usb/device/CMakeLists.txt:22 (message): CONFIG_USB_DEVICE_VID has default value 0x2FE3. This value is only for testing and MUST be configured for USB products. CMake Warning at /home/gregor/ncs/v3.0.0/zephyr/subsys/usb/device/CMakeLists.txt:28 (message): CONFIG_USB_DEVICE_PID has default value 0x100. This value is only for testing and MUST be configured for USB products. CMake Warning at /home/gregor/ncs/v3.0.0/nrf/lib/flash_patch/CMakeLists.txt:8 (message): ---------------------------------------------------------- --- WARNING: To maintain the integrity of secure boot, --- --- enable CONFIG_DISABLE_FLASH_PATCH in production. --- ---------------------------------------------------------- -- Using ccache: /home/gregor/ncs/toolchains/7cbc0036f4/usr/bin/ccache MCUBoot bootloader key file: /home/gregor/ncs/v3.0.0/mcuboot/root-rsa-2048.pem -- Configuring done -- Generating done -- Build files have been written to: /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr -- Configuring done -- Generating done -- Build files have been written to: /home/gregor/ncs/v3.0.0/build/mcuboot -- west build: building application [5/10] Performing build step for 'zephyr' [1/300] Preparing syscall dependency handling [5/300] Generating include/generated/zephyr/version.h -- Zephyr version: 4.0.99 (/home/gregor/ncs/v3.0.0/zephyr), build: v4.0.99-ncs1 [95/300] Building C object zephyr/CMakeFiles/zephyr.dir/home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/serial_adapter.c.obj FAILED: zephyr/CMakeFiles/zephyr.dir/home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/serial_adapter.c.obj
/home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/serial_adapter.c:18:10: fatal error: drivers/uart.h: No such file or directory 18 | #include <drivers/uart.h> | ^~~~~~~~~~~~~~~~ compilation terminated. [99/300] Building C object zephyr/CMakeFiles/zephyr.dir/home/gregor/ncs/v3.0.0/mcuboot/boot/boot_serial/src/boot_serial.c.obj FAILED: zephyr/CMakeFiles/zephyr.dir/home/gregor/ncs/v3.0.0/mcuboot/boot/boot_serial/src/boot_serial.c.obj
In file included from /home/gregor/ncs/v3.0.0/mcuboot/boot/boot_serial/src/boot_serial.c:25: /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/include/sysflash/sysflash.h:6:10: fatal error: devicetree.h: No such file or directory 6 | #include <devicetree.h> | ^~~~~~~~~~~~~~ compilation terminated. [108/300] Building C object modules/mbedtls/CMakeFiles/mbedTLSBase.dir/home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/library/sha1.c.obj FAILED: modules/mbedtls/CMakeFiles/mbedTLSBase.dir/home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/library/sha1.c.obj
/home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/library/sha1.c In file included from /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/include/config-rsa.h:85, from /home/gregor/ncs/v3.0.0/mcuboot/boot/zephyr/include/mcuboot-mbedtls-cfg.h:25, from /home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/include/mbedtls/build_info.h:115, from /home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/include/library/common.h:14, from /home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/library/sha1.c:13: /home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/include/mbedtls/check_config.h:24:2: warning: #warning "Do not include mbedtls/check_config.h manually! " "This may cause spurious errors. " "It is included automatically at the right point since Mbed TLS 3.0." [-Wcpp] 24 | #warning "Do not include mbedtls/check_config.h manually! " \ | ^~~~~~~ /home/gregor/ncs/v3.0.0/modules/crypto/mbedtls/include/mbedtls/check_config.h:413:2: error: #error "MBEDTLS_MD_C defined, but no hash algorithm" 413 | #error "MBEDTLS_MD_C defined, but no hash algorithm" | ^~~~~ [112/300] Building C object zephyr/drivers/gpio/CMakeFiles/drivers__gpio.dir/gpio_nrfx.c.obj ninja: build stopped: subcommand failed. FAILED: _sysbuild/sysbuild/images/zephyr-prefix/src/zephyr-stamp/zephyr-build /home/gregor/ncs/v3.0.0/build/mcuboot/_sysbuild/sysbuild/images/zephyr-prefix/src/zephyr-stamp/zephyr-build cd /home/gregor/ncs/v3.0.0/build/mcuboot/zephyr && /home/gregor/ncs/toolchains/7cbc0036f4/usr/local/bin/cmake --build . ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: /home/gregor/ncs/toolchains/7cbc0036f4/usr/local/bin/cmake --build /home/gregor/ncs/v3.0.0/build/mcuboot
My toolchain directory structure from which I have activated the virtual environment:
This seems in-line with the guidance provided.
(v3.0.0) ellie:[gregor]:~/ncs/v3.0.0$ tree -L 2
.
├── blinky.zip
├── bootloader
│ └── mcuboot
├── mcuboot
│ ├── boot
│ ├── build_info.yml
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── ci
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── CODE_OF_CONDUCT.md
│ ├── docs
│ ├── enc-aes128kw.b64
│ ├── enc-aes256kw.b64
│ ├── enc-ec256-priv.pem
│ ├── enc-ec256-pub.pem
│ ├── enc-rsa2048-priv.pem
│ ├── enc-rsa2048-pub.pem
│ ├── enc-x25519-priv.pem
│ ├── enc-x25519-pub.pem
│ ├── ext
│ ├── go.mod
│ ├── LICENSE
│ ├── NOTICE
│ ├── project.yml
│ ├── ptest
│ ├── README.md
│ ├── repository.yml
│ ├── root-ec-p256.pem
│ ├── root-ec-p256-pkcs8.pem
│ ├── root-ed25519.pem
│ ├── root-rsa-2048.pem
│ ├── root-rsa-3072.pem
│ ├── samples
│ ├── scripts
│ ├── sim
│ ├── _sysbuild
│ ├── testplan
│ └── zephyr
├── modules
│ ├── benchmark
│ ├── bsim_hw_models
│ ├── crypto
│ ├── debug
│ ├── fs
│ ├── hal
│ ├── lib
│ └── tee
├── nrf
│ ├── applications
│ ├── boards
│ ├── cmake
│ ├── CMakeLists.txt
│ ├── CODEOWNERS
│ ├── config
│ ├── doc
│ ├── drivers
│ ├── dts
│ ├── ext
│ ├── include
│ ├── Jenkinsfile
│ ├── Kconfig.nrf
│ ├── lib
│ ├── LICENSE
│ ├── modules
│ ├── ncs_version.h.in
│ ├── README.rst
│ ├── samples
│ ├── scripts
│ ├── share
│ ├── snippets
│ ├── soc
│ ├── subsys
│ ├── sysbuild
│ ├── test-manifests
│ ├── tests
│ ├── VERSION
│ ├── west-test.yml
│ ├── west.yml
│ └── zephyr
├── nrfxlib
│ ├── CMakeLists.txt
│ ├── CODEOWNERS
│ ├── common.cmake
│ ├── crypto
│ ├── doc
│ ├── gzll
│ ├── Jenkinsfile
│ ├── Kconfig.nrfxlib
│ ├── lc3
│ ├── LICENSE
│ ├── mpsl
│ ├── nfc
│ ├── nrf_802154
│ ├── nrf_dm
│ ├── nrf_fuel_gauge
│ ├── nrf_modem
│ ├── nrf_rpc
│ ├── nrf_wifi
│ ├── openthread
│ ├── README.rst
│ ├── softdevice_controller
│ ├── softperipheral
│ ├── suit
│ ├── tests
│ └── zephyr
├── test
│ └── cmock
├── tools
│ ├── bsim
│ ├── edtt
│ └── net-tools
└── zephyr
├── arch
├── boards
├── cmake
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.rst
├── doc
├── drivers
├── dts
├── include
├── Jenkinsfile
├── Kconfig
├── Kconfig.constants
├── Kconfig.zephyr
├── kernel
├── lib
├── LICENSE
├── MAINTAINERS.yml
├── misc
├── modules
├── README.rst
├── samples
├── scripts
├── SDK_VERSION
├── share
├── snippets
├── soc
├── submanifests
├── subsys
├── tests
├── VERSION
├── version.h.in
├── west.yml
├── zephyr-env.cmd
└── zephyr-env.sh
Why is the build failing on some headers, and how to fix the TLS encryption issue?
Thanks,
Gregor