Cannot build Zephyr samples since SDK 2.4.0 (ZEPHYR_MCUBOOT_KCONFIG EISDIR)

I have 3 toolchains and 3 SDK's installed:
2.3.0 - with Zephyr 3.2.99
2.4.0 - with Zephyr 3.3.99
2.5.0 - with Zephyr 3.4.99


With all these SDK versions I am able to build projects nicely when the 'path' is set to 'nrf' in the (hidden) .west/config file.
So the content of this file is like this:

[manifest]
path = nrf
file = west.yml

[zephyr]
base = zephyr



But... not all Zephyr samples (thus samples in the zephyr/samples folder) build successfully when "path = nrf" in the .west/config file.

Usually the build process fails on Kconfig warnings/errors. For example, the central_multilink example supports up to 62 BLE connections (CONFIG_BT_MAX_CONN=62) but the nRF softdevice is limited to only 20.

Changing the path in .west/config file to "path = zephyr" solves this issue: Now I can build zephyr/samples projects!


But this trick ONLY WORKS for SDK 2.3.0 .

Since 2.4.0 I get this strange error I cannot put my finger on.

/home/sander/ncs/v2.4.0/zephyr/scripts/kconfig/kconfig.py: /home/sander/nRFConnectProjects/tests/central_multilink/build_52840/Kconfig/Kconfig.modules:62: Could not open '/home/sander/ncs/v2.4.0/zephyr/' (in 'osource "$(ZEPHYR_MCUBOOT_KCONFIG)"') (EISDIR: Is a directory)


When I inspect the generated Kconfig.modules file, at line 62, I see this block:

menu "mcuboot (/home/sander/ncs/v2.4.0/bootloader/mcuboot)"
osource "$(ZEPHYR_MCUBOOT_KCONFIG)"
config ZEPHYR_MCUBOOT_MODULE
    bool
    default y
endmenu


This 'MCUBOOT' block does not exist when building against SDK 2.3.0 .

I don't fully follow the whole build process, but is there some way to switch this off to make it work?

And about patching the .west/config file, am I doing something wrong that such is needed to build Zephyr samples with "special needs" ?

Thanks for your help!

Parents
  • Hello,

    Could you tell me a bit more about your setup? Why do you even need to add the path to the west config file in the first place?

    Best regards,

    Michal

  • Hi Michael,

    My setup is nothing special really: VS Code with nRF Connect (toolchain and SDK).

    When I create a New Application and (in my case) select the central_multilink sample as a starting point, that project won't build when 'path' is set to 'nrf'.

    The build process halts on this Kconfig warning (which makes sense):

    warning: user value 62 on the int symbol BT_MAX_CONN (defined at /home/sander/ncs/v2.3.0/nrf/subsys/bluetooth/Kconfig:14, /home/sander/ncs/v2.3.0/nrf/subsys/bluetooth/rpc/Kconfig:170, subsys/bluetooth/Kconfig:115) ignored due to being outside the active range ([1, 20]) -- falling back on defaults

    error: Aborting due to Kconfig warnings


    When path in 'config' is set to 'zephyr' (if I understand all well) Zephyr's BLE stack (NIMBle??) is used which does allow more connections. And this is what I need.

    If there is another method to describe what libraries/sources to use/link in my project, I really want to know.

    Thanks.

    Best regards,

    Sander

  • spq said:
    When path in 'config' is set to 'zephyr' (if I understand all well) Zephyr's BLE stack (NIMBle??) is used which does allow more connections. And this is what I need.

    No. That is something that is done using Kconfig

    ECONFIG_BT_LL_SW_SPLIT is the config to use the Zephyr's BLE stack.

    Please read the documentation here.

    Best regards,

    Michal

Reply Children
Related