BL654 nftBlinky example doesn't build with sysbuild

Hi

I have a project developed on the nrf52840dk / nrf52840 dongle and am trying to build it for the Laird BL654 dongle. The build fails due to a missing 'runners.yaml' file.

If I take the nrfBlinky example and try to build that for the bl654_usb/nrf52840 target it gives the same build failure.

CMake Error at /opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:338 (file):
file STRINGS file
"/Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/runners.yaml"
cannot be read.
Call Stack (most recent call first):
/opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:320 (update_runner)
/opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:634 (partition_manager)
/opt/nordic/ncs/v2.9.1/nrf/sysbuild/CMakeLists.txt:703 (include)
cmake/modules/sysbuild_extensions.cmake:583 (nrf_POST_CMAKE)
cmake/modules/sysbuild_extensions.cmake:583 (cmake_language)
cmake/modules/sysbuild_images.cmake:23 (sysbuild_module_call)
cmake/modules/sysbuild_default.cmake:20 (include)
/opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
/opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
/opt/nordic/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
template/CMakeLists.txt:10 (find_package)

A non-sysbuild build does work, but I need to use sysbuild as will be including mcuboot. I have tried with sdk/toolchain 2.9.0 and 2.9.1.

I suspect the problem is in the sdk (nordic/ncs/v2.9.0/zephyr/boards/ezurio/bl654_usb) but I'm at a loss as to how to fix it as I'm fairly new to nrfconnect.

Thanks for any help !

  • Thanks for looking into it Andreas.

    The build log for Blinky is below. In the meantime, I figured out how to get my project, when built for nrf52840dongle, working on the BL654 USB dongle anyway (it was getting stuck in mcuboot due to a port pin). As such, I don't need to build for BL654 specifically any more and can just use the nrf52840dongle builds.

    Yes, I found lesson 8 very useful as in introduction to sysbuild but it doesn't address this particular issue as far as I can see. I'd be interested to know why the build fails for BL654 but I can move forward anyway so no worries if you have better things to do !

    Thanks,
    Darren.

     *  Executing task: nRF Connect: Generate config bl654_usb/nrf52840 for /Users/darren/projects/nrfBlinky 
    
    Building nrfBlinky
    west build --build-dir /Users/darren/projects/nrfBlinky/build /Users/darren/projects/nrfBlinky --pristine --board bl654_usb/nrf52840 --sysbuild -- -DNCS_TOOLCHAIN_VERSION=NONE -DBOARD_ROOT=/Users/darren/projects/USB-BT-interface;/Users/darren/projects/nrfBlinky
    
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: /opt/nordic/ncs/toolchains/b8efef2ad5/opt/[email protected]/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter 
    -- Cache files will be written to: /Users/darren/Library/Caches/zephyr
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: bl654_usb, qualifiers: nrf52840
    Parsing /opt/nordic/ncs/v2.9.1/zephyr/share/sysbuild/Kconfig
    Loaded configuration '/Users/darren/projects/nrfBlinky/build/_sysbuild/empty.conf'
    Merged configuration '/Users/darren/projects/nrfBlinky/build/_sysbuild/empty.conf'
    Configuration saved to '/Users/darren/projects/nrfBlinky/build/zephyr/.config'
    Kconfig header saved to '/Users/darren/projects/nrfBlinky/build/_sysbuild/autoconf.h'
    -- 
       *******************************
       * Running CMake for nrfBlinky *
       *******************************
    
    Loading Zephyr default modules (Zephyr base).
    -- Application: /Users/darren/projects/nrfBlinky
    -- CMake version: 3.21.0
    -- Found Python3: /opt/nordic/ncs/toolchains/b8efef2ad5/bin/python (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter 
    -- Cache files will be written to: /Users/darren/Library/Caches/zephyr
    -- Zephyr version: 3.7.99 (/opt/nordic/ncs/v2.9.1/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: bl654_usb, qualifiers: nrf52840
    -- Found host-tools: zephyr 0.17.0 (/opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (/opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk)
    -- Found Dtc: /opt/nordic/ncs/toolchains/b8efef2ad5/bin/dtc (found suitable version "1.6.1", minimum required is "1.4.6") 
    -- Found BOARD.dts: /opt/nordic/ncs/v2.9.1/zephyr/boards/ezurio/bl654_usb/bl654_usb.dts
    -- Generated zephyr.dts: /Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/include/generated/zephyr/devicetree_generated.h
    -- Including generated dts.cmake file: /Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/dts.cmake
    Parsing /opt/nordic/ncs/v2.9.1/zephyr/Kconfig
    Loaded configuration '/opt/nordic/ncs/v2.9.1/zephyr/boards/ezurio/bl654_usb/bl654_usb_defconfig'
    Merged configuration '/Users/darren/projects/nrfBlinky/prj.conf'
    Merged configuration '/Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/.config.sysbuild'
    Configuration saved to '/Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/.config'
    Kconfig header saved to '/Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/include/generated/zephyr/autoconf.h'
    -- Found GnuLd: /opt/nordic/ncs/toolchains/b8efef2ad5/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: /opt/nordic/ncs/toolchains/b8efef2ad5/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
    CMake Warning at /opt/nordic/ncs/v2.9.1/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 /opt/nordic/ncs/v2.9.1/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.
    
    
    -- Setting build type to 'MinSizeRel' as none was specified.
    -- Using ccache: /opt/nordic/ncs/toolchains/b8efef2ad5/bin/ccache
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /Users/darren/projects/nrfBlinky/build/nrfBlinky
    CMake Error at /opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:338 (file):
      file STRINGS file
      "/Users/darren/projects/nrfBlinky/build/nrfBlinky/zephyr/runners.yaml"
      cannot be read.
    Call Stack (most recent call first):
      /opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:320 (update_runner)
      /opt/nordic/ncs/v2.9.1/nrf/cmake/sysbuild/partition_manager.cmake:634 (partition_manager)
      /opt/nordic/ncs/v2.9.1/nrf/sysbuild/CMakeLists.txt:703 (include)
      cmake/modules/sysbuild_extensions.cmake:583 (nrf_POST_CMAKE)
      cmake/modules/sysbuild_extensions.cmake:583 (cmake_language)
      cmake/modules/sysbuild_images.cmake:23 (sysbuild_module_call)
      cmake/modules/sysbuild_default.cmake:20 (include)
      /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
      /opt/nordic/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
      /opt/nordic/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
      template/CMakeLists.txt:10 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/Users/darren/projects/nrfBlinky/build/CMakeFiles/CMakeOutput.log".
    FATAL ERROR: command exited with status 1: /opt/nordic/ncs/toolchains/b8efef2ad5/bin/cmake -DWEST_PYTHON=/opt/nordic/ncs/toolchains/b8efef2ad5/opt/[email protected]/bin/python3.12 -B/Users/darren/projects/nrfBlinky/build -GNinja -DBOARD=bl654_usb/nrf52840 -DNCS_TOOLCHAIN_VERSION=NONE '-DBOARD_ROOT=/Users/darren/projects/USB-BT-interface;/Users/darren/projects/nrfBlinky' -S/opt/nordic/ncs/v2.9.1/zephyr/share/sysbuild -DAPP_DIR:PATH=/Users/darren/projects/nrfBlinky
    
     *  The terminal process terminated with exit code: 1. 
     *  Terminal will be reused by tasks, press any key to close it. 

  • Happy to help!

    I'm not quite sure what could be the rootcause of the error but it seems to be similar to issues which are caused by either

    • The folder still being present (pristine build is not as pristine as one would think. I recommend to instead always delete the build folder if you've made configurations)
    • The board is not being found and/or there are something missing in the board files that the sample depends upon

    It's hard to say, but if you're able to keep going with the nRF52840dongle instead then I suggest we keep the BL module on the back burner for now

    Kind regards,
    Andreas

Related