Migration Issues from Zephyr 2.6.1 to 2.9.0: Configuration Problems and Deprecation Warnings

I am migrating from the 2.6.1 development environment to 2.9.0 but am unable to compile due to some configuration issues.

My prj.conf configuration file is as follows:

################################################
### SYSTEM CONFIGURATION #######################
################################################
CONFIG_LOG=y
CONFIG_LOG_MAX_LEVEL=2
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y
CONFIG_UART_CONSOLE=n
CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y
CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y
# CONFIG_USB_MASS_STORAGE_LOG_LEVEL_ERR=y
CONFIG_RING_BUFFER=y
CONFIG_HEAP_MEM_POOL_SIZE=2048
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_REBOOT=y
# CONFIG_DISABLE_FLASH_PATCH=y

# printf floats support
CONFIG_CBPRINTF_LIBC_SUBSTS=y
CONFIG_CBPRINTF_FP_SUPPORT=y

# time library support
CONFIG_NEWLIB_LIBC=y
CONFIG_POSIX_API=y

################################################
### SOC'S PERIPHERALS CONFIGURATION ############
################################################
CONFIG_GPIO=y
CONFIG_PWM=y
CONFIG_LED=y
CONFIG_I2C=y
CONFIG_NRFX_SPIM0=y
CONFIG_NRFX_TIMER1=y
CONFIG_NRFX_PPI=y

################################################
### NVS MEMORY CONFIGURATION ###################
################################################
CONFIG_NVS=y

################################################
### FLASH MEMORY SUPPORT CONFIGURATION #########
################################################
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_FLASH_MAP=y

################################################
### BLE CONFIGURATION ##########################
################################################
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="Gravity Sensor"
# CONFIG_BT_SMP=y
CONFIG_BT_DEVICE_APPEARANCE=1345
CONFIG_BT_MAX_CONN=1
CONFIG_BT_LL_SOFTDEVICE=y
CONFIG_BT_BUF_ACL_RX_SIZE=502
CONFIG_BT_ATT_PREPARE_COUNT=2
# CONFIG_BT_L2CAP_TX_BUF_COUNT=10
CONFIG_BT_L2CAP_TX_MTU=498
# CONFIG_BT_L2CAP_DYNAMIC_CHANNEL=y
CONFIG_BT_CONN_TX_MAX=10
CONFIG_BT_BUF_ACL_TX_COUNT=10
CONFIG_BT_BUF_ACL_TX_SIZE=502
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
CONFIG_BT_CTLR_PHY_2M=y
CONFIG_BT_CTLR_RX_BUFFERS=2
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=4000000

CONFIG_BT_USER_DATA_LEN_UPDATE=y
CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_PERIPHERAL_PREF_MIN_INT=6
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=80
CONFIG_BT_PERIPHERAL_PREF_LATENCY=0
CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=400
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n

################################################
### DFU CONFIGURATION ##########################
################################################
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y
CONFIG_MCUMGR=y
CONFIG_STREAM_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2304
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_FLASH=y
CONFIG_THREAD_MONITOR=y
CONFIG_MCUMGR_GRP_OS_TASKSTAT=y
CONFIG_STATS=y
CONFIG_STATS_NAMES=y
CONFIG_FLASH=y
CONFIG_IMG_MANAGER=y
CONFIG_MCUMGR_GRP_IMG=y
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_STAT=y
CONFIG_LOG=y
CONFIG_MCUBOOT_UTIL_LOG_LEVEL_WRN=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_SERIAL=y
CONFIG_UART_LINE_CTRL=y
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
CONFIG_CONSOLE=y
CONFIG_MCUMGR_TRANSPORT_UART=y
CONFIG_BASE64=y

When I compile, I get the following warnings:

warning: BT_CTLR_RX_BUFFERS (defined at subsys/bluetooth\controller/Kconfig:225) was assigned the
value '2' but got the value ''. Check these unsatisfied dependencies: BT_LL_SW_SPLIT (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_CTLR_RX_BUFFERS and/or look up
BT_CTLR_RX_BUFFERS 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: Deprecated symbol PLATFORM_SPECIFIC_INIT is enabled.


warning: Experimental symbol POSIX_ASYNCHRONOUS_IO is enabled.


warning: Experimental symbol POSIX_DEVICE_IO is enabled.


warning: Experimental symbol POSIX_FD_MGMT is enabled.


warning: Experimental symbol POSIX_MULTI_PROCESS is enabled.


warning: Experimental symbol POSIX_REALTIME_SIGNALS is enabled.


warning: Experimental symbol POSIX_SIGNALS is enabled.

            ---------------------------------------------------------------------
            --- WARNING: Functionality to describe SoCs in HWMv1 is           ---
            --- deprecated and should be replaced with HWMv2, including       ---
            --- boards. HWMv1 SoCs support remains only to ease the migration ---
            --- of out-of-tree SoCs and associated boards. It will not be     ---
            --- possible to build using HWMv1 SoCs at all in future releases. ---
            --------------------------------------------------------------------

Can someone help me understand the configuration changes? Specifically, what do the last two warnings mean?

Parents Reply Children
  • Thank you for the suggestions. However, I think the issue is not with upgrading from SDK 2.6.1 to 2.7.0 because if I set SDK 2.7.0 in the NCS of my VS Code, I can compile the project without any issues and continue its development. So, I tried upgrading from SDK 2.7.0 to SDK 2.8.0, and in this case, I encountered the same problem I faced when directly upgrading from 2.6.1 to 2.9.0. Therefore, I believe the issue is not with upgrading to 2.7.0 but rather with 2.8.0. The compilation gives me the following output:

    west build --build-dir c:/ncsapps/gravity/gravity_sensor/build c:/ncsapps/gravity/gravity_sensor --pristine --board gravity_sensor -- -DNCS_TOOLCHAIN_VERSION=NONE -DBOARD_ROOT=c:/ncsapps/gravity/gravity_sensor
    
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: C:/ncs/toolchains/2d382dcd92/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.8.0/zephyr/.cache
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: gravity_sensor
    Parsing C:/ncs/v2.8.0/zephyr/share/sysbuild/Kconfig
    Loaded configuration 'C:/ncsapps/gravity/gravity_sensor/build/_sysbuild/empty.conf'
    Merged configuration 'C:/ncsapps/gravity/gravity_sensor/build/_sysbuild/empty.conf'
    Configuration saved to 'C:/ncsapps/gravity/gravity_sensor/build/zephyr/.config'
    Kconfig header saved to 'C:/ncsapps/gravity/gravity_sensor/build/_sysbuild/autoconf.h'
    CMake Error at C:/ncs/v2.8.0/nrf/sysbuild/CMakeLists.txt:117 (list):
    list GET given empty list
    Call Stack (most recent call first):
    cmake/modules/sysbuild_extensions.cmake:583 (nrf_PRE_CMAKE)
    cmake/modules/sysbuild_extensions.cmake:583 (cmake_language)
    cmake/modules/sysbuild_images.cmake:16 (sysbuild_module_call)
    cmake/modules/sysbuild_default.cmake:20 (include)
    C:/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
    C:/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    C:/ncs/v2.8.0/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
    template/CMakeLists.txt:10 (find_package)
    
    
    --
    ************************************
    * Running CMake for gravity_sensor *
    ************************************
    
    Loading Zephyr default modules (Zephyr base).
    -- Application: C:/ncsapps/gravity/gravity_sensor
    -- CMake version: 3.21.0
    -- Found Python3: C:/ncs/toolchains/2d382dcd92/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.8.0/zephyr/.cache
    -- Zephyr version: 3.7.99 (C:/ncs/v2.8.0/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: gravity_sensor
    -- Found host-tools: zephyr 0.16.8 (C:/ncs/toolchains/2d382dcd92/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.16.8 (C:/ncs/toolchains/2d382dcd92/opt/zephyr-sdk)
    -- Found Dtc: C:/ncs/toolchains/2d382dcd92/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
    -- Found BOARD.dts: C:/ncsapps/gravity/gravity_sensor/boards/arm/gravity_sensor/gravity_sensor.dts
    -- Found devicetree overlay: C:/ncsapps/gravity/gravity_sensor/boards/gravity_sensor.overlay
    -- Generated zephyr.dts: C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/include/generated/zephyr/devicetree_generated.h
    -- Including generated dts.cmake file: C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/dts.cmake
    
    warning: BT_CTLR_RX_BUFFERS (defined at subsys/bluetooth\controller/Kconfig:225) was assigned the
    value '2' but got the value ''. Check these unsatisfied dependencies: BT_LL_SW_SPLIT (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_CTLR_RX_BUFFERS and/or look up
    BT_CTLR_RX_BUFFERS 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 USB_MASS_STORAGE_LOG_LEVEL_ERR (defined at
    subsys/logging/Kconfig.template.log_config:11) was selected (set =y), but no symbol ended up as the
    choice selection. See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_USB_MASS_STORAGE_LOG_LEVEL_ERR and/or look
    up USB_MASS_STORAGE_LOG_LEVEL_ERR 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: Deprecated symbol PLATFORM_SPECIFIC_INIT is enabled.
    
    
    warning: Experimental symbol POSIX_ASYNCHRONOUS_IO is enabled.
    
    
    warning: Experimental symbol POSIX_DEVICE_IO is enabled.
    
    
    warning: Experimental symbol POSIX_FD_MGMT is enabled.
    
    
    warning: Experimental symbol POSIX_MULTI_PROCESS is enabled.
    
    
    warning: Experimental symbol POSIX_REALTIME_SIGNALS is enabled.
    
    
    warning: Experimental symbol POSIX_SIGNALS is enabled.
    
    Parsing C:/ncs/v2.8.0/zephyr/Kconfig
    Loaded configuration 'C:/ncsapps/gravity/gravity_sensor/boards/arm/gravity_sensor/gravity_sensor_defconfig'
    Merged configuration 'C:/ncsapps/gravity/gravity_sensor/prj.conf'
    Merged configuration 'C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/.config.sysbuild'
    Configuration saved to 'C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/.config'
    Kconfig header saved to 'C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor/zephyr/include/generated/zephyr/autoconf.h'
    -- Found GnuLd: c:/ncs/toolchains/2d382dcd92/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd.exe (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: C:/ncs/toolchains/2d382dcd92/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
    CMake Deprecation Warning at C:/ncs/v2.8.0/zephyr/soc/CMakeLists.txt:15 (message):
    
    ---------------------------------------------------------------------
    --- WARNING: Functionality to describe SoCs in HWMv1 is ---
    --- deprecated and should be replaced with HWMv2, including ---
    --- boards. HWMv1 SoCs support remains only to ease the migration ---
    --- of out-of-tree SoCs and associated boards. It will not be ---
    --- possible to build using HWMv1 SoCs at all in future releases. ---
    ---------------------------------------------------------------------
    
    
    CMake Warning at C:/ncs/v2.8.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 C:/ncs/v2.8.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.
    
    
    -- Setting build type to 'MinSizeRel' as none was specified.
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/ncsapps/gravity/gravity_sensor/build/gravity_sensor
    -- Configuring incomplete, errors occurred!
    See also "C:/ncsapps/gravity/gravity_sensor/build/CMakeFiles/CMakeOutput.log".
    FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\2d382dcd92\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/2d382dcd92/opt/bin/python.exe '-Bc:\ncsapps\gravity\gravity_sensor\build' -GNinja -DBOARD=gravity_sensor -DNCS_TOOLCHAIN_VERSION=NONE -DBOARD_ROOT=c:/ncsapps/gravity/gravity_sensor '-SC:\ncs\v2.8.0\zephyr\share\sysbuild' '-DAPP_DIR:PATH=c:\ncsapps\gravity\gravity_sensor'
    
    * The terminal process terminated with exit code: 1.
    * Terminal will be reused by tasks, press any key to close it.

    I really can't figure out what it could be. Any other suggestions?

  • can you try to build using the command --no-sysbuild.  Since you are using the old HW1 you should not be using sysbuild either. 

    I would also suggest taking a look at the Migration note for NCS 2.8. Are you using Zephyr Bluetooth Controller or our Softdevice? It would also be interesting to have a look at your prj.conf

    Regards

    Runar

  • can you try to build using the command --no-sysbuild.

    I tried compiling with SDK 2.8.0 and the --no-sysbuild option, and I no longer have any errors. Even when compiling with SDK 2.9.0, the errors are gone. It seems the issue has been resolved. However, I now have two questions:

    1. What does not using sysbuild imply?
    2. What should I change to use sysbuild?
  • 1. I would recommend just reading the migration note for sysbuild as it explains it better then what I can do. 

    2. You will need to convert over to HWM2 as I mentioned in my first reply. This is something that you will have to do in the future if you plan to upgrade to a new version of NCS for your application. I'm not sure when we will remove support for HWM1 but normally we remove something after 3 versions. 

    Regards

    Runar

  • Ok, thanks very much. I'll take a look at the note.

Related