Device Management Client 2.2.1 General Availability (GA)
Features
[Mbed OS] Device Management Client support for injecting entropy externally boards using secure storage through KVstore (Internal Flash).
Fixes
Device Management Client example
- Updated to Mbed OS 5.11.5.
- Added KVStore support for Nucleo F411RE.
- Changed the board configuration for Nucleo F429ZI to use internal flash profile.
- Added bootloaders for the
legacy_storage
configurations as part of the application repository. Explicitly defined the target offsets for each bootloader to provide more clarify on the board configuration. - By default,
MBED_CLOUD_CLIENT_STL_API
is set to0
inmbed_lib-json
. This disables the deprecated client APIs completely inSimpleM2MResourceString
andSimpleM2MResourceInt
classes.MBED_CLOUD_CLIENT_STD_NAMESPACE_POLLUTION
is0
also by default. It disables the namespace pollution of code that includesMbedCloudClient.h
with usingnamespace std;
. With these changes you can save extra ROM overhead of ~15 KB on ROM budget, depending on the compiler toolchain used. - Added Python3 support for Device Management end-to-end tests.
- Updated the minimum required version of Device Management Python SDK to 2.0.5.
- Updated the minimum Icetea version to 1.2.1.
Device Management Connect client
- Fixed handling of blockwise message during concurrent notification sending.
- Fixed handling of content type format for PUT requests on resource level. Client only accepts
text/plain
andopaque
content-types.
Factory Configurator client
- [Mbed OS] Support for injecting external entropy for devices using KVstore (internal flash).
Platform Adaptation Layer (PAL)
- [Mbed OS] Fixed the usage of deprecated socket APIs.
- Added logic to
pal_plat_initTime
to recover from data corruption due to power failure. - Improved API documentation.
- [Mbed OS] Support for injecting external entropy for devices using KVstore (internal flash).
Known issues
Older versions of Device Management SDK for Python (v2.03 or older) sent PUT payload with content-type JSON, which is an unsupported content-type for Client. Client version 2.2.1 no longer accepts PUT requests with unsupported data types. We recommend that you update to SDK v2.0.5 or later, which sends the requests with correct content type (text/plain).
Mbed OS
We recommend that you read the Mbed OS release notes for known issues and their latest status.
mbed dm
may fail with error401 (Invalid API key)
or401 (Unauthorized)
with Mbed CLI versions 1.9.0 or later. As a workaround, you may either runmbed dm init
with an explicit server address, for example-S https://api.us-east-1.mbedcloud.com
, or remove any localmbed_cloud_config.json
which may contain an old or incompatible configuration.- Python3 compilation does not work with Mbed OS 5.11 or earlier versions.
- See issues mbed-cli#836, Mbed OS#8146.
Linux
- Firmware update installation for very large images on Raspberry Pi3B or Pi3B+ may fail with
mmc0 timeout
failure. This is a generic Raspberry Pi3 issue, see RPI issue #2392. - Firmware update from one Linux distribution version to another does not work. For example, firmware update from Yocto distribution Morty to Rocko is not currently possible, as there are Linux version-dependent files (device tree) in the
BOOT
partition. Therefore, you must update within one major version of a distribution. glibc
versions 2.23 and 2.24 have a bug in thread creation. It can cause random crashes with Linux.- If possible, update
glibc
to version 2.25 (or newer). See sourceware issue 20116 for details. - We have implemented a workaround for this issue to decrease its likelihood. This issue may still occur under certain circumstances.
- If possible, update
- The Device Management Client application must run as
root
to have access rights to perform the firmware update.- This is not the most secure way to handle this issue, so a more secure implementation will come later.
- Yocto distribution has only been tested in developer certificate mode.