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
  • Hi

    In NCS 2.7 we changed to HWM2 to align with Zephyr 

    Highlights from NCS 2.7

    This release introduces significant, potentially breaking, changes to the SDK:

    All samples and applications in the SDK have been migrated. Consult respective documentation as additional or changed parameters might be needed to build them successfully. Applications that are outside of the SDK and use custom-defined boards should not be affected by these changes. However, modifications might still be required as per the migration procedure described in Migration guide for nRF Connect SDK v2.7.0. nRF Connect for VS Code users migrating to the latest version of the SDK might be affected.

    All samples and applications in the SDK are built with sysbuild by default. Applications that are outside the SDK are not built with sysbuild by default.

    The deprecated methods are scheduled for removal after the next release. We recommend transitioning to the alternatives as soon as possible. Consult migration guides for Migrating to the current hardware model and Migrating from multi-image builds to sysbuild. Exercise caution when migrating production environments to the latest SDK.

    Have you seen our migration guide for going from hardware model 1 to model 2 which can be found here

    Regards

    Runar

  • 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.

Reply Children
No Data
Related