TipsAndTricks/Building core-image-minimal on AWS

From Yocto Project
Revision as of 01:11, 2 November 2017 by Bavery (talk | contribs)
Jump to navigationJump to search

Sometimes, a Cloud Server is just easier

I won't rehash the already very good instructions on how to create an EC2 instance. Instead, I'll outline what I did and how long it took. Here's a good starting point to get an EC2 instance up and connect to it: [1]

My Setup

Machine (AMI) Chosen - Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-6e1a0117 Instance Type - m4.xlarge (4 cpu, 16 Gb memory, high network performance )

Changes from Default

  • I have a security group that allows ssh/http/https/icmp from my ip into my AWS instances, I chose this security group.
  • I upped storage to 90 GB; note since everything was setscened using sstate, I only ended up using 1.7Gb total ,
 
du -sh ~/work
1.7G	/home/ubuntu/work 

After you have successfully ssh'ed into your EC2 Instance, what now?

  • From the quick start guide, you can just cut and paste the sudo apt-get install line for ubuntu.
  • clone poky as usual: $ git clone git://git.yoctoproject.org/poky and checkout the release: $ git checkout yocto-2.4
    • Note: the sstate for the rolling branch (in this case rocko) may not be available, but the tagged sstate will.
  • set up the environment $ . ./poky/oe-init-build-env
  • create (or cp ) a site.conf into the conf directory that leverages the sstate YP publishes. This is key Sample site.conf, (this was done for the 2.4 release):

SSTATE_MIRRORS = "\
file://.* http://sstate.yoctoproject.org/2.4/PATH;downloadfilename=PATH \n \
file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \
"

  • build it $ time bitbake core-image-minimal
 
... many setscene tasks ...
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 2384 tasks of which 2177 didn't need to be rerun and all succeeded.
real	2m26.947s
user	0m5.832s
sys	0m0.924s

  • you could then rsync the images or whatever else you'd like to grab from the instance. or store it on S3, or ...