This document can be used as a quick guide to build and execute FIDO Device Onboard (FDO) Client SDK on the Arm Cortex-A7 platform running the Arm Mbed* Linux* OS. To build and execute the FDO Client SDK on other target platforms (For example, Linux OS and Arm Mbed OS), refer to this document.
NOTE: The configurations mentioned in the document are not supported yet. This document will be updated in a future release when the source code implementation is updated to support the same.
- WaRP7* development platform with an i.MX 7Solo processor.
- Two MICROUSB cables (one for power supply, another for serial communication).
This implementation is built using Yocto Project* and provides facilities to run FDO Client SDK in the context of the Arm Mbed Linux software. The following are the requirements:
- Linux OS (Ubuntu* OS version 20.04 LTS) as the host machine.
NOTE: Compilation steps are documented in the client-sdk-fidoiot for Arm Mbed Linux OS readme file.
Download and build the Arm Mbed Linux OS source code, after following the steps mentioned in this link. Use 0.9 release brach for all repos.
NOTE: The current supported version of the Arm Mbed Linux OS is
mbl-os-0.9
.
On successful build completion, a new directory named build-warp7
will be created.
Place all required dependencies under the build-warp7
directory for the final FDO client-sdk build.
The FDO Client SDK for Arm Cortex-A7 platform is built using the Yocto Project-based build system. Follow these instructions to generate the FDO Client SDK binaries:
- Add the required FDO manifest layer after copying the
meta-intel-fdo
layer to the appropriate location under thebuild-warp7
directory:
$ mkdir -p build-warp7/machine-imx7s-warp-mbl/mbl-manifest/layers/meta-intel-fdo/recipes-connectivity
$ cp -rf <release-package-dir>/client-sdk-fidoiot/utils/meta-intel-fdo/conf build-warp7/machine-imx7s-warp-mbl/mbl-manifest/layers/meta-intel-fdo/conf
$ cp -rf <release-package-dir>/client-sdk-fidoiot/utils/meta-intel-fdo/recipes-connectivity/clientsdk-mbedtls build-warp7/machine-imx7s-warp-mbl/mbl-manifest/layers/meta-intel-fdo/recipes-connectivity/clientsdk-mbedtls
- Modify
clientsdk-mbedtls.bb
inside build-warp7/machine-imx7s-warp-mbl/mbl-manifest/layers/meta-intel-fdo/recipes-connectivity/clientsdk-mbedtls folder to configure and build the client-sdk source code for configurations other than the default (optional).
NOTE: By default,
clientsdk-mbedtls.bb
is configured with the default build configuration for Mbed Linux. To see the FDO Client SDK default configuration and other details, refer to the Building FDO Client SDK section of the<release-package-dir>/client-sdk-fidoiot/README.md
document.
- Add the
meta-intel-fdo
layer information by setting theBBLAYERS
flag in the BitBake configuration file (the BitBake configuration file can be found atbuild-warp7/machine-imx7s-warp-mbl/mbl-manifest/conf/bblayers.conf
):
BBLAYERS = ${OEROOT}/layers/meta-intel-fdo
- Specify to install FDO
clientsdk-mbedtls
packages into the image by setting theIMAGE_INSTALL_APPEND
flag in the local configuration file (the local configuration file can be found atbuild-warp7/machine-imx7s-warp-mbl/mbl-manifest/conf/local.conf
):
IMAGE_INSTALL_APPEND = "clientsdk-mbedtls"
- Re-run the build command as you did in the Building Arm Mbed Linux OS step.
NOTE: If the
imx7s-warp.dtb
file is not generated during build, refer to this link to generate the file.
To flash the WaRP7 device with the build image, follow the steps in this link.
After the device is flashed, use the Setting up a WI-FI* connection connect the device to the Wi-Fi* network for the first time.
After a successful flash, the FDO Client SDK Cortex-A7 device executable can be found at <device-root>/opt/fdo/linux-client
. Follow the steps in the Execution section of this document to run the FDO Cortex-A7 application against the FDO PRI implementation.