OE Yocto on Wandboard-quad (iMX6)

Prior to starting my LOA I invested in a hardware platform to have at home to play the embedded game.  I chose the Wandboard-Quad (iMX6) because we had used one at work to evaluate next generation hardware platforms.  In hindsight I would have been better served by planning my usage before making the purchase.  For example, while there is plenty of embedded Linux support available I have yet to find a BSP for a traditional RTOS freely available.  This page details my work with Open Embedded Yocto Linux distribution on the Wandboard-Quad.

Open Embedded is similar to Ubuntu or Fedora, but targets the embedded Linux space, rather than the x86 desktop Linux space.

OK, not exactly, purists will note that Ubuntu or Fedora are thought of as host distributions for Linux.  The first sentences in the linked page above state:

Welcome to OpenEmbedded, the build framework for embedded Linux. OpenEmbedded offers a best-in-class cross-compile environment. It allows developers to create a complete Linux Distribution for embedded systems

So OE and Yocto are not exactly a Linux distribution so much as the toolbox that allows you to easily create your own custom Linux distribution for an arbitrary hardware platform.

Lets sort out terms and definitions, etc. first, before diving into the mucky gore.  Being old-school I like to have a printed reference book as well as the internet.  My printed reference for Yocto is:

  • Embedded Linux Development with Yocto Project
  • Otavio Salvador & Daiane Angolini
  • Packt Publishing
  • Copyright 2014
  • ISBN: 978-1-78328-233-3

My first experience with OE came in a work setting and we used what is now considered OE-Classic, pre-dating Yocto.  There was a certain simplicity with OE-Classic which didn’t scale well and hence Yocto is far more structured, but sometimes I miss the flat simpler world of OE-Classic.  I digress, on to the Yocto Glossary.

Our first step is to validate our host and installation and we can do this by cloning poky and building a basic image for a qemu supported architecture.