Customizing OpenEmbedded

This third post in a series focuses on creating your own “distribution” using OpenEmbedded. The instructions below assume that you have a working build system that can produce binaries that run on the Atmel AT91SAM9263-EK board using NAND flash memory.

Our goal at the end of this post is to have an OE environment that:

  1. builds images for a custom board based on the AT91SAM9263-EK;
  2. adds the patches needed for the custom board to AT91Bootstrap, U-boot, and the Linux kernel; and
  3. creates a custom root filesystem, bundled with programs that you want installed in the default image.

Lots to do, so let’s get started! Continue reading →

Flashing the AT91SAM9263-EK Board

In the previous post, we learned how to create an OpenEmbedded (OE) workspace that can successfully build images for the Atmel AT91SAM2963-EK board.  As it turns out, the default in OE is to build dataflash images for the AT91SAM9263-EK board, not nandflash.  If your particular board uses dataflash for its storage, then you’re all set!  But if your board is like mine and uses nandflash, we have a little more work to do first.

This post will focus on tweaking the OE tree to build nandflash images for the AT91SAM9263-EK and then finally uploading those images to the board.  The result (with either dataflash or nandflash) will be to have Angstrom 2008.1 booting on the board. Continue reading →

Building an OpenEmbedded workspace

OpenEmbedded is a great tool for building Linux for an embedded system.  Over the next few posts, I hope to capture the step-by-step instructions needed to create a working Linux system for the Atmel AT91SAM9263-EK board.

OpenEmbedded provides a framework that promotes cross compiling in a “emerge”-like manner.  Relying on BitBake (derived from “emerge”, in fact) as its under-the-hood workhorse, OE creates a sandboxed build system that is entirely self-contained.  Entire systems can be created with a single command and, more importantly, without having to understand the complexities of cross compiling!

This first post will focus on creating a working build system.  By the conclusion, you will be able to compile binary images for the target board.  Follow-up posts will show you how to load the binary images onto the target, create your own custom target board, and then roll your own Linux distribution. Continue reading →