.. _device_mgmt: Device Management ################# Overview ******** The management subsystem allows remote management of Zephyr-enabled devices. The following management operations are available: * Image management * File System management * Log management (currently disabled) * OS management over the following transports: * BLE (Bluetooth Low Energy) * Serial (UART) The management subsystem is based on the Simple Management Protocol (SMP) provided by `MCUmgr`_, an open source project that provides a management subsystem that is portable across multiple real-time operating systems. The management subsystem is split in two different locations in the Zephyr tree: * `zephyrproject-rtos/mcumgr repo `_ contains a clean import of the MCUmgr project * :zephyr_file:`subsys/mgmt/` contains the Zephyr-specific bindings to MCUmgr Additionally there is a :ref:`sample ` that provides management functionality over BLE and serial. .. _mcumgr_cli: Command-line Tool ***************** MCUmgr provides a command-line tool, :file:`mcumgr`,for managing remote devices. The tool is written in the Go programming language. Installation information can be found in the `MCUmgr command-line tool`_ section of the `MCUmgr documentation`_. A full rundown of the necessary commands to perform Device Firmware Upgrade is located in `MCUmgr command-line tool examples`_, and a practical step-by-step guide to DFU using MCUmgr can be found in :ref:`smp_svr_sample`. Bootloader integration ********************** The :ref:`dfu` subsystem integrates the management subsystem with the bootloader, providing the ability to send and upgrade a Zephyr image to a device. Currently only the MCUboot bootloader is supported. See :ref:`mcuboot` for more information. .. _MCUmgr: https://github.com/apache/mynewt-mcumgr .. _MCUmgr documentation: https://github.com/apache/mynewt-mcumgr#mcumgr .. _MCUmgr command-line tool: https://github.com/apache/mynewt-mcumgr#command-line-tool .. _MCUmgr command-line tool examples: https://github.com/apache/mynewt-mcumgr-cli#examples