Connect a Linux device
Securely connect a Linux device to Device Management over an IP connection.
Note: These instructions explain how to connect a generic Linux device. If you want to connect a Raspberry Pi 3, use the Raspberry Pi 3 tutorial.
Requirements
This requires a Linux PC (64-bit Ubuntu/XUbuntu OS desktop environment).
For all other requirements, see the tools and account section. See also the Mbed CLI instructions.
Connecting the device
-
Open a terminal, and clone the example repository to a convenient location on your development environment:
git clone https://github.com/PelionIoT/mbed-cloud-client-example cd mbed-cloud-client-example
Note: If you want to speed up
mbed deploy
, you can remove unnecessary Linux components, such asmbed-os.lib
and thedrivers/
folder. -
Deploy the example repository:
mbed deploy
-
Download the developer certificates from the Device Management Portal:
- Log in to the portal with your credentials.
- Navigate to Device identity > Certificates.
- Click New certificate.
- Add a name and an optional description for the certificate, and click Create certificate.
- Go to Device identity > Certificates again.
- Click on your new certificate.
- Click Download developer C file to download the file
mbed_cloud_dev_credentials.c
.
-
Copy the
mbed_cloud_dev_credentials.c
file to the root folder of the example. -
Navigate to the Device Management Client example folder, and run one of the PAL platform utility commands depending on the profile you wish to use, Release or Debug.
-
For Release profile:
python pal-platform/pal-platform.py deploy --target=x86_x64_NativeLinux_mbedtls generate cd __x86_x64_NativeLinux_mbedtls cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=./../pal-platform/Toolchain/GCC/GCC.cmake -DEXTERNAL_DEFINE_FILE=./../<external-define-file.txt>
<external-define-file.txt>
may be eitherdefine.txt
for non-PSA ordefine_linux_psa.txt
for PSA variant.make mbedCloudClientExample.elf
-
For Debug profile:
python pal-platform/pal-platform.py deploy --target=x86_x64_NativeLinux_mbedtls generate cd __x86_x64_NativeLinux_mbedtls cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=./../pal-platform/Toolchain/GCC/GCC.cmake -DEXTERNAL_DEFINE_FILE=./../<external-define-file.txt>
<external-define-file.txt>
may be eitherdefine.txt
for non-PSA ordefine_linux_psa.txt
for PSA variant.make mbedCloudClientExample.elf
-
To compile Device Management Client with KCM over RAM, add the
PAL_SIMULATOR_FILE_SYSTEM_OVER_RAM
compilation flag.Read more about KCM over RAM mode.
-
-
The build creates binaries under
mbed-cloud-client-example/__x86_x64_NativeLinux_mbedtls
. In both cases, there are subdirectoriesDebug
andRelease
respectively created for the two profiles.Note: If you experience build problems, refer to the Troubleshooting section for potential issues and workarounds.
-
Set the Entropy source:
export ENTROPYSOURCE=<file-name>
For example:
export ENTROPYSOURCE=/dev/urandom
Note: The
ENTROPYSOURCE
environment variable is optional. If you do not use it, Device Management uses a default entropy source, which is Linux-platform-dependent. -
Run the application (at the respective path, see above):
./mbedCloudClientExample.elf
-
You see messages about connecting to Device Management Connect:
Client registered Endpoint Name: 013584750b3400000000000100100051 Device Id: 013584750b3400000000000100100051
Now that your device connects to Device Management, you can read information from it and control it.