{"id":46775305,"url":"https://github.com/aws4embeddedlinux/meta-aws-ewaol","last_synced_at":"2026-03-09T23:42:58.201Z","repository":{"id":105043791,"uuid":"494242410","full_name":"aws4embeddedlinux/meta-aws-ewaol","owner":"aws4embeddedlinux","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-02T20:47:35.000Z","size":102,"stargazers_count":7,"open_issues_count":0,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-01-03T20:23:21.942Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws4embeddedlinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-19T22:04:38.000Z","updated_at":"2024-01-03T20:23:21.942Z","dependencies_parsed_at":"2024-01-02T20:23:12.827Z","dependency_job_id":"a3ebab59-6746-4673-b4d8-230cd385753b","html_url":"https://github.com/aws4embeddedlinux/meta-aws-ewaol","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/aws4embeddedlinux/meta-aws-ewaol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws4embeddedlinux%2Fmeta-aws-ewaol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws4embeddedlinux%2Fmeta-aws-ewaol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws4embeddedlinux%2Fmeta-aws-ewaol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws4embeddedlinux%2Fmeta-aws-ewaol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws4embeddedlinux","download_url":"https://codeload.github.com/aws4embeddedlinux/meta-aws-ewaol/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws4embeddedlinux%2Fmeta-aws-ewaol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30316775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-09T23:42:58.114Z","updated_at":"2026-03-09T23:42:58.178Z","avatar_url":"https://github.com/aws4embeddedlinux.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The meta-aws-ewaol repository\nThis repository provides the example code and instructions for building a customized [Edge Workload Abstraction and Orchestration Layer](https://gitlab.com/soafee/ewaol/meta-ewaol) (EWAOL) distribution in form of an [Amazon Machine Image](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI).\n\n![minimal suggested infrastructure](graphics/meta-aws-ewaol.png)\n\n## Build instructions\n\n### Pre-requisites\n\n1. An AWS account and the necessary IAM rights to create EC2 instances, EBS snapshots, EBS volumes, S3 buckets, and IAM roles and policies.\n1. A VPC with appropriate subnets and routing required to access the build server.\n1. The resources created by deploying the [VMImport CloudFormation Template](cfn/vmimport-cfn.yml) (roles, policies, S3 bucket for images).\n    1. Take note of the outputs of the stack deployment as they'll be needed in the following steps.\n\n1. An arm64 Ubuntu 20.04 EC2 instance using a Graviton processor (e.g. c6g.4xlarge) with 150GB+ root disk with internet access using the instance profile created by the CloudFormation template from previous step (VMBuilderEC2Role).\n\n### Build Dependencies\n1. Update the Operating System and install the pre-requisites for Yocto, Kas, and our image creation script:\n    ```bash\n    sudo apt-get update\n    sudo apt-get install -y gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev make python3-pip jq zstd liblz4-tool qemu-utils\n    ```\n\n1. Install AWS CLI v2:\n\n    ```bash\n    curl \"https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip\" -o \"/tmp/awscliv2.zip\"\n    unzip /tmp/awscliv2.zip -d /tmp\n    sudo /tmp/aws/install\n    ```\n\n1. Install the python packages:\n\n    ```bash\n    sudo pip3 install sphinx sphinx_rtd_theme pyyaml kas==3.0.2 git-remote-codecommit\n    ```\n\n### Building EWAOL\n\n1. Clone the repo from the instance or upload the code and invoke the build command. For example:\n\n    ```bash\n    git clone https://github.com/aws4embeddedlinux/meta-aws-ewaol.git\n    cd meta-aws-ewaol\n    ```\n\n1. Customize the ewaol-graviton2-ami.yaml as needed and invoke the build:\n\n    ```bash\n    kas build kas/machines/ewaol-graviton2-ami.yaml\n    ```\n\n### Creating AMI from image file\n\nFrom meta-aws-ewaol directory, run the bash script. Replace \\\u003cS3_BUCKET_IMPORT_IMAGES\\\u003e with the bucket name created by the CloudFormation Stack in the pre-requisites section, then choose the appropriate size which the future root disk of the AMI should have by entering a number (e.g. 16) in place of \\\u003cAMI_DISK_SIZE_IN_GB\\\u003e :\n\n```bash\nbash scripts/create-ami.sh \u003cS3_BUCKET_IMPORT_IMAGES\u003e \u003cAMI_DISK_SIZE_IN_GB\u003e\n```\n\n## Launch the EC2 Image as usual using your newly created AMI\n\n1. In the Web Console, Navigate to EC2-\\\u003eImages-\\\u003eAMIs.\n1. Select the desired AMI and click 'Launch instance from Image'.\n1. Follow the wizard as usual.\n1. Access the image with the previously provided ssh key with user **ewaol**.\n\n## Limitations\n\nThe image does not yet support online expansion of partitions/filesystems via cloud-init.\nFollow the below workaround to expand the root partition and filesystem (this can be used as a user data script):\n\n```bash\n#!/bin/sh\n\n# disabling swap\nswapoff -a\nsed -i '/.*swap.*/d' /etc/fstab\n# trick to fix GPT\nprintf \"fix\\n\" | parted ---pretend-input-tty /dev/nvme0n1 print\n# remove partition 3 (swap)\nparted -s /dev/nvme0n1 rm 3\n# resize partition 2 to use 100% of available free space\nparted -s /dev/nvme0n1 resizepart 2 100%\n# resizing ext4 filesystem\nresize2fs /dev/nvme0n1p2\n```\n\n## Future Enchancements\n\n* Enable support for expanding the filesystem on boot with cloud-init which depends on growpart. This needs cloud-utils which is not in openembedded recipes yet.\n\n## Security\n\nSee [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.\n\n## License\n\nThis code is licensed under the MIT-0 License. See the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws4embeddedlinux%2Fmeta-aws-ewaol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws4embeddedlinux%2Fmeta-aws-ewaol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws4embeddedlinux%2Fmeta-aws-ewaol/lists"}