Has anybody sucessfully enabled SMP (software management protocol) over SHELL using a UART ?

I'm fairly new to Zephyr and initially I'm hoping someone can point me to an example where SMP over UART can be used to update a firmware image slot.  Google seems to have a lot of information relating to KConfig options that no longer seem to exist with regards to using the SMP protocol via Zephyr shell - and browsing through KConfig I cant quite seem to find something that works or a document that explains things nicely.   The typical Google response would be 'do this' (below) but it seems the KConfig options are renamed or missing

# Enable the Zephyr shell subsystem
CONFIG_SHELL=y
CONFIG_SHELL_BACKEND_SERIAL=y

# Enable the Simple Management Protocol (SMP)
CONFIG_MCUMGR=y
CONFIG_MCUMGR_TRANSPORT_SHELL=y
# You may also need general SMP support
CONFIG_MCUMGR_SMP=y

# Enable specific command groups as needed (examples)
CONFIG_MCUMGR_CMD_IMG_MGMT=y    # Image management (for DFU)
CONFIG_MCUMGR_CMD_OS_MGMT=y     # OS management commands (e.g., reset, tasks)
CONFIG_MCUMGR_CMD_FS_MGMT=y     # File system management
Parents
  • Hi,

    The Shell transport is included when you use the smp_svr sample and build for Bluetooth by including overlay-bt.conf as an extra Kconfig file. With that, you can observe that you get normal shell working over UART, and that you can also use SMP over the same UART shell (I tested this with AuTerm). As you can see in that sample, these are the key configs for enabling Shell over UART and use mcumgr shell transport:

    # Enable the Shell mcumgr transport.
    CONFIG_BASE64=y
    CONFIG_CRC=y
    CONFIG_SHELL=y
    CONFIG_SHELL_BACKEND_SERIAL=y
    CONFIG_MCUMGR_TRANSPORT_SHELL=y
    

    Additionally, you need the more generic mcumgr configs shown in the prj.conf of the same sample.

Reply
  • Hi,

    The Shell transport is included when you use the smp_svr sample and build for Bluetooth by including overlay-bt.conf as an extra Kconfig file. With that, you can observe that you get normal shell working over UART, and that you can also use SMP over the same UART shell (I tested this with AuTerm). As you can see in that sample, these are the key configs for enabling Shell over UART and use mcumgr shell transport:

    # Enable the Shell mcumgr transport.
    CONFIG_BASE64=y
    CONFIG_CRC=y
    CONFIG_SHELL=y
    CONFIG_SHELL_BACKEND_SERIAL=y
    CONFIG_MCUMGR_TRANSPORT_SHELL=y
    

    Additionally, you need the more generic mcumgr configs shown in the prj.conf of the same sample.

Children
No Data
Related