The meta-aws project provides recipes for building in AWS edge software capabilities to Embedded Linux built with OpenEmbedded and Yocto Project build frameworks.
Please check out our sister project meta-aws-demos! Over time, we will continuously be adding MACHINE specific demonstrations for AWS software on Embedded Linux built by the Yocto Project build framework with the meta-aws Metadata Layer.
We are supporting customers building solutions on AWS with meta-aws for the following Yocto Project releases. Let us know if you need AWS device software for a specific Yocto Project release and we will work with you through Github Issues to resolve the challenge you might be facing. We also encourage contributions by the community.
Release branch (?) | Layer integrity check (?) |
---|---|
honister (master) | |
hardknott | |
gatesgarth | |
dunfell | |
zeus (breakfix only) | |
thud (breakfix only) | |
warrior (breakfix only) | |
sumo (breakfix only) |
All prior releases will be handled on a case by case basis. Again, please let us know if you're in a crunch on earlier releases and we'll help you the best we can!
meta-aws supports a wide variety of device software. This layer defines a minimum dependency set that covers many of the recipes. Sometimes, the recipe will require additional layers either to support optional features or programming languages not supported by OpenEmbedded. When those requirements surface, they are documented in recipe specific README files.
Base dependencies:
- core
- openembedded-layer (meta-oe)
- networking-layer (meta-networking)
- meta-python
These are the currently supported services, software, and SDKs you can use to build AWS solutions with many types of devices when building your distribution with the Yocto Project.
Service, Software, or SDK | Details |
---|---|
Amazon CloudWatch Publisher |
Installs and configures the Amazon CloudWatch Publisher. Amazon CloudWatch provides a wealth of tools for monitoring resources and applications in real-time. However, out-of-the-box support is limited to AWS-native resources (e.g. EC2 instances) or systems compatible with the CloudWatch Agent. |
AWS Command Line Interface v1 |
The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts. |
Amazon Corretto |
Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK). Corretto comes with long-term support that will include performance enhancements and security fixes. Amazon runs Corretto internally on thousands of production services and Corretto is certified as compatible with the Java SE standard. |
AWS IoT Device Client |
The AWS IoT Device Client is free, open-source, modular software written in C++ that you can compile and install on your Embedded Linux based IoT devices to access AWS IoT Core, AWS IoT Device Management, and AWS IoT Device Defender features by default. |
AWS IoT Greengrass v1.0 |
AWS IoT Greengrass is an Internet of Things (IoT) open source edge runtime and cloud service that helps you build, deploy, and manage device software. Customers use AWS IoT Greengrass for their IoT applications on millions of devices in homes, factories, vehicles, and businesses. You can program your devices to act locally on the data they generate, execute predictions based on machine learning models, filter and aggregate device data, and only transmit necessary information to the cloud. README |
AWS IoT Greengrass v2.0 |
AWS IoT Greengrass is an Internet of Things (IoT) open source edge runtime and cloud service that helps you build, deploy, and manage device software. Customers use AWS IoT Greengrass for their IoT applications on millions of devices in homes, factories, vehicles, and businesses. You can program your devices to act locally on the data they generate, execute predictions based on machine learning models, filter and aggregate device data, and only transmit necessary information to the cloud. README |
AWS SDK for Python |
The AWS SDK for Python provides the python libraries you can use to interact with AWS Cloud. Botocore and Boto3 are available. |
AWS IoT Device SDK for C++ v2 |
The AWS IoT C++ Device SDK allows developers to build connected applications using AWS and the AWS IoT APIs. Specifically, this SDK was designed for devices that are not resource constrained and require advanced features such as message queuing, multi-threading support, and the latest language features. |
AWS IoT Device SDK for Python v2 |
The AWS IoT Device SDK for Python makes it possible for developers to write Python scripts to use their devices to access the AWS IoT platform through MQTT or MQTT over the WebSocket protocol. By connecting their devices to AWS IoT, users can securely work with the message broker, rules, and shadows provided by AWS IoT and with other AWS services like AWS Lambda, Kinesis, and Amazon S3, and more. |
AWS Firecracker |
AWS Firecracker Firecracker enables you to deploy workloads in lightweight virtual machines, called microVMs, which provide enhanced security and workload isolation over traditional VMs, while enabling the speed and resource efficiency of containers. |
IMPORTANT NOTES:
-
Automotive Grade Linux: The AGL distribution uses a specific static ID process. When adding AWS IoT Greengrass, you will need to define users in the passwd and group files manually. Please see aws4embeddedlinux/meta-aws#75 for more information.
-
Firecracker
panic_abort
resolution options:- Append
RUST_PANIC_STRATEGY = "abort"
to your local.conf, as the default strategy is unwind. - Patch related Cargo.toml files to remove references to
abort
; not recommended. - Leave
RUST_PANIC_STRATEGY
as default, and implement custom abort handler.
- Append
© 2019-2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.