The Intel® In-Band Manageability Framework is software which enables an administrator to perform critical Device Management operations over-the-air remotely from the cloud. It also facilitates the publishing of telemetry and critical events and logs from an IoT device to the cloud enabling the administrator to take corrective actions if, and when necessary. The framework is designed to be modular and flexible ensuring scalability of the solution across preferred Cloud Service Providers (for example, Azure* IoT Central, ThingBoard.io, and so on).
Key advantages of the Intel® In-Band Manageability solution are:
- Out-of-box cloud support: Azure* IoT Central and ThingsBoard.io.
- Single interface to handle OS, FW and Application (Docker container) updates.
- Scalable across Intel x86 (Intel® Atom® and Intel® Core®) architectures SoCs
INB Features | Description |
---|---|
Application OTA | Install / Remove Application (Native and Docker containers) Integrates wrappers for Docker tools & utilities |
System OTA | Supports remote OS software updates, Kernel patches etc. Ubuntu, Debian, Yocto project |
Firmware OTA | Supports remote firmware updates. UEFI, U-boot, AFULNX (AMI) |
Rollback | Supports Auto-rollback of System Software, Containers and Firmware ❗Dependent on underlying OS and FW capabilities. |
Security | Supports AppArmor profiles, TPM for key management, Signature checks for packages. Integrates Docker Bench Security for Container security checks |
FS Snapshots | Support differential updates via BTRFS snapshots, ‘A/B’ FS partition-based updates. ❗Dependent on underlying OS capabilities. |
Device Cloud Connect | Supports Azure IOT Central, ThingsBoard (on-premise) |
3rd Party Repositories | Pull packages from 3rd party repositories (e.g. ODM/IBV, Stack vendors etc., Registries (e.g. Docker registry) |
Extensible Interface | Quick CSP Scaling possible by using Turtle Creek MQTT interfaces. |
Telemetry | Rules based Application, System, Firmware periodic report out to device cloud services |
Diagnostics (System Health) | Rules based monitoring of software operations, system health, interfaces and report out to device cloud |
Diagnostics (Container Checks | Rules based monitoring of containers and report out to device cloud |
The below diagram depicts the INBM OTA uses cases and flow
The flow is as follows:
- An Administrator sends a request via the cloud.
- A manifest is created based on the cloud request and sent to INBM.
- Downloads any required packages from the remote repository as specified in the manifest.
- Performs the update and sends the result back to the Administrator.
INBM Device Management can be performed either via the cloud or the INBC command-line tool.
INBC is a command line tool that can be used instead of the cloud to perform the updates.
- Prepare a Linux machine with Docker installed. Ensure the 'm4' and 'bash' packages are also installed (these are available in all major Linux distributions).
- If you are behind a proxy, ensure your http_proxy, https_proxy, and no_proxy variables are set correctly and exported. E.g., in bash, you could run: "http_proxy=http://foo.com:1234/ && export http_proxy"
- Ensure you are in docker group.
- Ensure Docker run hello-world command succeeds, E.g., in bash, you could run: "docker run hello-world". Alternately you can use sudo, where you have to ensure the command in bash "sudo docker run hello-world" succeeds.
- Optional but recommended for better build speed and caching: export DOCKER_BUILDKIT=1
- Run: ./build.sh
If you see something like 'unable to resolve' or a DNS error or 'unable to look up' near the start of the build, follow the instructions under https://docs.docker.com/install/linux/linux-postinstall/ --> "DISABLE DNSMASQ". This can occur in some Linux distributions that put 127.0.0.1 in /etc/resolv.conf.
- When build is complete, build output will be in the
dist
folder. - See
dist/README.txt
for a description of the build output.
Please see the Ubuntu Installation Guide